From be2a316960e8729398196cc25c3ff1985695dc50 Mon Sep 17 00:00:00 2001 From: Jonathan Munz Date: Mon, 11 Nov 2024 16:19:13 -0500 Subject: [PATCH 001/178] pass through FLAGD_UI env vars to frontend-proxy in start-minimal (#1774) --- docker-compose.minimal.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 38e93575a1..dcfba1123e 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -272,6 +272,8 @@ services: - ENVOY_PORT - FLAGD_HOST - FLAGD_PORT + - FLAGD_UI_HOST + - FLAGD_UI_PORT depends_on: frontend: condition: service_started From af8a6090544eb57f5bd68b9e599ce4385289d894 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 12:55:45 -0700 Subject: [PATCH 002/178] build(deps): bump gradle/actions from 4.1.0 to 4.2.0 (#1776) Bumps [gradle/actions](https://github.com/gradle/actions) from 4.1.0 to 4.2.0. - [Release notes](https://github.com/gradle/actions/releases) - [Commits](https://github.com/gradle/actions/compare/v4.1.0...v4.2.0) --- updated-dependencies: - dependency-name: gradle/actions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/gradle-wrapper-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index 0a01b5f281..14fe19360c 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -15,4 +15,4 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: gradle/actions/wrapper-validation@v4.1.0 + - uses: gradle/actions/wrapper-validation@v4.2.0 From 0252f2993e80408ae28cb02933f2f93710cb7bbc Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Fri, 15 Nov 2024 20:38:17 +0100 Subject: [PATCH 003/178] Remove Helios from demo list (#1777) --- README.md | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 5d6383845d..67e6ac183c 100644 --- a/README.md +++ b/README.md @@ -56,18 +56,18 @@ We welcome any vendor to fork the project to demonstrate their services and adding a link below. The community is committed to maintaining the project and keeping it up to date for you. -| | | | -|-----------------------------------------|-----------------------------|----------------------------------------------------------------| -| [AlibabaCloud LogService][AlibabaCloud] | [Elastic][Elastic] | [New Relic][NewRelic] | -| [AppDynamics][AppDynamics] | [Google Cloud][GoogleCloud] | [OpenSearch][OpenSearch] | -| [Aspecto][Aspecto] | [Grafana Labs][GrafanaLabs] | [Sentry][Sentry] | -| [Axiom][Axiom] | [Guance][Guance] | [ServiceNow Cloud Observability][ServiceNowCloudObservability] | -| [Axoflow][Axoflow] | [Helios][Helios] | [Splunk][Splunk] | -| [Azure Data Explorer][Azure] | [Honeycomb.io][Honeycombio] | [Sumo Logic][SumoLogic] | -| [Coralogix][Coralogix] | [Instana][Instana] | [TelemetryHub][TelemetryHub] | -| [Dash0][Dash0] | [Kloudfuse][Kloudfuse] | [Teletrace][Teletrace] | -| [Datadog][Datadog] | [Liatrio][Liatrio] | [Tracetest][Tracetest] | -| [Dynatrace][Dynatrace] | [Logz.io][Logzio] | [Uptrace][Uptrace] | +| | | | +|---------------------------|----------------|----------------------------------| +| [AlibabaCloud LogService] | [Elastic] | [OpenSearch] | +| [AppDynamics] | [Google Cloud] | [Sentry] | +| [Aspecto] | [Grafana Labs] | [ServiceNow Cloud Observability] | +| [Axiom] | [Guance] | [Splunk] | +| [Axoflow] | [Honeycomb.io] | [Sumo Logic] | +| [Azure Data Explorer] | [Instana] | [TelemetryHub] | +| [Coralogix] | [Kloudfuse] | [Teletrace] | +| [Dash0] | [Liatrio] | [Tracetest] | +| [Datadog] | [Logz.io] | [Uptrace] | +| [Dynatrace] | [New Relic] | | ## Contributing @@ -108,32 +108,31 @@ Emeritus: -[AlibabaCloud]: https://github.com/aliyun-sls/opentelemetry-demo +[AlibabaCloud LogService]: https://github.com/aliyun-sls/opentelemetry-demo [AppDynamics]: https://www.appdynamics.com/blog/cloud/how-to-observe-opentelemetry-demo-app-in-appdynamics-cloud/ [Aspecto]: https://github.com/aspecto-io/opentelemetry-demo [Axiom]: https://play.axiom.co/axiom-play-qf1k/dashboards/otel.traces.otel-demo-traces [Axoflow]: https://axoflow.com/opentelemetry-support-in-more-detail-in-axosyslog-and-syslog-ng/ -[Azure]: https://github.com/Azure/Azure-kusto-opentelemetry-demo +[Azure Data Explorer]: https://github.com/Azure/Azure-kusto-opentelemetry-demo [Coralogix]: https://coralogix.com/blog/configure-otel-demo-send-telemetry-data-coralogix [Dash0]: https://github.com/dash0hq/opentelemetry-demo [Datadog]: https://docs.datadoghq.com/opentelemetry/guide/otel_demo_to_datadog [Dynatrace]: https://www.dynatrace.com/news/blog/opentelemetry-demo-application-with-dynatrace/ [Elastic]: https://github.com/elastic/opentelemetry-demo -[GoogleCloud]: https://github.com/GoogleCloudPlatform/opentelemetry-demo -[GrafanaLabs]: https://github.com/grafana/opentelemetry-demo +[Google Cloud]: https://github.com/GoogleCloudPlatform/opentelemetry-demo +[Grafana Labs]: https://github.com/grafana/opentelemetry-demo [Guance]: https://github.com/GuanceCloud/opentelemetry-demo -[Helios]: https://otelsandbox.gethelios.dev -[Honeycombio]: https://github.com/honeycombio/opentelemetry-demo +[Honeycomb.io]: https://github.com/honeycombio/opentelemetry-demo [Instana]: https://github.com/instana/opentelemetry-demo [Kloudfuse]: https://github.com/kloudfuse/opentelemetry-demo [Liatrio]: https://github.com/liatrio/opentelemetry-demo -[Logzio]: https://logz.io/learn/how-to-run-opentelemetry-demo-with-logz-io/ -[NewRelic]: https://github.com/newrelic/opentelemetry-demo +[Logz.io]: https://logz.io/learn/how-to-run-opentelemetry-demo-with-logz-io/ +[New Relic]: https://github.com/newrelic/opentelemetry-demo [OpenSearch]: https://github.com/opensearch-project/opentelemetry-demo [Sentry]: https://github.com/getsentry/opentelemetry-demo -[ServiceNowCloudObservability]: https://docs.lightstep.com/otel/quick-start-operator#send-data-from-the-opentelemetry-demo +[ServiceNow Cloud Observability]: https://docs.lightstep.com/otel/quick-start-operator#send-data-from-the-opentelemetry-demo [Splunk]: https://github.com/signalfx/opentelemetry-demo -[SumoLogic]: https://www.sumologic.com/blog/common-opentelemetry-demo-application/ +[Sumo Logic]: https://www.sumologic.com/blog/common-opentelemetry-demo-application/ [TelemetryHub]: https://github.com/TelemetryHub/opentelemetry-demo/tree/telemetryhub-backend [Teletrace]: https://github.com/teletrace/opentelemetry-demo [Tracetest]: https://github.com/kubeshop/opentelemetry-demo From 85359b62209a05a5e7bca1ff7606966c9d1f335f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20=C5=81ach?= Date: Mon, 18 Nov 2024 10:08:46 +0100 Subject: [PATCH 004/178] [accountingservice] Bump OTel .NET Auto to 1.9.0 (#1780) * bump otel-dotnet-auto to 1.9.0 * changelog update --- CHANGELOG.md | 2 ++ src/accountingservice/AccountingService.csproj | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63d2a85038..37e191bc2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ the release. ([#1764](https://github.com/open-telemetry/opentelemetry-demo/pull/1764)) * [chore] Move build args to .env file ([#1767](https://github.com/open-telemetry/opentelemetry-demo/pull/1767)) +* [accountingservice] bump OpenTelemetry .NET Automatic Instrumentation + to 1.9.0 ([#1780](https://github.com/open-telemetry/opentelemetry-demo/pull/1780)) ## 1.12.0 diff --git a/src/accountingservice/AccountingService.csproj b/src/accountingservice/AccountingService.csproj index 5b1ac99a68..2e0eeb5917 100644 --- a/src/accountingservice/AccountingService.csproj +++ b/src/accountingservice/AccountingService.csproj @@ -17,7 +17,7 @@ - + From 1b4c0eb9623903ba2f3660fd06aa79dfb64ee2d3 Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Mon, 18 Nov 2024 19:14:46 +0100 Subject: [PATCH 005/178] [grafana] Fix dashboards (#1779) * Fix dashboards * changelog --- CHANGELOG.md | 2 + .../dashboards/demo/demo-dashboard.json | 50 ++- .../opentelemetry-collector-data-flow.json | 302 ++++++++----- .../demo/opentelemetry-collector.json | 414 ++++++------------ .../demo/spanmetrics-dashboard.json | 169 +++---- 5 files changed, 463 insertions(+), 474 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37e191bc2d..158b42d48d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ the release. ([#1764](https://github.com/open-telemetry/opentelemetry-demo/pull/1764)) * [chore] Move build args to .env file ([#1767](https://github.com/open-telemetry/opentelemetry-demo/pull/1767)) +* [grafana] Fix Dashboards + ([#1779](https://github.com/open-telemetry/opentelemetry-demo/pull/1779)) * [accountingservice] bump OpenTelemetry .NET Automatic Instrumentation to 1.9.0 ([#1780](https://github.com/open-telemetry/opentelemetry-demo/pull/1780)) diff --git a/src/grafana/provisioning/dashboards/demo/demo-dashboard.json b/src/grafana/provisioning/dashboards/demo/demo-dashboard.json index eabd1d155e..87cf5ec142 100644 --- a/src/grafana/provisioning/dashboards/demo/demo-dashboard.json +++ b/src/grafana/provisioning/dashboards/demo/demo-dashboard.json @@ -26,7 +26,6 @@ "graphTooltip": 0, "id": 2, "links": [], - "liveNow": false, "panels": [ { "collapsed": false, @@ -59,6 +58,7 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -122,6 +122,7 @@ "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -130,7 +131,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "histogram_quantile(0.50, sum(rate(duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", + "expr": "histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", "legendFormat": "quantile50", "range": true, "refId": "A" @@ -142,7 +143,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.95, sum(rate(duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", + "expr": "histogram_quantile(0.95, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", "hide": false, "legendFormat": "quantile95", "range": true, @@ -155,7 +156,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.99, sum(rate(duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", + "expr": "histogram_quantile(0.99, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", "hide": false, "legendFormat": "quantile99", "range": true, @@ -168,7 +169,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.999, sum(rate(duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", + "expr": "histogram_quantile(0.999, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", "hide": false, "legendFormat": "quantile999", "range": true, @@ -196,6 +197,7 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -258,6 +260,7 @@ "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -265,7 +268,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": " sum by (span_name) (rate(calls_total{status_code=\"STATUS_CODE_ERROR\", service_name=\"${service}\"}[$__rate_interval]))", + "expr": " sum by (span_name) (rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\", service_name=\"${service}\"}[$__rate_interval]))", "interval": "", "legendFormat": "{{ span_name }}", "range": true, @@ -292,6 +295,7 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -355,6 +359,7 @@ "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -362,7 +367,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum by (span_name) (rate(duration_milliseconds_count{service_name=\"${service}\"}[$__rate_interval]))", + "expr": "sum by (span_name) (rate(traces_span_metrics_duration_milliseconds_count{service_name=\"${service}\"}[$__rate_interval]))", "legendFormat": "{{ span_name }}", "range": true, "refId": "A" @@ -438,7 +443,7 @@ }, "showHeader": true }, - "pluginVersion": "10.4.3", + "pluginVersion": "11.3.0", "targets": [ { "alias": "", @@ -525,7 +530,7 @@ }, "showHeader": true }, - "pluginVersion": "10.4.3", + "pluginVersion": "11.3.0", "targets": [ { "alias": "", @@ -590,6 +595,7 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -652,6 +658,7 @@ "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -709,6 +716,7 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -771,6 +779,7 @@ "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -813,6 +822,7 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "bars", "fillOpacity": 0, "gradientMode": "none", @@ -874,6 +884,7 @@ "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -908,6 +919,7 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -970,6 +982,7 @@ "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -977,7 +990,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "rate(otel_trace_span_processor_spans{job=\"quoteservice\"}[2m])*120", + "expr": "rate(otel_trace_span_processor_spans{job=\"opentelemetry-demo/quoteservice\"}[2m])*120", "interval": "2m", "legendFormat": "{{state}}", "range": true, @@ -988,16 +1001,14 @@ "type": "timeseries" } ], + "preload": false, "refresh": "", - "revision": 1, - "schemaVersion": 39, + "schemaVersion": 40, "tags": [], "templating": { "list": [ { - "allValue": "", "current": { - "selected": true, "text": "frontend", "value": "frontend" }, @@ -1005,19 +1016,16 @@ "type": "prometheus", "uid": "webstore-metrics" }, - "definition": "duration_milliseconds_bucket", - "hide": 0, + "definition": "traces_span_metrics_duration_milliseconds_bucket", "includeAll": false, - "multi": false, "name": "service", "options": [], "query": { - "query": "duration_milliseconds_bucket", + "query": "traces_span_metrics_duration_milliseconds_bucket", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "/.*service_name=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, "type": "query" } @@ -1031,6 +1039,6 @@ "timezone": "", "title": "Demo Dashboard", "uid": "W2gX2zHVk", - "version": 1, + "version": 2, "weekStart": "" -} \ No newline at end of file +} diff --git a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json index d023ea2524..2a987af76b 100644 --- a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json +++ b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json @@ -25,9 +25,8 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 6, + "id": 3, "links": [], - "liveNow": false, "panels": [ { "collapsed": false, @@ -82,6 +81,7 @@ "graphMode": "area", "justifyMode": "center", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -89,9 +89,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -99,7 +101,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "count(count(otelcol_process_cpu_seconds{service_instance_id=~\".*\"}) by (service_instance_id))", + "expr": "count(count(otelcol_process_cpu_seconds_total{service_instance_id=~\".*\"}) by (service_instance_id))", "legendFormat": "__auto", "range": true, "refId": "A" @@ -145,6 +147,8 @@ }, "id": 24, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -154,9 +158,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -164,7 +169,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "avg(rate(otelcol_process_cpu_seconds{}[$__rate_interval])*100) by (instance)", + "expr": "avg(rate(otelcol_process_cpu_seconds_total{}[$__rate_interval])*100) by (instance)", "legendFormat": "__auto", "range": true, "refId": "A" @@ -210,6 +215,8 @@ }, "id": 38, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -219,9 +226,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -239,11 +247,11 @@ "type": "gauge" }, { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 4, "w": 15, @@ -260,7 +268,8 @@ "content": "## Opentelemetry Collector Data Ingress/Egress\n\n`service_version:` ${service_version}\n\n`opentelemetry collector:` contrib\n\n", "mode": "markdown" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", + "title": "", "type": "text" }, { @@ -330,6 +339,8 @@ }, "id": 55, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "vertical", "reduceOptions": { "calcs": [ @@ -339,9 +350,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": false + "showThresholdMarkers": false, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -350,7 +362,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_spans{}[$__range])))", + "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_spans_total{}[$__range])))", "format": "time_series", "hide": true, "instant": false, @@ -364,7 +376,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_spans{}[$__range])))", + "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_spans_total{}[$__range])))", "format": "time_series", "hide": true, "legendFormat": "__auto", @@ -377,7 +389,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "(avg(sum by(job) (rate(otelcol_exporter_sent_spans{}[$__range]))) / avg(sum by(job) (rate(otelcol_receiver_accepted_spans{}[$__range])))) ", + "expr": "(avg(sum by(job) (rate(otelcol_exporter_sent_spans_total{}[$__range]))) / avg(sum by(job) (rate(otelcol_receiver_accepted_spans_total{}[$__range])))) ", "hide": false, "legendFormat": "__auto", "range": true, @@ -385,7 +397,6 @@ } ], "title": "Export Ratio", - "transformations": [], "type": "gauge" }, { @@ -393,6 +404,10 @@ "type": "prometheus", "uid": "webstore-metrics" }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 11, "w": 21, @@ -401,10 +416,12 @@ }, "id": 4, "options": { + "edges": {}, "nodes": { "mainStatUnit": "flops" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -413,7 +430,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "label_join(label_join(\n(rate(otelcol_receiver_accepted_spans{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n \nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", + "expr": "label_join(label_join(\n(rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n \nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", "format": "table", "instant": true, "legendFormat": "__auto", @@ -427,7 +444,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_spans{}[$__interval]))\n\n ,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n or\n\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_exporter_sent_spans{}[$__interval]))\n ,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n", + "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n\n ,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n or\n\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n ,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n", "format": "table", "hide": false, "instant": true, @@ -436,7 +453,7 @@ "refId": "edges" } ], - "transformations": [], + "title": "", "type": "nodeGraph" }, { @@ -477,6 +494,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -484,9 +502,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -494,7 +514,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_spans{}[$__rate_interval])) by (receiver,transport)", + "expr": "sum(rate(otelcol_receiver_accepted_spans_total{}[$__rate_interval])) by (receiver,transport)", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -535,6 +555,8 @@ }, "id": 13, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -544,9 +566,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -554,7 +577,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_spans{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_receiver_accepted_spans_total{}[$__rate_interval])) ", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -604,6 +627,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -611,10 +635,12 @@ "fields": "", "values": false }, + "showPercentChange": false, "text": {}, - "textMode": "auto" + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -662,6 +688,8 @@ }, "id": 14, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -671,9 +699,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -682,7 +711,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_spans{}[$__interval])) ", + "expr": "sum(rate(otelcol_exporter_sent_spans_total{}[$__interval])) ", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -730,6 +759,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -737,9 +767,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -748,7 +780,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_spans{}[$__rate_interval])) by (exporter)", + "expr": "sum(rate(otelcol_exporter_sent_spans_total{}[$__rate_interval])) by (exporter)", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -796,6 +828,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -803,9 +836,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -813,7 +848,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_spans{}[$__rate_interval])) by (receiver,transport)", + "expr": "sum(rate(otelcol_receiver_refused_spans_total{}[$__rate_interval])) by (receiver,transport)", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -854,6 +889,8 @@ }, "id": 18, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -863,9 +900,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -873,7 +911,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_spans{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_receiver_refused_spans_total{}[$__rate_interval])) ", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -914,6 +952,8 @@ }, "id": 19, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -923,9 +963,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -934,7 +975,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_spans{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_exporter_send_failed_spans_total{}[$__rate_interval])) ", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -982,6 +1023,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -989,9 +1031,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1000,7 +1044,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_spans{}[$__rate_interval])) by (exporter)", + "expr": "sum(rate(otelcol_exporter_send_failed_spans_total{}[$__rate_interval])) by (exporter)", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -1078,6 +1122,8 @@ }, "id": 54, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "vertical", "reduceOptions": { "calcs": [ @@ -1087,9 +1133,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": false + "showThresholdMarkers": false, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1098,7 +1145,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points{}[$__range])))", + "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points_total{}[$__range])))", "format": "time_series", "hide": true, "instant": false, @@ -1112,7 +1159,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points{}[$__range])))", + "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points_total{}[$__range])))", "format": "time_series", "hide": true, "legendFormat": "__auto", @@ -1125,7 +1172,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "( avg(sum by(job) (rate(otelcol_exporter_sent_metric_points{}[$__range]))) /avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points{}[$__range]))))", + "expr": "( avg(sum by(job) (rate(otelcol_exporter_sent_metric_points_total{}[$__range]))) /avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points_total{}[$__range]))))", "hide": false, "legendFormat": "__auto", "range": true, @@ -1177,6 +1224,10 @@ "uid": "webstore-metrics" }, "description": "Metrics Signalling Pipelines", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 11, "w": 21, @@ -1185,10 +1236,12 @@ }, "id": 25, "options": { + "edges": {}, "nodes": { "mainStatUnit": "flops" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1197,7 +1250,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "\nlabel_join(label_join(\n(rate(otelcol_receiver_accepted_metric_points{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\n\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\n\n\n\n\nor\nlabel_replace(label_replace(\nsum (rate(otelcol_exporter_sent_metric_points{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_metric_points{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", + "expr": "\nlabel_join(label_join(\n(rate(otelcol_receiver_accepted_metric_points_total{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\n\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\n\n\n\n\nor\nlabel_replace(label_replace(\nsum (rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", "format": "table", "instant": true, "legendFormat": "__auto", @@ -1211,7 +1264,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_metric_points{}[$__interval]))\n\n,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\nor\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\n\n\n\nor\n\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_exporter_sent_metric_points{}[$__interval]))\n,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")", + "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_metric_points_total{}[$__interval]))\n\n,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\nor\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\n\n\n\nor\n\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")", "format": "table", "hide": false, "instant": true, @@ -1220,7 +1273,7 @@ "refId": "edges" } ], - "transformations": [], + "title": "", "type": "nodeGraph" }, { @@ -1261,6 +1314,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -1268,9 +1322,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1278,7 +1334,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_metric_points{}[$__rate_interval])) by (receiver,transport)", + "expr": "sum(rate(otelcol_receiver_accepted_metric_points_total{}[$__rate_interval])) by (receiver,transport)", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -1319,6 +1375,8 @@ }, "id": 27, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -1328,9 +1386,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1338,7 +1397,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_metric_points{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_receiver_accepted_metric_points_total{}[$__rate_interval])) ", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -1387,6 +1446,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -1394,10 +1454,12 @@ "fields": "", "values": false }, + "showPercentChange": false, "text": {}, - "textMode": "auto" + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1446,6 +1508,8 @@ }, "id": 29, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -1455,9 +1519,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1466,7 +1531,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_metric_points{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_exporter_sent_metric_points_total{}[$__rate_interval])) ", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -1514,6 +1579,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -1521,9 +1587,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1532,7 +1600,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_metric_points{}[$__rate_interval])) by (exporter) ", + "expr": "sum(rate(otelcol_exporter_sent_metric_points_total{}[$__rate_interval])) by (exporter) ", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -1580,6 +1648,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -1587,9 +1656,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1597,7 +1668,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_metric_points{}[$__rate_interval])) by (receiver,transport)", + "expr": "sum(rate(otelcol_receiver_refused_metric_points_total{}[$__rate_interval])) by (receiver,transport)", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -1638,6 +1709,8 @@ }, "id": 48, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -1647,9 +1720,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1657,7 +1731,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_metric_points{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_receiver_refused_metric_points_total{}[$__rate_interval])) ", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -1698,6 +1772,8 @@ }, "id": 49, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -1707,9 +1783,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1718,7 +1795,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_metric_points{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_exporter_send_failed_metric_points_total{}[$__rate_interval])) ", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -1766,6 +1843,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -1773,9 +1851,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1784,7 +1864,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_metric_points{}[$__rate_interval])) by (exporter)", + "expr": "sum(rate(otelcol_exporter_send_failed_metric_points_total{}[$__rate_interval])) by (exporter)", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -1862,6 +1942,8 @@ }, "id": 53, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "vertical", "reduceOptions": { "calcs": [ @@ -1871,9 +1953,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": false + "showThresholdMarkers": false, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1895,7 +1978,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "(sum(rate(otelcol_exporter_sent_metric_points{exporter=\"prometheus\"}[$__rate_interval])) )", + "expr": "(sum(rate(otelcol_exporter_sent_metric_points_total{exporter=\"prometheus\"}[$__rate_interval])) )", "format": "time_series", "hide": false, "legendFormat": "__auto", @@ -1978,6 +2061,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -1985,9 +2069,11 @@ "fields": "", "values": false }, - "textMode": "value_and_name" + "showPercentChange": false, + "textMode": "value_and_name", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2043,6 +2129,8 @@ }, "id": 42, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -2052,9 +2140,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2095,6 +2184,10 @@ "type": "prometheus", "uid": "webstore-metrics" }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 9, "w": 8, @@ -2102,7 +2195,11 @@ "y": 46 }, "id": 41, - "pluginVersion": "9.1.0", + "options": { + "edges": {}, + "nodes": {} + }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2135,6 +2232,7 @@ "refId": "edges" } ], + "title": "", "transformations": [ { "id": "organize", @@ -2150,11 +2248,11 @@ "type": "nodeGraph" }, { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, "description": "Sent by Exporter", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 9, "w": 5, @@ -2171,20 +2269,20 @@ "content": "\n \n## Prometheus Config\n\n`evaluation_interval:` 30s\n\n`scrape_interval:` 5s", "mode": "markdown" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", + "title": "", "type": "text" } ], + "preload": false, "refresh": false, - "schemaVersion": 37, - "style": "dark", + "schemaVersion": 40, "tags": [], "templating": { "list": [ { "allValue": ".*", "current": { - "selected": false, "text": "0.70.0", "value": "0.70.0" }, @@ -2205,8 +2303,6 @@ }, "refresh": 1, "regex": "/.*service_version=\"(.*)\".*/", - "skipUrlSync": false, - "sort": 0, "type": "query" } ] @@ -2219,6 +2315,6 @@ "timezone": "", "title": "Opentelemetry Collector Data Flow", "uid": "rl5_tea4k", - "version": 2, + "version": 1, "weekStart": "" } diff --git a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json index b437e19287..1c574262c7 100644 --- a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json +++ b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json @@ -1,50 +1,4 @@ { - "__inputs": [], - "__elements": {}, - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "10.0.3" - }, - { - "type": "panel", - "id": "heatmap", - "name": "Heatmap", - "version": "" - }, - { - "type": "panel", - "id": "nodeGraph", - "name": "Node Graph", - "version": "" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "table", - "name": "Table", - "version": "" - }, - { - "type": "panel", - "id": "text", - "name": "Text", - "version": "" - }, - { - "type": "panel", - "id": "timeseries", - "name": "Time series", - "version": "" - } - ], "annotations": { "list": [ { @@ -67,21 +21,15 @@ } ] }, - "description": "Visualize OpenTelemetry (OTEL) collector metrics (tested with OTEL contrib v0.84.0)", + "description": "Visualize OpenTelemetry (OTEL) collector metrics (tested with OTEL contrib v0.113.0)", "editable": true, "fiscalYearStartMonth": 0, - "gnetId": 15983, "graphTooltip": 1, - "id": null, + "id": 4, "links": [], - "liveNow": false, "panels": [ { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, "gridPos": { "h": 1, "w": 24, @@ -90,15 +38,6 @@ }, "id": 23, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "refId": "A" - } - ], "title": "Receivers", "type": "row" }, @@ -114,11 +53,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -127,6 +68,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -187,7 +129,6 @@ }, "id": 28, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -204,7 +145,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -213,7 +154,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_spans{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_accepted_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -228,7 +169,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_spans{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_refused_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -253,11 +194,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -266,6 +209,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -326,7 +270,6 @@ }, "id": 32, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -343,7 +286,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -352,7 +295,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_metric_points{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_accepted_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -367,7 +310,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_metric_points{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_refused_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -392,11 +335,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -405,6 +350,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -465,7 +411,6 @@ }, "id": 47, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -482,7 +427,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -491,7 +436,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_log_records{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_accepted_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -506,7 +451,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_log_records{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_refused_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -521,10 +466,6 @@ }, { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, "gridPos": { "h": 1, "w": 24, @@ -533,15 +474,6 @@ }, "id": 34, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "refId": "A" - } - ], "title": "Processors", "type": "row" }, @@ -557,11 +489,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -570,6 +504,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -641,11 +576,10 @@ "h": 8, "w": 8, "x": 0, - "y": 18 + "y": 10 }, "id": 36, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -662,7 +596,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -726,11 +660,10 @@ "h": 8, "w": 8, "x": 8, - "y": 18 + "y": 10 }, "id": 49, "interval": "$minstep", - "links": [], "maxDataPoints": 50, "options": { "calculate": false, @@ -757,7 +690,8 @@ "layout": "auto" }, "tooltip": { - "show": true, + "mode": "single", + "showColorScale": false, "yHistogram": false }, "yAxis": { @@ -765,7 +699,7 @@ "reverse": false } }, - "pluginVersion": "10.0.3", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -799,11 +733,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -812,6 +748,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -883,11 +820,10 @@ "h": 8, "w": 8, "x": 16, - "y": 18 + "y": 10 }, "id": 56, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -904,7 +840,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -913,13 +849,13 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_processor_batch_batch_size_trigger_send{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", + "expr": "sum(${metric:value}(otelcol_processor_batch_timeout_trigger_send_total {processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", "format": "time_series", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Batch sent due to a size trigger: {{processor}}", + "legendFormat": "Batch sent due to a timeout trigger: {{processor}}", "refId": "B" }, { @@ -944,27 +880,14 @@ }, { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 26 + "y": 18 }, "id": 25, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "refId": "A" - } - ], "title": "Exporters", "type": "row" }, @@ -980,11 +903,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -993,6 +918,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1049,11 +975,10 @@ "h": 9, "w": 8, "x": 0, - "y": 27 + "y": 19 }, "id": 37, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -1070,7 +995,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1079,7 +1004,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_spans{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "expr": "sum(${metric:value}(otelcol_exporter_sent_spans_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -1135,11 +1060,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1148,6 +1075,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1204,11 +1132,10 @@ "h": 9, "w": 8, "x": 8, - "y": 27 + "y": 19 }, "id": 38, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -1225,7 +1152,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1234,7 +1161,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_metric_points{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "expr": "sum(${metric:value}(otelcol_exporter_sent_metric_points_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -1290,11 +1217,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1303,6 +1232,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1359,11 +1289,10 @@ "h": 9, "w": 8, "x": 16, - "y": 27 + "y": 19 }, "id": 48, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -1380,7 +1309,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1389,7 +1318,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_log_records{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "expr": "sum(${metric:value}(otelcol_exporter_sent_log_records_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -1445,11 +1374,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1458,6 +1389,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1497,10 +1429,9 @@ "h": 9, "w": 12, "x": 0, - "y": 36 + "y": 28 }, "id": 10, - "links": [], "options": { "legend": { "calcs": [ @@ -1517,7 +1448,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1550,11 +1481,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1563,6 +1496,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1602,10 +1536,9 @@ "h": 9, "w": 12, "x": 12, - "y": 36 + "y": 28 }, "id": 55, - "links": [], "options": { "legend": { "calcs": [ @@ -1622,7 +1555,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1645,27 +1578,14 @@ }, { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 45 + "y": 37 }, "id": 21, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "refId": "A" - } - ], "title": "Collector", "type": "row" }, @@ -1681,11 +1601,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1694,6 +1616,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1804,11 +1727,10 @@ "h": 9, "w": 8, "x": 0, - "y": 46 + "y": 38 }, "id": 40, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -1825,7 +1747,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1890,11 +1812,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1903,6 +1827,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -2013,11 +1938,10 @@ "h": 9, "w": 8, "x": 8, - "y": 46 + "y": 38 }, "id": 52, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -2034,7 +1958,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2099,11 +2023,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -2112,6 +2038,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -2222,11 +2149,10 @@ "h": 9, "w": 8, "x": 16, - "y": 46 + "y": 38 }, "id": 53, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -2243,7 +2169,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2308,11 +2234,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -2321,6 +2249,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -2427,11 +2356,10 @@ "h": 9, "w": 8, "x": 0, - "y": 55 + "y": 47 }, "id": 39, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -2448,7 +2376,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2457,7 +2385,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "max(rate(otelcol_process_cpu_seconds{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "expr": "max(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -2473,7 +2401,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "avg(rate(otelcol_process_cpu_seconds{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "expr": "avg(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -2489,7 +2417,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "min(rate(otelcol_process_cpu_seconds{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "expr": "min(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -2514,11 +2442,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -2527,6 +2457,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -2567,11 +2498,10 @@ "h": 9, "w": 8, "x": 8, - "y": 55 + "y": 47 }, "id": 41, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -2588,7 +2518,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2597,7 +2527,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "count(count(otelcol_process_cpu_seconds{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id))", + "expr": "count(count(otelcol_process_cpu_seconds_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id))", "format": "time_series", "hide": false, "interval": "$minstep", @@ -2622,11 +2552,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -2635,6 +2567,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -2675,11 +2608,10 @@ "h": 9, "w": 8, "x": 16, - "y": 55 + "y": 47 }, "id": 54, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -2696,7 +2628,7 @@ "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2705,7 +2637,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "max(otelcol_process_uptime{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id)", + "expr": "max(otelcol_process_uptime_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -2760,11 +2692,10 @@ "h": 5, "w": 24, "x": 0, - "y": 64 + "y": 56 }, "id": 57, "interval": "$minstep", - "links": [], "options": { "cellHeight": "sm", "footer": { @@ -2777,7 +2708,7 @@ }, "showHeader": true }, - "pluginVersion": "10.0.3", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2786,7 +2717,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "max(otelcol_process_uptime{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id,service_name,service_version)", + "expr": "max(otelcol_process_uptime_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id,service_name,service_version)", "format": "table", "hide": false, "instant": true, @@ -2819,7 +2750,7 @@ "h": 1, "w": 24, "x": 0, - "y": 69 + "y": 61 }, "id": 59, "panels": [], @@ -2832,18 +2763,24 @@ "uid": "$datasource" }, "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 9, "w": 8, "x": 0, - "y": 70 + "y": 62 }, "id": 58, "options": { + "edges": {}, "nodes": { "mainStatUnit": "flops" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2852,7 +2789,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_spans{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_spans{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_spans_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", "format": "table", "hide": false, "instant": true, @@ -2867,7 +2804,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_spans{job=\"$job\"}[$__interval])) by (receiver))\r\n ,\"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n ,\"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_spans{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_spans_total{job=\"$job\"}[$__interval])) by (receiver))\r\n ,\"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n ,\"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_spans_total{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", "format": "table", "hide": false, "instant": true, @@ -2908,18 +2845,24 @@ "uid": "$datasource" }, "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 9, "w": 8, "x": 8, - "y": 70 + "y": 62 }, "id": 60, "options": { + "edges": {}, "nodes": { "mainStatUnit": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2928,7 +2871,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_receiver_accepted_metric_points{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver))\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_exporter_sent_metric_points{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter))\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_receiver_accepted_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver))\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_exporter_sent_metric_points_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter))\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", "format": "table", "hide": false, "instant": true, @@ -2943,7 +2886,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_metric_points{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_metric_points{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_metric_points_total{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_metric_points_total{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", "format": "table", "hide": false, "instant": true, @@ -2984,18 +2927,24 @@ "uid": "$datasource" }, "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 9, "w": 8, "x": 16, - "y": 70 + "y": 62 }, "id": 61, "options": { + "edges": {}, "nodes": { "mainStatUnit": "flops" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3004,7 +2953,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_log_records{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_log_records{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_log_records_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", "format": "table", "hide": false, "instant": true, @@ -3019,7 +2968,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_log_records{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-edg-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_log_records{job=\"$job\"}[$__interval])) by (exporter))\r\n ,\"target\",\"-exp-\",\"transport\",\"exporter\"\r\n )\r\n ,\"source\",\"processor\",\"\",\"\"\r\n )\r\n ,\"id\",\"-edg-\",\"source\",\"target\"\r\n)", + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_log_records_total{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-edg-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_log_records_total{job=\"$job\"}[$__interval])) by (exporter))\r\n ,\"target\",\"-exp-\",\"transport\",\"exporter\"\r\n )\r\n ,\"source\",\"processor\",\"\",\"\"\r\n )\r\n ,\"id\",\"-edg-\",\"source\",\"target\"\r\n)", "format": "table", "hide": false, "instant": true, @@ -3055,20 +3004,17 @@ "type": "nodeGraph" }, { - "datasource": { - "type": "prometheus", - "uid": "$datasource" + "fieldConfig": { + "defaults": {}, + "overrides": [] }, - "editable": true, - "error": false, "gridPos": { "h": 3, "w": 24, "x": 0, - "y": 79 + "y": 71 }, "id": 45, - "links": [], "options": { "code": { "language": "plaintext", @@ -3078,23 +3024,14 @@ "content": " | \nOTEL collector troubleshooting (how to enable telemetry metrics) | \nScaling the Collector (metrics to watch) | \nInstalled from Grafana.com dashboards", "mode": "html" }, - "pluginVersion": "10.0.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "refId": "A" - } - ], + "pluginVersion": "11.3.0", "title": "Documentation", "type": "text" } ], + "preload": false, "refresh": "10s", - "schemaVersion": 38, - "style": "dark", + "schemaVersion": 40, "tags": [ "opentelemetry", "monitoring" @@ -3103,17 +3040,13 @@ "list": [ { "current": {}, - "hide": 0, "includeAll": false, "label": "Datasource", - "multi": false, "name": "datasource", "options": [], "query": "prometheus", - "queryValue": "", "refresh": 1, "regex": "", - "skipUrlSync": false, "type": "datasource" }, { @@ -3123,10 +3056,8 @@ "uid": "$datasource" }, "definition": "label_values(otelcol_process_uptime, job)", - "hide": 0, "includeAll": false, "label": "Job", - "multi": false, "name": "job", "options": [], "query": { @@ -3135,7 +3066,6 @@ }, "refresh": 1, "regex": "", - "skipUrlSync": false, "sort": 1, "type": "query" }, @@ -3144,11 +3074,9 @@ "auto_count": 300, "auto_min": "10s", "current": { - "selected": false, "text": "auto", "value": "$__auto_interval_minstep" }, - "hide": 0, "label": "Min step", "name": "minstep", "options": [ @@ -3179,21 +3107,16 @@ } ], "query": "10s,30s,1m,5m", - "queryValue": "", "refresh": 2, - "skipUrlSync": false, "type": "interval" }, { "current": { - "selected": true, "text": "Rate", "value": "rate" }, - "hide": 0, "includeAll": false, "label": "Base metric", - "multi": false, "name": "metric", "options": [ { @@ -3208,8 +3131,6 @@ } ], "query": "Rate : rate, Count : increase", - "queryValue": "", - "skipUrlSync": false, "type": "custom" }, { @@ -3220,10 +3141,8 @@ "uid": "$datasource" }, "definition": "label_values(receiver)", - "hide": 0, "includeAll": true, "label": "Receiver", - "multi": false, "name": "receiver", "options": [], "query": { @@ -3232,12 +3151,8 @@ }, "refresh": 2, "regex": "", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { "current": {}, @@ -3246,10 +3161,8 @@ "uid": "$datasource" }, "definition": "label_values(processor)", - "hide": 0, "includeAll": true, "label": "Processor", - "multi": false, "name": "processor", "options": [], "query": { @@ -3258,12 +3171,8 @@ }, "refresh": 2, "regex": "", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { "allValue": ".*", @@ -3273,10 +3182,8 @@ "uid": "$datasource" }, "definition": "label_values(exporter)", - "hide": 0, "includeAll": true, "label": "Exporter", - "multi": false, "name": "exporter", "options": [], "query": { @@ -3285,24 +3192,17 @@ }, "refresh": 2, "regex": "", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { "current": { - "selected": true, "text": "None (basic metrics)", "value": "" }, "description": "Detailed metrics must be configured in the collector configuration. They add grouping by transport protocol (http/grpc) for receivers. ", - "hide": 0, "includeAll": false, "label": "Additional groupping", - "multi": false, "name": "grouping", "options": [ { @@ -3322,8 +3222,6 @@ } ], "query": "None (basic metrics) : , By transport (detailed metrics) : \\,transport, By service instance id : \\,service_instance_id", - "queryValue": "", - "skipUrlSync": false, "type": "custom" } ] @@ -3332,34 +3230,10 @@ "from": "now-6h", "to": "now" }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, + "timepicker": {}, "timezone": "utc", "title": "OpenTelemetry Collector", "uid": "BKf2sowmj", - "version": 72, + "version": 10, "weekStart": "" } diff --git a/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json b/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json index be3b329b21..d4ba33c992 100644 --- a/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json +++ b/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json @@ -22,14 +22,11 @@ ] }, "description": "Spanmetrics way of demo application view.", - "author": { - "name": "devrimdemiroz" - }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, + "id": 5, "links": [], - "liveNow": false, "panels": [ { "collapsed": false, @@ -93,6 +90,8 @@ "id": 2, "interval": "5m", "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -102,9 +101,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -113,7 +113,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,histogram_quantile(0.50, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))", + "expr": "topk(7,histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))", "format": "time_series", "hide": true, "instant": false, @@ -129,11 +129,11 @@ }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,histogram_quantile(0.95, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,service_name)))", + "expr": "topk(7,histogram_quantile(0.95, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,service_name)))", "hide": false, "instant": true, "interval": "", - "legendFormat": "{{le}} - {{service_name}}", + "legendFormat": "{{service_name}}", "range": false, "refId": "B" }, @@ -144,7 +144,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.99, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", + "expr": "histogram_quantile(0.99, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile99", @@ -158,7 +158,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.999, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", + "expr": "histogram_quantile(0.999, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile999", @@ -216,8 +216,16 @@ "interval": "5m", "options": { "displayMode": "lcd", + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "maxVizHeight": 300, "minVizHeight": 10, "minVizWidth": 0, + "namePlacement": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -227,9 +235,11 @@ "values": false }, "showUnfilled": true, - "text": {} + "sizing": "auto", + "text": {}, + "valueMode": "color" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -238,7 +248,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,sum by (service_name) (rate(calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])))", + "expr": "topk(7,sum by (service_name) (rate(traces_span_metrics_calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])))", "format": "time_series", "instant": true, "interval": "", @@ -248,7 +258,6 @@ } ], "title": "Top 7 Services Mean Rate over Range", - "transformations": [], "type": "bargauge" }, { @@ -294,8 +303,16 @@ "interval": "5m", "options": { "displayMode": "lcd", + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "maxVizHeight": 300, "minVizHeight": 10, "minVizWidth": 0, + "namePlacement": "auto", "orientation": "vertical", "reduceOptions": { "calcs": [ @@ -305,9 +322,11 @@ "values": false }, "showUnfilled": true, - "text": {} + "sizing": "auto", + "text": {}, + "valueMode": "color" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -316,7 +335,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,sum(rate(calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (service_name))", + "expr": "topk(7,sum(rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (service_name))", "instant": true, "interval": "", "legendFormat": "{{service_name}}", @@ -325,15 +344,10 @@ } ], "title": "Top 7 Services Mean ERROR Rate over Range", - "transformations": [], "type": "bargauge" }, { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, "gridPos": { "h": 1, "w": 24, @@ -342,15 +356,6 @@ }, "id": 14, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "refId": "A" - } - ], "title": "span_names Level - Throughput", "type": "row" }, @@ -367,7 +372,9 @@ }, "custom": { "align": "auto", - "displayMode": "auto", + "cellOptions": { + "type": "auto" + }, "inspect": false }, "decimals": 2, @@ -395,8 +402,11 @@ }, "properties": [ { - "id": "custom.displayMode", - "value": "lcd-gauge" + "id": "custom.cellOptions", + "value": { + "mode": "lcd", + "type": "gauge" + } }, { "id": "color", @@ -413,8 +423,11 @@ }, "properties": [ { - "id": "custom.displayMode", - "value": "lcd-gauge" + "id": "custom.cellOptions", + "value": { + "mode": "lcd", + "type": "gauge" + } }, { "id": "color", @@ -455,8 +468,7 @@ }, "properties": [ { - "id": "custom.width", - "value": null + "id": "custom.width" } ] } @@ -471,7 +483,9 @@ "id": 22, "interval": "5m", "options": { + "cellHeight": "sm", "footer": { + "countRows": false, "fields": "", "reducer": [ "sum" @@ -481,7 +495,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -489,7 +503,7 @@ "uid": "webstore-metrics" }, "exemplar": false, - "expr": "topk(7, sum(rate(calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name)) ", + "expr": "topk(7, sum(rate(traces_span_metrics_calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name)) ", "format": "table", "instant": true, "interval": "", @@ -502,7 +516,7 @@ "uid": "webstore-metrics" }, "exemplar": false, - "expr": "topk(7, sum(rate(calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name))", + "expr": "topk(7, sum(rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name))", "format": "table", "hide": false, "instant": true, @@ -603,10 +617,6 @@ }, { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, "gridPos": { "h": 1, "w": 24, @@ -615,15 +625,6 @@ }, "id": 20, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "refId": "A" - } - ], "title": "span_name Level - Latencies", "type": "row" }, @@ -676,6 +677,8 @@ "id": 25, "interval": "5m", "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -685,9 +688,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -696,7 +700,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,histogram_quantile(0.50, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))", + "expr": "topk(7,histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))", "format": "time_series", "hide": true, "instant": false, @@ -712,7 +716,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,histogram_quantile(0.95, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,span_name)))", + "expr": "topk(7,histogram_quantile(0.95, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,span_name)))", "hide": false, "instant": true, "interval": "", @@ -727,7 +731,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.99, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", + "expr": "histogram_quantile(0.99, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile99", @@ -741,7 +745,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.999, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", + "expr": "histogram_quantile(0.999, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile999", @@ -791,8 +795,16 @@ "interval": "5m", "options": { "displayMode": "lcd", + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "maxVizHeight": 300, "minVizHeight": 10, "minVizWidth": 0, + "namePlacement": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -801,9 +813,11 @@ "fields": "", "values": false }, - "showUnfilled": true + "showUnfilled": true, + "sizing": "auto", + "valueMode": "color" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -812,7 +826,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "topk(7, sum by (span_name,service_name)(increase(duration_milliseconds_sum{service_name=~\"${service}\", span_name=~\"$span_name\"}[5m]) / increase(duration_milliseconds_count{service_name=~\"${service}\",span_name=~\"$span_name\"}[5m\n])))", + "expr": "topk(7, sum by (span_name,service_name)(increase(duration_milliseconds_sum{service_name=~\"${service}\", span_name=~\"$span_name\"}[5m]) / increase(traces_span_metrics_duration_milliseconds_count{service_name=~\"${service}\",span_name=~\"$span_name\"}[5m\n])))", "instant": true, "interval": "", "legendFormat": "{{span_name}} [{{service_name}}]", @@ -821,7 +835,6 @@ } ], "title": "Top 7 Highest Endpoint Latencies Mean Over Range ", - "transformations": [], "type": "bargauge" }, { @@ -835,11 +848,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 15, "gradientMode": "none", @@ -848,6 +863,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "smooth", "lineWidth": 1, "pointSize": 5, @@ -907,7 +923,7 @@ "sort": "none" } }, - "pluginVersion": "8.4.7", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -916,7 +932,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "topk(7,sum by (span_name,service_name)(increase(duration_milliseconds_sum{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval]) / increase(duration_milliseconds_count{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])))", + "expr": "topk(7,sum by (span_name,service_name)(increase(traces_span_metrics_duration_milliseconds_sum{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval]) / increase(traces_span_metrics_duration_milliseconds_count{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])))", "instant": false, "interval": "", "legendFormat": "[{{service_name}}] {{span_name}}", @@ -928,16 +944,15 @@ "type": "timeseries" } ], + "preload": false, "refresh": "5m", - "schemaVersion": 37, - "style": "dark", + "schemaVersion": 40, "tags": [], "templating": { "list": [ { "allValue": ".*", "current": { - "selected": false, "text": "All", "value": "$__all" }, @@ -945,26 +960,23 @@ "type": "prometheus", "uid": "webstore-metrics" }, - "definition": "query_result(count by (service_name)(count_over_time(calls_total[$__range])))", - "hide": 0, + "definition": "query_result(count by (service_name)(count_over_time(traces_span_metrics_calls_total[$__range])))", "includeAll": true, "multi": true, "name": "service", "options": [], "query": { - "query": "query_result(count by (service_name)(count_over_time(calls_total[$__range])))", + "query": "query_result(count by (service_name)(count_over_time(traces_span_metrics_calls_total[$__range])))", "refId": "StandardVariableQuery" }, "refresh": 2, "regex": "/.*service_name=\"(.*)\".*/", - "skipUrlSync": false, "sort": 1, "type": "query" }, { "allValue": ".*", "current": { - "selected": false, "text": "All", "value": "$__all" }, @@ -972,20 +984,17 @@ "type": "prometheus", "uid": "webstore-metrics" }, - "definition": "query_result(sum ({__name__=~\".*calls_total\",service_name=~\"$service\"}) by (span_name))", - "hide": 0, + "definition": "query_result(sum ({__name__=~\".*traces_span_metrics_calls_total\",service_name=~\"$service\"}) by (span_name))", "includeAll": true, "multi": true, "name": "span_name", "options": [], "query": { - "query": "query_result(sum ({__name__=~\".*calls_total\",service_name=~\"$service\"}) by (span_name))", + "query": "query_result(sum ({__name__=~\".*traces_span_metrics_calls_total\",service_name=~\"$service\"}) by (span_name))", "refId": "StandardVariableQuery" }, "refresh": 2, "regex": "/.*span_name=\"(.*)\".*/", - "skipUrlSync": false, - "sort": 0, "type": "query" } ] From 41f54b7fc03ac9607cb67223bd537f284c7e5b31 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Nov 2024 14:47:14 +0100 Subject: [PATCH 006/178] build(deps): bump gradle/actions from 4.2.0 to 4.2.1 (#1782) Bumps [gradle/actions](https://github.com/gradle/actions) from 4.2.0 to 4.2.1. - [Release notes](https://github.com/gradle/actions/releases) - [Commits](https://github.com/gradle/actions/compare/v4.2.0...v4.2.1) --- updated-dependencies: - dependency-name: gradle/actions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/gradle-wrapper-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index 14fe19360c..b0e6d12564 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -15,4 +15,4 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: gradle/actions/wrapper-validation@v4.2.0 + - uses: gradle/actions/wrapper-validation@v4.2.1 From 069b80b8a0ec52bf8da4c5ac235c8371ee9b4eb3 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Wed, 20 Nov 2024 02:37:27 -0500 Subject: [PATCH 007/178] update k8s manifest using chart 0.33.1 (#1783) --- kubernetes/opentelemetry-demo.yaml | 60 ------------------------------ 1 file changed, 60 deletions(-) diff --git a/kubernetes/opentelemetry-demo.yaml b/kubernetes/opentelemetry-demo.yaml index bdf02a74f5..413f6599eb 100644 --- a/kubernetes/opentelemetry-demo.yaml +++ b/kubernetes/opentelemetry-demo.yaml @@ -11003,63 +11003,3 @@ spec: - name: config-emptydir mountPath: /usr/share/opensearch/config/opensearch.yml subPath: opensearch.yml ---- -# Source: opentelemetry-demo/charts/grafana/templates/tests/test-serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" - name: opentelemetry-demo-grafana-test - namespace: otel-demo - annotations: ---- -# Source: opentelemetry-demo/charts/grafana/templates/tests/test-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: opentelemetry-demo-grafana-test - namespace: otel-demo - annotations: - labels: - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" -data: - run.sh: |- - @test "Test Health" { - url="http://opentelemetry-demo-grafana/api/health" - - code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}') - [ "$code" == "200" ] - } ---- -# Source: opentelemetry-demo/charts/grafana/templates/tests/test.yaml -apiVersion: v1 -kind: Pod -metadata: - name: opentelemetry-demo-grafana-test - labels: - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" - annotations: - namespace: otel-demo -spec: - serviceAccountName: opentelemetry-demo-grafana-test - containers: - - name: opentelemetry-demo-test - image: "docker.io/bats/bats:v1.4.1" - imagePullPolicy: "IfNotPresent" - command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"] - volumeMounts: - - mountPath: /tests - name: tests - readOnly: true - volumes: - - name: tests - configMap: - name: opentelemetry-demo-grafana-test - restartPolicy: Never From 3c763db92b3b4a1590e5292dffd1e16cb239a782 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Wed, 20 Nov 2024 02:46:34 -0500 Subject: [PATCH 008/178] [frontendproxy] - add envoy access logs (#1768) * add envoy access logs * Update src/frontendproxy/envoy.tmpl.yaml * clean up envoy access logs * limit log panel to 100 * dashboard adjusts --------- Co-authored-by: Juliano Costa Co-authored-by: Cedric Ziel Co-authored-by: Juliano Costa Co-authored-by: Martin Thwaites --- CHANGELOG.md | 2 + docker-compose.minimal.yml | 1 + docker-compose.yml | 1 + src/frontendproxy/Dockerfile | 2 +- src/frontendproxy/envoy.tmpl.yaml | 94 ++++++++++++++++++- .../dashboards/demo/demo-dashboard.json | 48 ++++++++-- 6 files changed, 138 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 158b42d48d..6bb38ea44d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ the release. ([#1764](https://github.com/open-telemetry/opentelemetry-demo/pull/1764)) * [chore] Move build args to .env file ([#1767](https://github.com/open-telemetry/opentelemetry-demo/pull/1767)) +* [frontendproxy] add access logs + ([#1768](https://github.com/open-telemetry/opentelemetry-demo/pull/1768)) * [grafana] Fix Dashboards ([#1779](https://github.com/open-telemetry/opentelemetry-demo/pull/1779)) * [accountingservice] bump OpenTelemetry .NET Automatic Instrumentation diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index dcfba1123e..b71ee2a5d3 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -269,6 +269,7 @@ services: - OTEL_COLLECTOR_PORT_GRPC - OTEL_COLLECTOR_PORT_HTTP - OTEL_RESOURCE_ATTRIBUTES + - OTEL_SERVICE_NAME=frontend-proxy - ENVOY_PORT - FLAGD_HOST - FLAGD_PORT diff --git a/docker-compose.yml b/docker-compose.yml index 23e47d10a0..78642e2be7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -343,6 +343,7 @@ services: - OTEL_COLLECTOR_PORT_GRPC - OTEL_COLLECTOR_PORT_HTTP - OTEL_RESOURCE_ATTRIBUTES + - OTEL_SERVICE_NAME=frontend-proxy - ENVOY_PORT - FLAGD_HOST - FLAGD_PORT diff --git a/src/frontendproxy/Dockerfile b/src/frontendproxy/Dockerfile index 21d9cfed23..e9b4bfd5b6 100644 --- a/src/frontendproxy/Dockerfile +++ b/src/frontendproxy/Dockerfile @@ -1,7 +1,7 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -FROM envoyproxy/envoy:v1.30-latest +FROM envoyproxy/envoy:v1.32-latest RUN apt-get update && apt-get install -y gettext-base && apt-get clean && rm -rf /var/lib/apt/lists/* USER envoy diff --git a/src/frontendproxy/envoy.tmpl.yaml b/src/frontendproxy/envoy.tmpl.yaml index 81c2f28a16..559ad53f3b 100644 --- a/src/frontendproxy/envoy.tmpl.yaml +++ b/src/frontendproxy/envoy.tmpl.yaml @@ -25,7 +25,7 @@ static_resources: envoy_grpc: cluster_name: opentelemetry_collector_grpc timeout: 0.250s - service_name: frontend-proxy + service_name: ${OTEL_SERVICE_NAME} resource_detectors: - name: envoy.tracers.opentelemetry.resource_detectors.environment typed_config: @@ -65,6 +65,98 @@ static_resources: - name: envoy.filters.http.router typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router + access_log: + - name: envoy.access_loggers.open_telemetry + typed_config: + "@type": "type.googleapis.com/envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig" + common_config: + log_name: "otel_envoy_access_log" + grpc_service: + envoy_grpc: + cluster_name: opentelemetry_collector_grpc + transport_api_version: "V3" + body: + # yamllint disable-line rule:line-length + string_value: "[%START_TIME%] \"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%\" %RESPONSE_CODE% %RESPONSE_FLAGS% %RESPONSE_CODE_DETAILS% %CONNECTION_TERMINATION_DETAILS% \"%UPSTREAM_TRANSPORT_FAILURE_REASON%\" %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% \"%REQ(X-FORWARDED-FOR)%\" \"%REQ(USER-AGENT)%\" \"%REQ(X-REQUEST-ID)%\" \"%REQ(:AUTHORITY)%\" \"%UPSTREAM_HOST%\" %UPSTREAM_CLUSTER% %UPSTREAM_LOCAL_ADDRESS% %DOWNSTREAM_LOCAL_ADDRESS% %DOWNSTREAM_REMOTE_ADDRESS% %REQUESTED_SERVER_NAME% %ROUTE_NAME%\n" + resource_attributes: + values: + - key: "service.name" + value: + string_value: ${OTEL_SERVICE_NAME} + attributes: + values: + - key: "destination.address" + value: + string_value: "%UPSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%" + - key: "event.name" + value: + string_value: "proxy.access" + - key: "http.connection.id" + value: + string_value: "%CONNECTION_ID%" + - key: "http.protocol" + value: + string_value: "%PROTOCOL%" + - key: "http.request.body.size" + value: + string_value: "%BYTES_RECEIVED%" + - key: "http.request.header.x-forwarded-for" + value: + string_value: "%REQ(X-FORWARDED-FOR)%" + - key: "http.request.header.x-request-id" + value: + string_value: "%REQ(X-REQUEST-ID)%" + - key: "http.request.headers.size" + value: + string_value: "%REQUEST_HEADERS_BYTES%" + - key: "http.request.id" + value: + string_value: "%STREAM_ID%" + - key: "http.request.method" + value: + string_value: "%REQ(:METHOD)%" + - key: "http.request.start_time" + value: + string_value: "%START_TIME%" + - key: "http.response.body.size" + value: + string_value: "%BYTES_SENT%" + - key: "http.response.headers.size" + value: + string_value: "%RESPONSE_HEADERS_BYTES%" + - key: "http.response.status_code" + value: + string_value: "%RESPONSE_CODE%" + - key: "http.total_duration_ms" + value: + string_value: "%DURATION%" + - key: "server.address" + value: + string_value: "%DOWNSTREAM_LOCAL_ADDRESS%" + - key: "source.address" + value: + string_value: "%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%" + - key: "upstream.cluster" + value: + string_value: "%UPSTREAM_CLUSTER%" + - key: "upstream.host" + value: + string_value: "%UPSTREAM_HOST%" + - key: "user_agent.original" + value: + string_value: "%REQ(USER-AGENT)%" + - key: "url.full" + value: + string_value: "%REQ(:SCHEME)%://%REQ(:AUTHORITY)%%REQ(:PATH)%" + - key: "url.path" + value: + string_value: "%REQ(:PATH)%" + - key: "url.query" + value: + string_value: "%REQ(:QUERY)%" + - key: "url.template" + value: + string_value: "%ROUTE_NAME%" clusters: - name: opentelemetry_collector_grpc diff --git a/src/grafana/provisioning/dashboards/demo/demo-dashboard.json b/src/grafana/provisioning/dashboards/demo/demo-dashboard.json index 87cf5ec142..bd0b37fba2 100644 --- a/src/grafana/provisioning/dashboards/demo/demo-dashboard.json +++ b/src/grafana/provisioning/dashboards/demo/demo-dashboard.json @@ -401,7 +401,7 @@ "mode": "thresholds" }, "custom": { - "align": "auto", + "align": "left", "cellOptions": { "type": "auto" }, @@ -422,7 +422,20 @@ ] } }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "count()" + }, + "properties": [ + { + "id": "custom.width", + "value": 90 + } + ] + } + ] }, "gridPos": { "h": 8, @@ -509,7 +522,20 @@ ] } }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "observedTimestamp" + }, + "properties": [ + { + "id": "custom.width", + "value": 222 + } + ] + } + ] }, "gridPos": { "h": 8, @@ -528,7 +554,13 @@ ], "show": false }, - "showHeader": true + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "observedTimestamp" + } + ] }, "pluginVersion": "11.3.0", "targets": [ @@ -556,13 +588,13 @@ "type": "count" } ], - "query": "search source=otel\n| where resource.service.name=\"${service}\"", + "query": "search source=otel\n| where resource.service.name=\"${service}\"| sort - observedTimestamp | head 100", "queryType": "PPL", "refId": "A", - "timeField": "time" + "timeField": "observedTimestamp" } ], - "title": "${service} Logs", + "title": "${service} Logs (100 recent entries)", "type": "table" }, { @@ -1039,6 +1071,6 @@ "timezone": "", "title": "Demo Dashboard", "uid": "W2gX2zHVk", - "version": 2, + "version": 1, "weekStart": "" } From 681700efc617c19411590b04ffb633fef6244dba Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Wed, 20 Nov 2024 23:13:24 -0500 Subject: [PATCH 009/178] [chore] update memory limits (#1786) * update memory limits * update memory limits --- CHANGELOG.md | 2 ++ docker-compose.minimal.yml | 2 +- docker-compose.yml | 6 +++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bb38ea44d..9566411768 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ the release. ([#1779](https://github.com/open-telemetry/opentelemetry-demo/pull/1779)) * [accountingservice] bump OpenTelemetry .NET Automatic Instrumentation to 1.9.0 ([#1780](https://github.com/open-telemetry/opentelemetry-demo/pull/1780)) +* [chore] update memory limits for flagd, flagdui, and loadgenerator + ([#1786](https://github.com/open-telemetry/opentelemetry-demo/pull/1786)) ## 1.12.0 diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index b71ee2a5d3..1acbf44471 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -504,7 +504,7 @@ services: deploy: resources: limits: - memory: 50M + memory: 75M environment: - FLAGD_OTEL_COLLECTOR_URI=${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_GRPC} - FLAGD_METRICS_EXPORTER=otel diff --git a/docker-compose.yml b/docker-compose.yml index 78642e2be7..b446847474 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -400,7 +400,7 @@ services: deploy: resources: limits: - memory: 1G + memory: 1500M restart: unless-stopped ports: - "${LOCUST_WEB_PORT}" @@ -589,7 +589,7 @@ services: deploy: resources: limits: - memory: 50M + memory: 75M restart: unless-stopped environment: - FLAGD_OTEL_COLLECTOR_URI=${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_GRPC} @@ -618,7 +618,7 @@ services: deploy: resources: limits: - memory: 150M + memory: 75M restart: unless-stopped environment: - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP} From 5c748f7382c47d02df005b78673494b45d03e000 Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Thu, 21 Nov 2024 20:10:24 +0100 Subject: [PATCH 010/178] Update k8s manifest (#1790) --- kubernetes/opentelemetry-demo.yaml | 1057 ++++++++++++++-------------- 1 file changed, 539 insertions(+), 518 deletions(-) diff --git a/kubernetes/opentelemetry-demo.yaml b/kubernetes/opentelemetry-demo.yaml index 413f6599eb..a5897ad10f 100644 --- a/kubernetes/opentelemetry-demo.yaml +++ b/kubernetes/opentelemetry-demo.yaml @@ -15,7 +15,7 @@ metadata: labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.17.1" + app.kubernetes.io/version: "2.18.0" app.kubernetes.io/component: otel-demo-opensearch spec: maxUnavailable: 1 @@ -32,7 +32,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" + app.kubernetes.io/version: "11.3.0" name: opentelemetry-demo-grafana namespace: otel-demo --- @@ -57,7 +57,7 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.110.0" + app.kubernetes.io/version: "0.113.0" --- # Source: opentelemetry-demo/charts/prometheus/templates/serviceaccount.yaml apiVersion: v1 @@ -67,7 +67,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.54.1 + app.kubernetes.io/version: v2.55.1 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server namespace: otel-demo @@ -96,7 +96,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" + app.kubernetes.io/version: "11.3.0" type: Opaque data: @@ -113,7 +113,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" + app.kubernetes.io/version: "11.3.0" data: plugins: grafana-opensearch-datasource @@ -171,7 +171,7 @@ data: logMessageField: body pplEnabled: true timeField: observedTimestamp - version: 2.17.0 + version: 2.18.0 name: OpenSearch type: grafana-opensearch-datasource url: http://otel-demo-opensearch:9200/ @@ -195,7 +195,7 @@ metadata: labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.17.1" + app.kubernetes.io/version: "2.18.0" app.kubernetes.io/component: otel-demo-opensearch data: opensearch.yml: | @@ -259,7 +259,7 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.110.0" + app.kubernetes.io/version: "0.113.0" data: relay: | @@ -416,7 +416,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.54.1 + app.kubernetes.io/version: v2.55.1 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server namespace: otel-demo @@ -593,7 +593,7 @@ metadata: app.kubernetes.io/part-of: opentelemetry-demo data: - demo-dashboard.json: |- + demo-dashboard.json: | { "annotations": { "list": [ @@ -622,7 +622,6 @@ data: "graphTooltip": 0, "id": 2, "links": [], - "liveNow": false, "panels": [ { "collapsed": false, @@ -655,6 +654,7 @@ data: "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -718,6 +718,7 @@ data: "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -726,7 +727,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "histogram_quantile(0.50, sum(rate(duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", + "expr": "histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", "legendFormat": "quantile50", "range": true, "refId": "A" @@ -738,7 +739,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.95, sum(rate(duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", + "expr": "histogram_quantile(0.95, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", "hide": false, "legendFormat": "quantile95", "range": true, @@ -751,7 +752,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.99, sum(rate(duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", + "expr": "histogram_quantile(0.99, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", "hide": false, "legendFormat": "quantile99", "range": true, @@ -764,7 +765,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.999, sum(rate(duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", + "expr": "histogram_quantile(0.999, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", "hide": false, "legendFormat": "quantile999", "range": true, @@ -792,6 +793,7 @@ data: "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -854,6 +856,7 @@ data: "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -861,7 +864,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": " sum by (span_name) (rate(calls_total{status_code=\"STATUS_CODE_ERROR\", service_name=\"${service}\"}[$__rate_interval]))", + "expr": " sum by (span_name) (rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\", service_name=\"${service}\"}[$__rate_interval]))", "interval": "", "legendFormat": "{{ span_name }}", "range": true, @@ -888,6 +891,7 @@ data: "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -951,6 +955,7 @@ data: "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -958,7 +963,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum by (span_name) (rate(duration_milliseconds_count{service_name=\"${service}\"}[$__rate_interval]))", + "expr": "sum by (span_name) (rate(traces_span_metrics_duration_milliseconds_count{service_name=\"${service}\"}[$__rate_interval]))", "legendFormat": "{{ span_name }}", "range": true, "refId": "A" @@ -992,7 +997,7 @@ data: "mode": "thresholds" }, "custom": { - "align": "auto", + "align": "left", "cellOptions": { "type": "auto" }, @@ -1013,7 +1018,20 @@ data: ] } }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "count()" + }, + "properties": [ + { + "id": "custom.width", + "value": 90 + } + ] + } + ] }, "gridPos": { "h": 8, @@ -1034,7 +1052,7 @@ data: }, "showHeader": true }, - "pluginVersion": "10.4.3", + "pluginVersion": "11.3.0", "targets": [ { "alias": "", @@ -1100,7 +1118,20 @@ data: ] } }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "observedTimestamp" + }, + "properties": [ + { + "id": "custom.width", + "value": 222 + } + ] + } + ] }, "gridPos": { "h": 8, @@ -1119,9 +1150,15 @@ data: ], "show": false }, - "showHeader": true + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "observedTimestamp" + } + ] }, - "pluginVersion": "10.4.3", + "pluginVersion": "11.3.0", "targets": [ { "alias": "", @@ -1147,13 +1184,13 @@ data: "type": "count" } ], - "query": "search source=otel\n| where resource.service.name=\"${service}\"", + "query": "search source=otel\n| where resource.service.name=\"${service}\"| sort - observedTimestamp | head 100", "queryType": "PPL", "refId": "A", - "timeField": "time" + "timeField": "observedTimestamp" } ], - "title": "${service} Logs", + "title": "${service} Logs (100 recent entries)", "type": "table" }, { @@ -1186,6 +1223,7 @@ data: "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1248,6 +1286,7 @@ data: "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1305,6 +1344,7 @@ data: "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1367,6 +1407,7 @@ data: "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1409,6 +1450,7 @@ data: "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "bars", "fillOpacity": 0, "gradientMode": "none", @@ -1470,6 +1512,7 @@ data: "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1504,6 +1547,7 @@ data: "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1566,6 +1610,7 @@ data: "sort": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1573,7 +1618,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "rate(otel_trace_span_processor_spans{job=\"quoteservice\"}[2m])*120", + "expr": "rate(otel_trace_span_processor_spans{job=\"opentelemetry-demo/quoteservice\"}[2m])*120", "interval": "2m", "legendFormat": "{{state}}", "range": true, @@ -1584,16 +1629,14 @@ data: "type": "timeseries" } ], + "preload": false, "refresh": "", - "revision": 1, - "schemaVersion": 39, + "schemaVersion": 40, "tags": [], "templating": { "list": [ { - "allValue": "", "current": { - "selected": true, "text": "frontend", "value": "frontend" }, @@ -1601,19 +1644,16 @@ data: "type": "prometheus", "uid": "webstore-metrics" }, - "definition": "duration_milliseconds_bucket", - "hide": 0, + "definition": "traces_span_metrics_duration_milliseconds_bucket", "includeAll": false, - "multi": false, "name": "service", "options": [], "query": { - "query": "duration_milliseconds_bucket", + "query": "traces_span_metrics_duration_milliseconds_bucket", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "/.*service_name=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, "type": "query" } @@ -1658,9 +1698,8 @@ data: "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 6, + "id": 3, "links": [], - "liveNow": false, "panels": [ { "collapsed": false, @@ -1715,6 +1754,7 @@ data: "graphMode": "area", "justifyMode": "center", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -1722,9 +1762,11 @@ data: "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1732,7 +1774,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "count(count(otelcol_process_cpu_seconds{service_instance_id=~\".*\"}) by (service_instance_id))", + "expr": "count(count(otelcol_process_cpu_seconds_total{service_instance_id=~\".*\"}) by (service_instance_id))", "legendFormat": "__auto", "range": true, "refId": "A" @@ -1778,6 +1820,8 @@ data: }, "id": 24, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -1787,9 +1831,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1797,7 +1842,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "avg(rate(otelcol_process_cpu_seconds{}[$__rate_interval])*100) by (instance)", + "expr": "avg(rate(otelcol_process_cpu_seconds_total{}[$__rate_interval])*100) by (instance)", "legendFormat": "__auto", "range": true, "refId": "A" @@ -1843,6 +1888,8 @@ data: }, "id": 38, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -1852,9 +1899,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1872,11 +1920,11 @@ data: "type": "gauge" }, { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 4, "w": 15, @@ -1893,7 +1941,8 @@ data: "content": "## Opentelemetry Collector Data Ingress/Egress\n\n`service_version:` ${service_version}\n\n`opentelemetry collector:` contrib\n\n", "mode": "markdown" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", + "title": "", "type": "text" }, { @@ -1963,6 +2012,8 @@ data: }, "id": 55, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "vertical", "reduceOptions": { "calcs": [ @@ -1972,9 +2023,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": false + "showThresholdMarkers": false, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -1983,7 +2035,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_spans{}[$__range])))", + "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_spans_total{}[$__range])))", "format": "time_series", "hide": true, "instant": false, @@ -1997,7 +2049,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_spans{}[$__range])))", + "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_spans_total{}[$__range])))", "format": "time_series", "hide": true, "legendFormat": "__auto", @@ -2010,7 +2062,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "(avg(sum by(job) (rate(otelcol_exporter_sent_spans{}[$__range]))) / avg(sum by(job) (rate(otelcol_receiver_accepted_spans{}[$__range])))) ", + "expr": "(avg(sum by(job) (rate(otelcol_exporter_sent_spans_total{}[$__range]))) / avg(sum by(job) (rate(otelcol_receiver_accepted_spans_total{}[$__range])))) ", "hide": false, "legendFormat": "__auto", "range": true, @@ -2018,7 +2070,6 @@ data: } ], "title": "Export Ratio", - "transformations": [], "type": "gauge" }, { @@ -2026,6 +2077,10 @@ data: "type": "prometheus", "uid": "webstore-metrics" }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 11, "w": 21, @@ -2034,10 +2089,12 @@ data: }, "id": 4, "options": { + "edges": {}, "nodes": { "mainStatUnit": "flops" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2046,7 +2103,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "label_join(label_join(\n(rate(otelcol_receiver_accepted_spans{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n \nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", + "expr": "label_join(label_join(\n(rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n \nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", "format": "table", "instant": true, "legendFormat": "__auto", @@ -2060,7 +2117,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_spans{}[$__interval]))\n\n ,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n or\n\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_exporter_sent_spans{}[$__interval]))\n ,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n", + "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n\n ,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n or\n\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n ,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n", "format": "table", "hide": false, "instant": true, @@ -2069,7 +2126,7 @@ data: "refId": "edges" } ], - "transformations": [], + "title": "", "type": "nodeGraph" }, { @@ -2110,6 +2167,7 @@ data: "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -2117,9 +2175,11 @@ data: "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2127,7 +2187,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_spans{}[$__rate_interval])) by (receiver,transport)", + "expr": "sum(rate(otelcol_receiver_accepted_spans_total{}[$__rate_interval])) by (receiver,transport)", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -2168,6 +2228,8 @@ data: }, "id": 13, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -2177,9 +2239,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2187,7 +2250,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_spans{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_receiver_accepted_spans_total{}[$__rate_interval])) ", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -2237,6 +2300,7 @@ data: "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -2244,10 +2308,12 @@ data: "fields": "", "values": false }, + "showPercentChange": false, "text": {}, - "textMode": "auto" + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2295,6 +2361,8 @@ data: }, "id": 14, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -2304,9 +2372,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2315,7 +2384,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_spans{}[$__interval])) ", + "expr": "sum(rate(otelcol_exporter_sent_spans_total{}[$__interval])) ", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -2363,6 +2432,7 @@ data: "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -2370,9 +2440,11 @@ data: "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2381,7 +2453,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_spans{}[$__rate_interval])) by (exporter)", + "expr": "sum(rate(otelcol_exporter_sent_spans_total{}[$__rate_interval])) by (exporter)", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -2429,6 +2501,7 @@ data: "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -2436,9 +2509,11 @@ data: "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2446,7 +2521,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_spans{}[$__rate_interval])) by (receiver,transport)", + "expr": "sum(rate(otelcol_receiver_refused_spans_total{}[$__rate_interval])) by (receiver,transport)", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -2487,6 +2562,8 @@ data: }, "id": 18, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -2496,9 +2573,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2506,7 +2584,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_spans{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_receiver_refused_spans_total{}[$__rate_interval])) ", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -2547,6 +2625,8 @@ data: }, "id": 19, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -2556,9 +2636,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2567,7 +2648,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_spans{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_exporter_send_failed_spans_total{}[$__rate_interval])) ", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -2615,6 +2696,7 @@ data: "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -2622,9 +2704,11 @@ data: "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2633,7 +2717,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_spans{}[$__rate_interval])) by (exporter)", + "expr": "sum(rate(otelcol_exporter_send_failed_spans_total{}[$__rate_interval])) by (exporter)", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -2711,6 +2795,8 @@ data: }, "id": 54, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "vertical", "reduceOptions": { "calcs": [ @@ -2720,9 +2806,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": false + "showThresholdMarkers": false, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2731,7 +2818,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points{}[$__range])))", + "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points_total{}[$__range])))", "format": "time_series", "hide": true, "instant": false, @@ -2745,7 +2832,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points{}[$__range])))", + "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points_total{}[$__range])))", "format": "time_series", "hide": true, "legendFormat": "__auto", @@ -2758,7 +2845,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "( avg(sum by(job) (rate(otelcol_exporter_sent_metric_points{}[$__range]))) /avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points{}[$__range]))))", + "expr": "( avg(sum by(job) (rate(otelcol_exporter_sent_metric_points_total{}[$__range]))) /avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points_total{}[$__range]))))", "hide": false, "legendFormat": "__auto", "range": true, @@ -2810,6 +2897,10 @@ data: "uid": "webstore-metrics" }, "description": "Metrics Signalling Pipelines", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 11, "w": 21, @@ -2818,10 +2909,12 @@ data: }, "id": 25, "options": { + "edges": {}, "nodes": { "mainStatUnit": "flops" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2830,7 +2923,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "\nlabel_join(label_join(\n(rate(otelcol_receiver_accepted_metric_points{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\n\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\n\n\n\n\nor\nlabel_replace(label_replace(\nsum (rate(otelcol_exporter_sent_metric_points{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_metric_points{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", + "expr": "\nlabel_join(label_join(\n(rate(otelcol_receiver_accepted_metric_points_total{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\n\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\n\n\n\n\nor\nlabel_replace(label_replace(\nsum (rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", "format": "table", "instant": true, "legendFormat": "__auto", @@ -2844,7 +2937,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_metric_points{}[$__interval]))\n\n,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\nor\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\n\n\n\nor\n\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_exporter_sent_metric_points{}[$__interval]))\n,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")", + "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_metric_points_total{}[$__interval]))\n\n,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\nor\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\n\n\n\nor\n\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")", "format": "table", "hide": false, "instant": true, @@ -2853,7 +2946,7 @@ data: "refId": "edges" } ], - "transformations": [], + "title": "", "type": "nodeGraph" }, { @@ -2894,6 +2987,7 @@ data: "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -2901,9 +2995,11 @@ data: "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2911,7 +3007,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_metric_points{}[$__rate_interval])) by (receiver,transport)", + "expr": "sum(rate(otelcol_receiver_accepted_metric_points_total{}[$__rate_interval])) by (receiver,transport)", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -2952,6 +3048,8 @@ data: }, "id": 27, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -2961,9 +3059,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -2971,7 +3070,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_metric_points{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_receiver_accepted_metric_points_total{}[$__rate_interval])) ", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -3020,6 +3119,7 @@ data: "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -3027,10 +3127,12 @@ data: "fields": "", "values": false }, + "showPercentChange": false, "text": {}, - "textMode": "auto" + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3079,6 +3181,8 @@ data: }, "id": 29, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -3088,9 +3192,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3099,7 +3204,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_metric_points{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_exporter_sent_metric_points_total{}[$__rate_interval])) ", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -3147,6 +3252,7 @@ data: "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -3154,9 +3260,11 @@ data: "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3165,7 +3273,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_metric_points{}[$__rate_interval])) by (exporter) ", + "expr": "sum(rate(otelcol_exporter_sent_metric_points_total{}[$__rate_interval])) by (exporter) ", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -3213,6 +3321,7 @@ data: "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -3220,9 +3329,11 @@ data: "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3230,7 +3341,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_metric_points{}[$__rate_interval])) by (receiver,transport)", + "expr": "sum(rate(otelcol_receiver_refused_metric_points_total{}[$__rate_interval])) by (receiver,transport)", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -3271,6 +3382,8 @@ data: }, "id": 48, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -3280,9 +3393,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3290,7 +3404,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_metric_points{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_receiver_refused_metric_points_total{}[$__rate_interval])) ", "legendFormat": "{{receiver}}-{{transport}}", "range": true, "refId": "A" @@ -3331,6 +3445,8 @@ data: }, "id": 49, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -3340,9 +3456,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3351,7 +3468,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_metric_points{}[$__rate_interval])) ", + "expr": "sum(rate(otelcol_exporter_send_failed_metric_points_total{}[$__rate_interval])) ", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -3399,6 +3516,7 @@ data: "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -3406,9 +3524,11 @@ data: "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3417,7 +3537,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_metric_points{}[$__rate_interval])) by (exporter)", + "expr": "sum(rate(otelcol_exporter_send_failed_metric_points_total{}[$__rate_interval])) by (exporter)", "format": "time_series", "instant": false, "legendFormat": "{{processor}}", @@ -3495,6 +3615,8 @@ data: }, "id": 53, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "vertical", "reduceOptions": { "calcs": [ @@ -3504,9 +3626,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": false + "showThresholdMarkers": false, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3528,7 +3651,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "(sum(rate(otelcol_exporter_sent_metric_points{exporter=\"prometheus\"}[$__rate_interval])) )", + "expr": "(sum(rate(otelcol_exporter_sent_metric_points_total{exporter=\"prometheus\"}[$__rate_interval])) )", "format": "time_series", "hide": false, "legendFormat": "__auto", @@ -3611,6 +3734,7 @@ data: "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -3618,9 +3742,11 @@ data: "fields": "", "values": false }, - "textMode": "value_and_name" + "showPercentChange": false, + "textMode": "value_and_name", + "wideLayout": true }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3676,6 +3802,8 @@ data: }, "id": 42, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -3685,9 +3813,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3728,6 +3857,10 @@ data: "type": "prometheus", "uid": "webstore-metrics" }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 9, "w": 8, @@ -3735,7 +3868,11 @@ data: "y": 46 }, "id": 41, - "pluginVersion": "9.1.0", + "options": { + "edges": {}, + "nodes": {} + }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -3768,6 +3905,7 @@ data: "refId": "edges" } ], + "title": "", "transformations": [ { "id": "organize", @@ -3783,11 +3921,11 @@ data: "type": "nodeGraph" }, { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, "description": "Sent by Exporter", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 9, "w": 5, @@ -3804,20 +3942,20 @@ data: "content": "\n \n## Prometheus Config\n\n`evaluation_interval:` 30s\n\n`scrape_interval:` 5s", "mode": "markdown" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", + "title": "", "type": "text" } ], + "preload": false, "refresh": false, - "schemaVersion": 37, - "style": "dark", + "schemaVersion": 40, "tags": [], "templating": { "list": [ { "allValue": ".*", "current": { - "selected": false, "text": "0.70.0", "value": "0.70.0" }, @@ -3838,8 +3976,6 @@ data: }, "refresh": 1, "regex": "/.*service_version=\"(.*)\".*/", - "skipUrlSync": false, - "sort": 0, "type": "query" } ] @@ -3852,57 +3988,11 @@ data: "timezone": "", "title": "Opentelemetry Collector Data Flow", "uid": "rl5_tea4k", - "version": 2, + "version": 1, "weekStart": "" } opentelemetry-collector.json: | { - "__inputs": [], - "__elements": {}, - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "10.0.3" - }, - { - "type": "panel", - "id": "heatmap", - "name": "Heatmap", - "version": "" - }, - { - "type": "panel", - "id": "nodeGraph", - "name": "Node Graph", - "version": "" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "table", - "name": "Table", - "version": "" - }, - { - "type": "panel", - "id": "text", - "name": "Text", - "version": "" - }, - { - "type": "panel", - "id": "timeseries", - "name": "Time series", - "version": "" - } - ], "annotations": { "list": [ { @@ -3925,21 +4015,15 @@ data: } ] }, - "description": "Visualize OpenTelemetry (OTEL) collector metrics (tested with OTEL contrib v0.84.0)", + "description": "Visualize OpenTelemetry (OTEL) collector metrics (tested with OTEL contrib v0.113.0)", "editable": true, "fiscalYearStartMonth": 0, - "gnetId": 15983, "graphTooltip": 1, - "id": null, + "id": 4, "links": [], - "liveNow": false, "panels": [ { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, "gridPos": { "h": 1, "w": 24, @@ -3948,15 +4032,6 @@ data: }, "id": 23, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "refId": "A" - } - ], "title": "Receivers", "type": "row" }, @@ -3972,11 +4047,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -3985,6 +4062,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -4045,7 +4123,6 @@ data: }, "id": 28, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -4062,7 +4139,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -4071,7 +4148,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_spans{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_accepted_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -4086,7 +4163,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_spans{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_refused_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -4111,11 +4188,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -4124,6 +4203,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -4184,7 +4264,6 @@ data: }, "id": 32, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -4201,7 +4280,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -4210,7 +4289,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_metric_points{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_accepted_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -4225,7 +4304,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_metric_points{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_refused_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -4250,11 +4329,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -4263,6 +4344,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -4323,7 +4405,6 @@ data: }, "id": 47, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -4340,7 +4421,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -4349,7 +4430,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_log_records{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_accepted_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -4364,7 +4445,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_log_records{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "expr": "sum(${metric:value}(otelcol_receiver_refused_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -4379,10 +4460,6 @@ data: }, { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, "gridPos": { "h": 1, "w": 24, @@ -4391,15 +4468,6 @@ data: }, "id": 34, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "refId": "A" - } - ], "title": "Processors", "type": "row" }, @@ -4415,11 +4483,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -4428,6 +4498,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -4499,11 +4570,10 @@ data: "h": 8, "w": 8, "x": 0, - "y": 18 + "y": 10 }, "id": 36, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -4520,7 +4590,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -4584,11 +4654,10 @@ data: "h": 8, "w": 8, "x": 8, - "y": 18 + "y": 10 }, "id": 49, "interval": "$minstep", - "links": [], "maxDataPoints": 50, "options": { "calculate": false, @@ -4615,7 +4684,8 @@ data: "layout": "auto" }, "tooltip": { - "show": true, + "mode": "single", + "showColorScale": false, "yHistogram": false }, "yAxis": { @@ -4623,7 +4693,7 @@ data: "reverse": false } }, - "pluginVersion": "10.0.3", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -4657,11 +4727,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -4670,6 +4742,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -4741,11 +4814,10 @@ data: "h": 8, "w": 8, "x": 16, - "y": 18 + "y": 10 }, "id": 56, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -4762,7 +4834,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -4771,13 +4843,13 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_processor_batch_batch_size_trigger_send{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", + "expr": "sum(${metric:value}(otelcol_processor_batch_timeout_trigger_send_total {processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", "format": "time_series", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Batch sent due to a size trigger: {{processor}}", + "legendFormat": "Batch sent due to a timeout trigger: {{processor}}", "refId": "B" }, { @@ -4802,27 +4874,14 @@ data: }, { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 26 + "y": 18 }, "id": 25, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "refId": "A" - } - ], "title": "Exporters", "type": "row" }, @@ -4838,11 +4897,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -4851,6 +4912,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -4907,11 +4969,10 @@ data: "h": 9, "w": 8, "x": 0, - "y": 27 + "y": 19 }, "id": 37, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -4928,7 +4989,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -4937,7 +4998,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_spans{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "expr": "sum(${metric:value}(otelcol_exporter_sent_spans_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -4993,11 +5054,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -5006,6 +5069,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -5062,11 +5126,10 @@ data: "h": 9, "w": 8, "x": 8, - "y": 27 + "y": 19 }, "id": 38, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -5083,7 +5146,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -5092,7 +5155,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_metric_points{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "expr": "sum(${metric:value}(otelcol_exporter_sent_metric_points_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -5148,11 +5211,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -5161,6 +5226,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -5217,11 +5283,10 @@ data: "h": 9, "w": 8, "x": 16, - "y": 27 + "y": 19 }, "id": 48, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -5238,7 +5303,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -5247,7 +5312,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_log_records{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "expr": "sum(${metric:value}(otelcol_exporter_sent_log_records_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -5303,11 +5368,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -5316,6 +5383,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -5355,10 +5423,9 @@ data: "h": 9, "w": 12, "x": 0, - "y": 36 + "y": 28 }, "id": 10, - "links": [], "options": { "legend": { "calcs": [ @@ -5375,7 +5442,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -5408,11 +5475,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -5421,6 +5490,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -5460,10 +5530,9 @@ data: "h": 9, "w": 12, "x": 12, - "y": 36 + "y": 28 }, "id": 55, - "links": [], "options": { "legend": { "calcs": [ @@ -5480,7 +5549,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -5503,27 +5572,14 @@ data: }, { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 45 + "y": 37 }, "id": 21, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "refId": "A" - } - ], "title": "Collector", "type": "row" }, @@ -5539,11 +5595,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -5552,6 +5610,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -5662,11 +5721,10 @@ data: "h": 9, "w": 8, "x": 0, - "y": 46 + "y": 38 }, "id": 40, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -5683,7 +5741,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -5748,11 +5806,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -5761,6 +5821,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -5871,11 +5932,10 @@ data: "h": 9, "w": 8, "x": 8, - "y": 46 + "y": 38 }, "id": 52, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -5892,7 +5952,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -5957,11 +6017,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -5970,6 +6032,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -6080,11 +6143,10 @@ data: "h": 9, "w": 8, "x": 16, - "y": 46 + "y": 38 }, "id": 53, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -6101,7 +6163,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -6166,11 +6228,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -6179,6 +6243,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -6285,11 +6350,10 @@ data: "h": 9, "w": 8, "x": 0, - "y": 55 + "y": 47 }, "id": 39, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -6306,7 +6370,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -6315,7 +6379,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "max(rate(otelcol_process_cpu_seconds{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "expr": "max(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -6331,7 +6395,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "avg(rate(otelcol_process_cpu_seconds{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "expr": "avg(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -6347,7 +6411,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "min(rate(otelcol_process_cpu_seconds{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "expr": "min(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -6372,11 +6436,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -6385,6 +6451,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -6425,11 +6492,10 @@ data: "h": 9, "w": 8, "x": 8, - "y": 55 + "y": 47 }, "id": 41, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -6446,7 +6512,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -6455,7 +6521,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "count(count(otelcol_process_cpu_seconds{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id))", + "expr": "count(count(otelcol_process_cpu_seconds_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id))", "format": "time_series", "hide": false, "interval": "$minstep", @@ -6480,11 +6546,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -6493,6 +6561,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -6533,11 +6602,10 @@ data: "h": 9, "w": 8, "x": 16, - "y": 55 + "y": 47 }, "id": 54, "interval": "$minstep", - "links": [], "options": { "legend": { "calcs": [ @@ -6554,7 +6622,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.3.5", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -6563,7 +6631,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "max(otelcol_process_uptime{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id)", + "expr": "max(otelcol_process_uptime_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -6618,11 +6686,10 @@ data: "h": 5, "w": 24, "x": 0, - "y": 64 + "y": 56 }, "id": 57, "interval": "$minstep", - "links": [], "options": { "cellHeight": "sm", "footer": { @@ -6635,7 +6702,7 @@ data: }, "showHeader": true }, - "pluginVersion": "10.0.3", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -6644,7 +6711,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "max(otelcol_process_uptime{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id,service_name,service_version)", + "expr": "max(otelcol_process_uptime_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id,service_name,service_version)", "format": "table", "hide": false, "instant": true, @@ -6677,7 +6744,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 69 + "y": 61 }, "id": 59, "panels": [], @@ -6690,18 +6757,24 @@ data: "uid": "$datasource" }, "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 9, "w": 8, "x": 0, - "y": 70 + "y": 62 }, "id": 58, "options": { + "edges": {}, "nodes": { "mainStatUnit": "flops" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -6710,7 +6783,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_spans{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_spans{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_spans_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", "format": "table", "hide": false, "instant": true, @@ -6725,7 +6798,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_spans{job=\"$job\"}[$__interval])) by (receiver))\r\n ,\"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n ,\"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_spans{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_spans_total{job=\"$job\"}[$__interval])) by (receiver))\r\n ,\"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n ,\"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_spans_total{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", "format": "table", "hide": false, "instant": true, @@ -6766,18 +6839,24 @@ data: "uid": "$datasource" }, "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 9, "w": 8, "x": 8, - "y": 70 + "y": 62 }, "id": 60, "options": { + "edges": {}, "nodes": { "mainStatUnit": "none" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -6786,7 +6865,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_receiver_accepted_metric_points{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver))\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_exporter_sent_metric_points{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter))\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_receiver_accepted_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver))\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_exporter_sent_metric_points_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter))\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", "format": "table", "hide": false, "instant": true, @@ -6801,7 +6880,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_metric_points{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_metric_points{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_metric_points_total{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_metric_points_total{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", "format": "table", "hide": false, "instant": true, @@ -6842,18 +6921,24 @@ data: "uid": "$datasource" }, "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 9, "w": 8, "x": 16, - "y": 70 + "y": 62 }, "id": 61, "options": { + "edges": {}, "nodes": { "mainStatUnit": "flops" } }, + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -6862,7 +6947,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_log_records{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_log_records{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_log_records_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", "format": "table", "hide": false, "instant": true, @@ -6877,7 +6962,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_log_records{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-edg-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_log_records{job=\"$job\"}[$__interval])) by (exporter))\r\n ,\"target\",\"-exp-\",\"transport\",\"exporter\"\r\n )\r\n ,\"source\",\"processor\",\"\",\"\"\r\n )\r\n ,\"id\",\"-edg-\",\"source\",\"target\"\r\n)", + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_log_records_total{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-edg-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_log_records_total{job=\"$job\"}[$__interval])) by (exporter))\r\n ,\"target\",\"-exp-\",\"transport\",\"exporter\"\r\n )\r\n ,\"source\",\"processor\",\"\",\"\"\r\n )\r\n ,\"id\",\"-edg-\",\"source\",\"target\"\r\n)", "format": "table", "hide": false, "instant": true, @@ -6913,20 +6998,17 @@ data: "type": "nodeGraph" }, { - "datasource": { - "type": "prometheus", - "uid": "$datasource" + "fieldConfig": { + "defaults": {}, + "overrides": [] }, - "editable": true, - "error": false, "gridPos": { "h": 3, "w": 24, "x": 0, - "y": 79 + "y": 71 }, "id": 45, - "links": [], "options": { "code": { "language": "plaintext", @@ -6936,23 +7018,14 @@ data: "content": " | \nOTEL collector troubleshooting (how to enable telemetry metrics) | \nScaling the Collector (metrics to watch) | \nInstalled from Grafana.com dashboards", "mode": "html" }, - "pluginVersion": "10.0.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "refId": "A" - } - ], + "pluginVersion": "11.3.0", "title": "Documentation", "type": "text" } ], + "preload": false, "refresh": "10s", - "schemaVersion": 38, - "style": "dark", + "schemaVersion": 40, "tags": [ "opentelemetry", "monitoring" @@ -6961,17 +7034,13 @@ data: "list": [ { "current": {}, - "hide": 0, "includeAll": false, "label": "Datasource", - "multi": false, "name": "datasource", "options": [], "query": "prometheus", - "queryValue": "", "refresh": 1, "regex": "", - "skipUrlSync": false, "type": "datasource" }, { @@ -6981,10 +7050,8 @@ data: "uid": "$datasource" }, "definition": "label_values(otelcol_process_uptime, job)", - "hide": 0, "includeAll": false, "label": "Job", - "multi": false, "name": "job", "options": [], "query": { @@ -6993,7 +7060,6 @@ data: }, "refresh": 1, "regex": "", - "skipUrlSync": false, "sort": 1, "type": "query" }, @@ -7002,11 +7068,9 @@ data: "auto_count": 300, "auto_min": "10s", "current": { - "selected": false, "text": "auto", "value": "$__auto_interval_minstep" }, - "hide": 0, "label": "Min step", "name": "minstep", "options": [ @@ -7037,21 +7101,16 @@ data: } ], "query": "10s,30s,1m,5m", - "queryValue": "", "refresh": 2, - "skipUrlSync": false, "type": "interval" }, { "current": { - "selected": true, "text": "Rate", "value": "rate" }, - "hide": 0, "includeAll": false, "label": "Base metric", - "multi": false, "name": "metric", "options": [ { @@ -7066,8 +7125,6 @@ data: } ], "query": "Rate : rate, Count : increase", - "queryValue": "", - "skipUrlSync": false, "type": "custom" }, { @@ -7078,10 +7135,8 @@ data: "uid": "$datasource" }, "definition": "label_values(receiver)", - "hide": 0, "includeAll": true, "label": "Receiver", - "multi": false, "name": "receiver", "options": [], "query": { @@ -7090,12 +7145,8 @@ data: }, "refresh": 2, "regex": "", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { "current": {}, @@ -7104,10 +7155,8 @@ data: "uid": "$datasource" }, "definition": "label_values(processor)", - "hide": 0, "includeAll": true, "label": "Processor", - "multi": false, "name": "processor", "options": [], "query": { @@ -7116,12 +7165,8 @@ data: }, "refresh": 2, "regex": "", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { "allValue": ".*", @@ -7131,10 +7176,8 @@ data: "uid": "$datasource" }, "definition": "label_values(exporter)", - "hide": 0, "includeAll": true, "label": "Exporter", - "multi": false, "name": "exporter", "options": [], "query": { @@ -7143,24 +7186,17 @@ data: }, "refresh": 2, "regex": "", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { "current": { - "selected": true, "text": "None (basic metrics)", "value": "" }, "description": "Detailed metrics must be configured in the collector configuration. They add grouping by transport protocol (http/grpc) for receivers. ", - "hide": 0, "includeAll": false, "label": "Additional groupping", - "multi": false, "name": "grouping", "options": [ { @@ -7180,8 +7216,6 @@ data: } ], "query": "None (basic metrics) : , By transport (detailed metrics) : \\,transport, By service instance id : \\,service_instance_id", - "queryValue": "", - "skipUrlSync": false, "type": "custom" } ] @@ -7190,35 +7224,11 @@ data: "from": "now-6h", "to": "now" }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, + "timepicker": {}, "timezone": "utc", "title": "OpenTelemetry Collector", "uid": "BKf2sowmj", - "version": 72, + "version": 10, "weekStart": "" } spanmetrics-dashboard.json: | @@ -7246,14 +7256,11 @@ data: ] }, "description": "Spanmetrics way of demo application view.", - "author": { - "name": "devrimdemiroz" - }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, + "id": 5, "links": [], - "liveNow": false, "panels": [ { "collapsed": false, @@ -7317,6 +7324,8 @@ data: "id": 2, "interval": "5m", "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -7326,9 +7335,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -7337,7 +7347,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,histogram_quantile(0.50, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))", + "expr": "topk(7,histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))", "format": "time_series", "hide": true, "instant": false, @@ -7353,11 +7363,11 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,histogram_quantile(0.95, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,service_name)))", + "expr": "topk(7,histogram_quantile(0.95, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,service_name)))", "hide": false, "instant": true, "interval": "", - "legendFormat": "{{le}} - {{service_name}}", + "legendFormat": "{{service_name}}", "range": false, "refId": "B" }, @@ -7368,7 +7378,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.99, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", + "expr": "histogram_quantile(0.99, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile99", @@ -7382,7 +7392,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.999, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", + "expr": "histogram_quantile(0.999, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile999", @@ -7440,8 +7450,16 @@ data: "interval": "5m", "options": { "displayMode": "lcd", + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "maxVizHeight": 300, "minVizHeight": 10, "minVizWidth": 0, + "namePlacement": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -7451,9 +7469,11 @@ data: "values": false }, "showUnfilled": true, - "text": {} + "sizing": "auto", + "text": {}, + "valueMode": "color" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -7462,7 +7482,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,sum by (service_name) (rate(calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])))", + "expr": "topk(7,sum by (service_name) (rate(traces_span_metrics_calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])))", "format": "time_series", "instant": true, "interval": "", @@ -7472,7 +7492,6 @@ data: } ], "title": "Top 7 Services Mean Rate over Range", - "transformations": [], "type": "bargauge" }, { @@ -7518,8 +7537,16 @@ data: "interval": "5m", "options": { "displayMode": "lcd", + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "maxVizHeight": 300, "minVizHeight": 10, "minVizWidth": 0, + "namePlacement": "auto", "orientation": "vertical", "reduceOptions": { "calcs": [ @@ -7529,9 +7556,11 @@ data: "values": false }, "showUnfilled": true, - "text": {} + "sizing": "auto", + "text": {}, + "valueMode": "color" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -7540,7 +7569,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,sum(rate(calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (service_name))", + "expr": "topk(7,sum(rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (service_name))", "instant": true, "interval": "", "legendFormat": "{{service_name}}", @@ -7549,15 +7578,10 @@ data: } ], "title": "Top 7 Services Mean ERROR Rate over Range", - "transformations": [], "type": "bargauge" }, { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, "gridPos": { "h": 1, "w": 24, @@ -7566,15 +7590,6 @@ data: }, "id": 14, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "refId": "A" - } - ], "title": "span_names Level - Throughput", "type": "row" }, @@ -7591,7 +7606,9 @@ data: }, "custom": { "align": "auto", - "displayMode": "auto", + "cellOptions": { + "type": "auto" + }, "inspect": false }, "decimals": 2, @@ -7619,8 +7636,11 @@ data: }, "properties": [ { - "id": "custom.displayMode", - "value": "lcd-gauge" + "id": "custom.cellOptions", + "value": { + "mode": "lcd", + "type": "gauge" + } }, { "id": "color", @@ -7637,8 +7657,11 @@ data: }, "properties": [ { - "id": "custom.displayMode", - "value": "lcd-gauge" + "id": "custom.cellOptions", + "value": { + "mode": "lcd", + "type": "gauge" + } }, { "id": "color", @@ -7679,8 +7702,7 @@ data: }, "properties": [ { - "id": "custom.width", - "value": null + "id": "custom.width" } ] } @@ -7695,7 +7717,9 @@ data: "id": 22, "interval": "5m", "options": { + "cellHeight": "sm", "footer": { + "countRows": false, "fields": "", "reducer": [ "sum" @@ -7705,7 +7729,7 @@ data: "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -7713,7 +7737,7 @@ data: "uid": "webstore-metrics" }, "exemplar": false, - "expr": "topk(7, sum(rate(calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name)) ", + "expr": "topk(7, sum(rate(traces_span_metrics_calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name)) ", "format": "table", "instant": true, "interval": "", @@ -7726,7 +7750,7 @@ data: "uid": "webstore-metrics" }, "exemplar": false, - "expr": "topk(7, sum(rate(calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name))", + "expr": "topk(7, sum(rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name))", "format": "table", "hide": false, "instant": true, @@ -7827,10 +7851,6 @@ data: }, { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, "gridPos": { "h": 1, "w": 24, @@ -7839,15 +7859,6 @@ data: }, "id": 20, "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "refId": "A" - } - ], "title": "span_name Level - Latencies", "type": "row" }, @@ -7900,6 +7911,8 @@ data: "id": 25, "interval": "5m", "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ @@ -7909,9 +7922,10 @@ data: "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -7920,7 +7934,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,histogram_quantile(0.50, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))", + "expr": "topk(7,histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))", "format": "time_series", "hide": true, "instant": false, @@ -7936,7 +7950,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "topk(7,histogram_quantile(0.95, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,span_name)))", + "expr": "topk(7,histogram_quantile(0.95, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,span_name)))", "hide": false, "instant": true, "interval": "", @@ -7951,7 +7965,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.99, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", + "expr": "histogram_quantile(0.99, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile99", @@ -7965,7 +7979,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "histogram_quantile(0.999, sum(rate(duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", + "expr": "histogram_quantile(0.999, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile999", @@ -8015,8 +8029,16 @@ data: "interval": "5m", "options": { "displayMode": "lcd", + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "maxVizHeight": 300, "minVizHeight": 10, "minVizWidth": 0, + "namePlacement": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -8025,9 +8047,11 @@ data: "fields": "", "values": false }, - "showUnfilled": true + "showUnfilled": true, + "sizing": "auto", + "valueMode": "color" }, - "pluginVersion": "9.1.0", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -8036,7 +8060,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "topk(7, sum by (span_name,service_name)(increase(duration_milliseconds_sum{service_name=~\"${service}\", span_name=~\"$span_name\"}[5m]) / increase(duration_milliseconds_count{service_name=~\"${service}\",span_name=~\"$span_name\"}[5m\n])))", + "expr": "topk(7, sum by (span_name,service_name)(increase(duration_milliseconds_sum{service_name=~\"${service}\", span_name=~\"$span_name\"}[5m]) / increase(traces_span_metrics_duration_milliseconds_count{service_name=~\"${service}\",span_name=~\"$span_name\"}[5m\n])))", "instant": true, "interval": "", "legendFormat": "{{span_name}} [{{service_name}}]", @@ -8045,7 +8069,6 @@ data: } ], "title": "Top 7 Highest Endpoint Latencies Mean Over Range ", - "transformations": [], "type": "bargauge" }, { @@ -8059,11 +8082,13 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 15, "gradientMode": "none", @@ -8072,6 +8097,7 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "smooth", "lineWidth": 1, "pointSize": 5, @@ -8131,7 +8157,7 @@ data: "sort": "none" } }, - "pluginVersion": "8.4.7", + "pluginVersion": "11.3.0", "targets": [ { "datasource": { @@ -8140,7 +8166,7 @@ data: }, "editorMode": "code", "exemplar": true, - "expr": "topk(7,sum by (span_name,service_name)(increase(duration_milliseconds_sum{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval]) / increase(duration_milliseconds_count{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])))", + "expr": "topk(7,sum by (span_name,service_name)(increase(traces_span_metrics_duration_milliseconds_sum{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval]) / increase(traces_span_metrics_duration_milliseconds_count{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])))", "instant": false, "interval": "", "legendFormat": "[{{service_name}}] {{span_name}}", @@ -8152,16 +8178,15 @@ data: "type": "timeseries" } ], + "preload": false, "refresh": "5m", - "schemaVersion": 37, - "style": "dark", + "schemaVersion": 40, "tags": [], "templating": { "list": [ { "allValue": ".*", "current": { - "selected": false, "text": "All", "value": "$__all" }, @@ -8169,26 +8194,23 @@ data: "type": "prometheus", "uid": "webstore-metrics" }, - "definition": "query_result(count by (service_name)(count_over_time(calls_total[$__range])))", - "hide": 0, + "definition": "query_result(count by (service_name)(count_over_time(traces_span_metrics_calls_total[$__range])))", "includeAll": true, "multi": true, "name": "service", "options": [], "query": { - "query": "query_result(count by (service_name)(count_over_time(calls_total[$__range])))", + "query": "query_result(count by (service_name)(count_over_time(traces_span_metrics_calls_total[$__range])))", "refId": "StandardVariableQuery" }, "refresh": 2, "regex": "/.*service_name=\"(.*)\".*/", - "skipUrlSync": false, "sort": 1, "type": "query" }, { "allValue": ".*", "current": { - "selected": false, "text": "All", "value": "$__all" }, @@ -8196,20 +8218,17 @@ data: "type": "prometheus", "uid": "webstore-metrics" }, - "definition": "query_result(sum ({__name__=~\".*calls_total\",service_name=~\"$service\"}) by (span_name))", - "hide": 0, + "definition": "query_result(sum ({__name__=~\".*traces_span_metrics_calls_total\",service_name=~\"$service\"}) by (span_name))", "includeAll": true, "multi": true, "name": "span_name", "options": [], "query": { - "query": "query_result(sum ({__name__=~\".*calls_total\",service_name=~\"$service\"}) by (span_name))", + "query": "query_result(sum ({__name__=~\".*traces_span_metrics_calls_total\",service_name=~\"$service\"}) by (span_name))", "refId": "StandardVariableQuery" }, "refresh": 2, "regex": "/.*span_name=\"(.*)\".*/", - "skipUrlSync": false, - "sort": 0, "type": "query" } ] @@ -8233,7 +8252,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" + app.kubernetes.io/version: "11.3.0" name: opentelemetry-demo-grafana-clusterrole rules: [] --- @@ -8245,7 +8264,7 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.110.0" + app.kubernetes.io/version: "0.113.0" rules: - apiGroups: [""] @@ -8266,7 +8285,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.54.1 + app.kubernetes.io/version: v2.55.1 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server rules: @@ -8316,7 +8335,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" + app.kubernetes.io/version: "11.3.0" subjects: - kind: ServiceAccount name: opentelemetry-demo-grafana @@ -8334,7 +8353,7 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.110.0" + app.kubernetes.io/version: "0.113.0" roleRef: apiGroup: rbac.authorization.k8s.io @@ -8353,7 +8372,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.54.1 + app.kubernetes.io/version: v2.55.1 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server subjects: @@ -8374,7 +8393,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" + app.kubernetes.io/version: "11.3.0" rules: [] --- # Source: opentelemetry-demo/charts/grafana/templates/rolebinding.yaml @@ -8386,7 +8405,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" + app.kubernetes.io/version: "11.3.0" roleRef: apiGroup: rbac.authorization.k8s.io kind: Role @@ -8405,7 +8424,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" + app.kubernetes.io/version: "11.3.0" spec: type: ClusterIP ports: @@ -8523,7 +8542,7 @@ metadata: labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.17.1" + app.kubernetes.io/version: "2.18.0" app.kubernetes.io/component: otel-demo-opensearch annotations: {} @@ -8551,7 +8570,7 @@ metadata: labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.17.1" + app.kubernetes.io/version: "2.18.0" app.kubernetes.io/component: otel-demo-opensearch annotations: service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" @@ -8579,7 +8598,7 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.110.0" + app.kubernetes.io/version: "0.113.0" component: standalone-collector spec: @@ -8633,7 +8652,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.54.1 + app.kubernetes.io/version: v2.55.1 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server namespace: otel-demo @@ -9056,7 +9075,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.2.2" + app.kubernetes.io/version: "11.3.0" spec: replicas: 1 revisionHistoryLimit: 10 @@ -9072,7 +9091,7 @@ spec: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo annotations: - checksum/config: ce7407baf99174dffc3cc26bd2651a1d737f8915f4158fcbe9c4f0da726afd77 + checksum/config: 66402109ab73b3549330f38a66f20b78067ca4fdd1b77fc12fd760727d05f34c checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24 checksum/secret: bed677784356b2af7fb0d87455db21f077853059b594101a4f6532bfbd962a7f kubectl.kubernetes.io/default-container: grafana @@ -9088,7 +9107,7 @@ spec: enableServiceLinks: true containers: - name: grafana - image: "docker.io/grafana/grafana:11.2.2" + image: "docker.io/grafana/grafana:11.3.0" imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -9292,7 +9311,7 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.110.0" + app.kubernetes.io/version: "0.113.0" spec: replicas: 1 @@ -9307,7 +9326,7 @@ spec: template: metadata: annotations: - checksum/config: bce63434581f675564b6a2f599b6d5f202053c6df4e4ef4b885b9348fab39ed7 + checksum/config: 2d923ab8c3aa2c63ec32fe4a7aa4993b12f3e03b2e255f1909b97f5e43b58226 opentelemetry_community_demo: "true" prometheus.io/port: "9464" prometheus.io/scrape: "true" @@ -9327,7 +9346,7 @@ spec: - --config=/conf/relay.yaml securityContext: {} - image: "otel/opentelemetry-collector-contrib:0.110.0" + image: "otel/opentelemetry-collector-contrib:0.113.0" imagePullPolicy: IfNotPresent ports: @@ -9394,7 +9413,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.54.1 + app.kubernetes.io/version: v2.55.1 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server namespace: otel-demo @@ -9415,7 +9434,7 @@ spec: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.54.1 + app.kubernetes.io/version: v2.55.1 app.kubernetes.io/part-of: prometheus spec: enableServiceLinks: true @@ -9423,7 +9442,7 @@ spec: containers: - name: prometheus-server - image: "quay.io/prometheus/prometheus:v2.54.1" + image: "quay.io/prometheus/prometheus:v2.55.1" imagePullPolicy: "IfNotPresent" args: - --storage.tsdb.retention.time=15d @@ -9960,7 +9979,7 @@ spec: volumeMounts: - name: config-rw mountPath: /etc/flagd - - name: flagd-ui + - name: flagdui image: 'ghcr.io/open-telemetry/demo:1.12.0-flagdui' imagePullPolicy: IfNotPresent ports: @@ -10250,6 +10269,8 @@ spec: value: "4317" - name: OTEL_COLLECTOR_PORT_HTTP value: "4318" + - name: OTEL_SERVICE_NAME + value: frontend-proxy - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 resources: @@ -10868,7 +10889,7 @@ metadata: labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.17.1" + app.kubernetes.io/version: "2.18.0" app.kubernetes.io/component: otel-demo-opensearch annotations: majorVersion: "2" @@ -10888,10 +10909,10 @@ spec: labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.17.1" + app.kubernetes.io/version: "2.18.0" app.kubernetes.io/component: otel-demo-opensearch annotations: - configchecksum: 3ec1b55c2b9ebe0511a86e84615fa13ce2c71be3cc2b2b5a58feaeb9dbb2303 + configchecksum: e8c450687c20323f6f710672deb70783c1872772b09c7e40d93ae72e602bec3 spec: securityContext: fsGroup: 1000 @@ -10923,7 +10944,7 @@ spec: enableServiceLinks: true initContainers: - name: configfile - image: "opensearchproject/opensearch:2.17.1" + image: "opensearchproject/opensearch:2.18.0" imagePullPolicy: "IfNotPresent" command: - sh @@ -10948,7 +10969,7 @@ spec: runAsNonRoot: true runAsUser: 1000 - image: "opensearchproject/opensearch:2.17.1" + image: "opensearchproject/opensearch:2.18.0" imagePullPolicy: "IfNotPresent" readinessProbe: failureThreshold: 3 From 8a868400a2703f220403a8e46ccee65630fad118 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Sun, 24 Nov 2024 12:49:26 -0500 Subject: [PATCH 011/178] [chore] add multi platform build support (#1785) * multiplatform build * multiplatform build instructions * fix tests * multi-platform build support * fix failed linting * stop tests properly * fix grammar * fix multi-platform builds * align with cartservice steps * remove buildx warnings * add create-multiplatform-builder target * support Linux to create multiplaform builder * update multiplatform build instructions * add multiplatform build support * add multiplatform build support * add multiplatform build support * create and remove multi-platform builder * clarify multi-platform build instructions * clarify multi-platform build instructions * use shell directly for env var subst * Update CONTRIBUTING.md --------- Co-authored-by: Juliano Costa --- CHANGELOG.md | 2 ++ CONTRIBUTING.md | 46 +++++++++++++++++++++++++-- Makefile | 44 +++++++++++++++----------- buildkitd.toml | 5 +++ src/accountingservice/Dockerfile | 47 ++++++++++++---------------- src/adservice/Dockerfile | 2 +- src/cartservice/src/Dockerfile | 8 ++--- src/currencyservice/Dockerfile | 6 ++-- src/emailservice/Dockerfile | 6 ++-- src/frauddetectionservice/Dockerfile | 2 +- src/frontend/Dockerfile | 5 +-- src/loadgenerator/Dockerfile | 6 ++-- src/paymentservice/Dockerfile | 2 +- src/quoteservice/Dockerfile | 7 ++--- src/recommendationservice/Dockerfile | 8 ++--- src/shippingservice/Dockerfile | 19 ++++++++--- 16 files changed, 137 insertions(+), 78 deletions(-) create mode 100644 buildkitd.toml diff --git a/CHANGELOG.md b/CHANGELOG.md index 9566411768..f40fed854b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ the release. to 1.9.0 ([#1780](https://github.com/open-telemetry/opentelemetry-demo/pull/1780)) * [chore] update memory limits for flagd, flagdui, and loadgenerator ([#1786](https://github.com/open-telemetry/opentelemetry-demo/pull/1786)) +* [chore] Add multi-platform build support + ([#1785](https://github.com/open-telemetry/opentelemetry-demo/pull/1785)) ## 1.12.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 68ea5c2d2a..96b8433949 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -80,11 +80,10 @@ cd .\src\adservice\ ### Run Docker Compose -- Start the demo (It can take ~20min the first time the command is executed as -all the images will be build): +- Start the demo: ```shell -docker compose up -d +make start ``` ### Verify the Webstore & the Telemetry @@ -197,6 +196,47 @@ on each other), the owner should try to get people aligned by: the owner should bring it to the OpenTelemetry Community Demo SIG [meeting](README.md#contributing). +## Multi-platform Builds + +Creating multi-platform builds requires docker buildx to be installed. This +is part of Docker Desktop for macOS, or can be installed using +`apt install docker-buildx` on Ubuntu. + +To build and load the multi-platform images locally you will need to configure +docker to use `containerd`. This can be done in Docker Desktop settings on MacOS +or Windows. Please follow +[these instructions](https://docs.docker.com/engine/storage/containerd/#enable-containerd-image-store-on-docker-engine) +to configure Docker Engine on Linux/Ubuntu. + +You will need a multi-platform capable builder with a limiter set on parallelism +to avoid errors while building the images. It is recommended to limit the +parallelism to 4. This can be done by specifying a configuration file when +creating the builder. The `buildkitd.toml` file in this repository can be used +as the builder configuration file. + +To create a multi-platform builder with a parallelism limit of 4, use the +following command: + +```shell +make create-multiplatform-builder +``` + +A builder will be created and set as the active builder. You can check the +builder status with `docker buildx inspect`. To build multi-platform images for +linux/amd64 and linux/arm64, use the following command: + +```shell +make build-multiplatform +``` + +To build and push multi-platform images to a registry, ensure to set +`IMAGE_NAME` to the name of the registry and image repository to use in the +`.env.override` file and run: + +```shell +make build-multiplatform-and-push +``` + ## Making a new release Maintainers can create a new release when desired by following these steps. diff --git a/Makefile b/Makefile index 09ca5f350d..fc768d2680 100644 --- a/Makefile +++ b/Makefile @@ -79,24 +79,32 @@ install-tools: $(MISSPELL) build: $(DOCKER_COMPOSE_CMD) build -.PHONY: build-and-push-dockerhub -build-and-push-dockerhub: - $(DOCKER_COMPOSE_CMD) --env-file .dockerhub.env -f docker-compose.yml build - $(DOCKER_COMPOSE_CMD) --env-file .dockerhub.env -f docker-compose.yml push - -.PHONY: build-and-push-ghcr -build-and-push-ghcr: - $(DOCKER_COMPOSE_CMD) --env-file .ghcr.env -f docker-compose.yml build - $(DOCKER_COMPOSE_CMD) --env-file .ghcr.env -f docker-compose.yml push - -.PHONY: build-env-file -build-env-file: - cp .env .dockerhub.env - sed -i '/IMAGE_VERSION=.*/c\IMAGE_VERSION=${RELEASE_VERSION}' .dockerhub.env - sed -i '/IMAGE_NAME=.*/c\IMAGE_NAME=${DOCKERHUB_REPO}' .dockerhub.env - cp .env .ghcr.env - sed -i '/IMAGE_VERSION=.*/c\IMAGE_VERSION=${RELEASE_VERSION}' .ghcr.env - sed -i '/IMAGE_NAME=.*/c\IMAGE_NAME=${GHCR_REPO}' .ghcr.env +.PHONY: build-and-push +build-and-push: + $(DOCKER_COMPOSE_CMD) $(DOCKER_COMPOSE_ENV) build --push + +# Create multiplatform builder for buildx +.PHONY: create-multiplatform-builder +create-multiplatform-builder: + docker buildx create --name otel-demo-builder --bootstrap --use --driver docker-container --config ./buildkitd.toml + +# Remove multiplatform builder for buildx +.PHONY: remove-multiplatform-builder +remove-multiplatform-builder: + docker buildx rm otel-demo-builder + +# Build and push multiplatform images (linux/amd64, linux/arm64) using buildx. +# Requires docker with buildx enabled and a multi-platform capable builder in use. +# Docker needs to be configured to use containerd storage for images to be loaded into the local registry. +.PHONY: build-multiplatform +build-multiplatform: + # Because buildx bake does not support --env-file yet, we need to load it into the environment first. + set -a; . ./.env.override; set +a && docker buildx bake -f docker-compose.yml --load --set "*.platform=linux/amd64,linux/arm64" + +.PHONY: build-multiplatform-and-push +build-multiplatform-and-push: + # Because buildx bake does not support --env-file yet, we need to load it into the environment first. + set -a; . ./.env.override; set +a && docker buildx bake -f docker-compose.yml --push --set "*.platform=linux/amd64,linux/arm64" .PHONY: run-tests run-tests: diff --git a/buildkitd.toml b/buildkitd.toml new file mode 100644 index 0000000000..ef2690a4d1 --- /dev/null +++ b/buildkitd.toml @@ -0,0 +1,5 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +[worker.oci] +max-parallelism = 4 diff --git a/src/accountingservice/Dockerfile b/src/accountingservice/Dockerfile index f9166879ca..a6b0e9bfb9 100644 --- a/src/accountingservice/Dockerfile +++ b/src/accountingservice/Dockerfile @@ -1,32 +1,25 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base -USER app -WORKDIR /app - -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -ARG BUILD_CONFIGURATION=Release -WORKDIR /src -COPY ["/src/accountingservice/", "AccountingService/"] -COPY ["/pb/demo.proto", "AccountingService/proto/"] -RUN dotnet restore "./AccountingService/AccountingService.csproj" -WORKDIR "/src/AccountingService" - -RUN dotnet build "./AccountingService.csproj" -c $BUILD_CONFIGURATION -o /app/build - -FROM build AS publish -ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./AccountingService.csproj" --use-current-runtime -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . - -USER root -RUN mkdir -p "/var/log/opentelemetry/dotnet" -RUN chown app "/var/log/opentelemetry/dotnet" -RUN chown app "/app/instrument.sh" -USER app +FROM --platform=${BUILDPLATFORM} mcr.microsoft.com/dotnet/sdk:8.0 AS builder +ARG TARGETARCH + +WORKDIR /usr/src/app/ + +COPY ./src/accountingservice/ ./ +COPY ./pb/ ./proto/ + +RUN dotnet restore "./AccountingService.csproj" -r linux-musl-$TARGETARCH + +RUN dotnet publish "./AccountingService.csproj" -r linux-musl-$TARGETARCH --no-restore -o /accountingservice + +# ----------------------------------------------------------------------------- + +FROM mcr.microsoft.com/dotnet/aspnet:8.0 + +WORKDIR /usr/src/app/ +COPY --from=builder /accountingservice/ ./ + +ENV DOTNET_HOSTBUILDER__RELOADCONFIGONCHANGE=false ENTRYPOINT ["./instrument.sh", "dotnet", "AccountingService.dll"] diff --git a/src/adservice/Dockerfile b/src/adservice/Dockerfile index 369af01a05..36c6b207fb 100644 --- a/src/adservice/Dockerfile +++ b/src/adservice/Dockerfile @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 -FROM eclipse-temurin:21-jdk as builder +FROM --platform=${BUILDPLATFORM} eclipse-temurin:21-jdk AS builder WORKDIR /usr/src/app/ diff --git a/src/cartservice/src/Dockerfile b/src/cartservice/src/Dockerfile index 812213bd5b..bf9ebcac19 100644 --- a/src/cartservice/src/Dockerfile +++ b/src/cartservice/src/Dockerfile @@ -15,7 +15,7 @@ # limitations under the License. # https://mcr.microsoft.com/v2/dotnet/sdk/tags/list -FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0.403 AS builder +FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0 AS builder ARG TARGETARCH WORKDIR /usr/src/app/ @@ -23,14 +23,14 @@ WORKDIR /usr/src/app/ COPY ./src/cartservice/ ./ COPY ./pb/ ./pb/ -RUN dotnet restore ./src/cartservice.csproj -v d -r linux-musl-$TARGETARCH +RUN dotnet restore ./src/cartservice.csproj -r linux-musl-$TARGETARCH -RUN dotnet publish ./src/cartservice.csproj -v d -r linux-musl-$TARGETARCH --no-restore -o /cartservice +RUN dotnet publish ./src/cartservice.csproj -r linux-musl-$TARGETARCH --no-restore -o /cartservice # ----------------------------------------------------------------------------- # https://mcr.microsoft.com/v2/dotnet/runtime-deps/tags/list -FROM mcr.microsoft.com/dotnet/runtime-deps:8.0.10-alpine3.20 +FROM mcr.microsoft.com/dotnet/runtime-deps:8.0-alpine3.20 WORKDIR /usr/src/app/ COPY --from=builder /cartservice/ ./ diff --git a/src/currencyservice/Dockerfile b/src/currencyservice/Dockerfile index 3c26de728a..e84057f3d1 100644 --- a/src/currencyservice/Dockerfile +++ b/src/currencyservice/Dockerfile @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM alpine:3.18 as builder +FROM alpine:3.18 AS builder RUN apk update && apk add git cmake make g++ grpc-dev protobuf-dev linux-headers @@ -39,10 +39,10 @@ RUN cd /currencyservice \ && make -j$(nproc || sysctl -n hw.ncpu || echo 1) install -FROM alpine:3.18 as release +FROM alpine:3.18 AS release RUN apk update && apk add grpc-dev protobuf-dev COPY --from=builder /usr/local /usr/local EXPOSE ${CURRENCY_SERVICE_PORT} -ENTRYPOINT ./usr/local/bin/currencyservice ${CURRENCY_SERVICE_PORT} +ENTRYPOINT ["sh", "-c", "./usr/local/bin/currencyservice ${CURRENCY_SERVICE_PORT}"] diff --git a/src/emailservice/Dockerfile b/src/emailservice/Dockerfile index b3bb161afe..d6090905e5 100644 --- a/src/emailservice/Dockerfile +++ b/src/emailservice/Dockerfile @@ -2,9 +2,9 @@ # SPDX-License-Identifier: Apache-2.0 -FROM ruby:3.2.2-slim as base +FROM ruby:3.2.2-slim AS base -FROM base as builder +FROM base AS builder WORKDIR /tmp @@ -12,7 +12,7 @@ COPY ./src/emailservice/Gemfile ./src/emailservice/Gemfile.lock ./ #RUN apk update && apk add make gcc musl-dev gcompat && bundle install RUN apt-get update && apt-get install build-essential -y && bundle install -FROM base as release +FROM base AS release WORKDIR /email_server diff --git a/src/frauddetectionservice/Dockerfile b/src/frauddetectionservice/Dockerfile index f3f62401da..1d2a9b58da 100644 --- a/src/frauddetectionservice/Dockerfile +++ b/src/frauddetectionservice/Dockerfile @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 -FROM gradle:8-jdk17 AS builder +FROM --platform=${BUILDPLATFORM} gradle:8-jdk17 AS builder WORKDIR /usr/src/app/ diff --git a/src/frontend/Dockerfile b/src/frontend/Dockerfile index a1f441bb4c..ae27d932b9 100644 --- a/src/frontend/Dockerfile +++ b/src/frontend/Dockerfile @@ -40,7 +40,8 @@ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static USER nextjs -ENV PORT 8080 +ENV PORT=8080 EXPOSE ${PORT} -ENTRYPOINT npm start +ENTRYPOINT ["npm", "start"] + diff --git a/src/loadgenerator/Dockerfile b/src/loadgenerator/Dockerfile index 5c8427f597..92d09977b8 100644 --- a/src/loadgenerator/Dockerfile +++ b/src/loadgenerator/Dockerfile @@ -2,9 +2,9 @@ # SPDX-License-Identifier: Apache-2.0 -FROM python:3.12-slim-bookworm as base +FROM python:3.12-slim-bookworm AS base -FROM base as builder +FROM base AS builder RUN apt-get -qq update \ && apt-get install -y --no-install-recommends g++ \ && rm -rf /var/lib/apt/lists/* @@ -20,4 +20,4 @@ COPY ./src/loadgenerator/people.json . ENV LOCUST_PLAYWRIGHT=1 ENV PLAYWRIGHT_BROWSERS_PATH=/opt/pw-browsers RUN playwright install --with-deps chromium -ENTRYPOINT locust --skip-log-setup +ENTRYPOINT ["locust", "--skip-log-setup"] diff --git a/src/paymentservice/Dockerfile b/src/paymentservice/Dockerfile index c82e0e70a5..c67672b651 100644 --- a/src/paymentservice/Dockerfile +++ b/src/paymentservice/Dockerfile @@ -16,7 +16,7 @@ FROM node:21-alpine USER node WORKDIR /usr/src/app/ -ENV NODE_ENV production +ENV NODE_ENV=production COPY --chown=node:node --from=build /usr/src/app/node_modules/ ./node_modules/ COPY ./src/paymentservice/ ./ diff --git a/src/quoteservice/Dockerfile b/src/quoteservice/Dockerfile index f1ab3956be..f26f192b84 100644 --- a/src/quoteservice/Dockerfile +++ b/src/quoteservice/Dockerfile @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 -FROM php:8.3-cli as base +FROM php:8.3-cli AS base ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ RUN chmod +x /usr/local/bin/install-php-extensions \ @@ -13,7 +13,7 @@ RUN chmod +x /usr/local/bin/install-php-extensions \ opentelemetry WORKDIR /var/www -CMD php public/index.php +CMD ["php", "public/index.php"] USER www-data EXPOSE ${QUOTE_SERVICE_PORT} @@ -30,7 +30,6 @@ RUN composer install \ --no-dev \ --prefer-dist -FROM base as final +FROM base AS final COPY --from=vendor /tmp/vendor/ ./vendor/ COPY ./src/quoteservice/ /var/www - diff --git a/src/recommendationservice/Dockerfile b/src/recommendationservice/Dockerfile index 4a3d2e72b7..8e02f42662 100644 --- a/src/recommendationservice/Dockerfile +++ b/src/recommendationservice/Dockerfile @@ -2,12 +2,12 @@ # SPDX-License-Identifier: Apache-2.0 -FROM python:3.12-slim-bookworm as base +FROM python:3.12-slim-bookworm AS base # # Fetch requirements # -FROM base as builder +FROM base AS builder RUN apt-get -qq update \ && apt-get install -y --no-install-recommends g++ \ && rm -rf /var/lib/apt/lists/* @@ -21,7 +21,7 @@ RUN pip install --prefix="/reqs" -r requirements.txt # # Build gRPC files # -FROM base as grpc-builder +FROM base AS grpc-builder WORKDIR /usr/src/app/ COPY ./pb/ ./proto/ @@ -31,7 +31,7 @@ RUN python -m grpc_tools.protoc -I=./proto/ --python_out=./ --grpc_python_out=./ # # Runtime # -FROM base as runtime +FROM base AS runtime WORKDIR /usr/src/app/ COPY --from=builder /reqs /usr/local COPY --from=grpc-builder /usr/src/app/ . diff --git a/src/shippingservice/Dockerfile b/src/shippingservice/Dockerfile index 60e338cbc8..8ff400ff3e 100644 --- a/src/shippingservice/Dockerfile +++ b/src/shippingservice/Dockerfile @@ -2,9 +2,10 @@ # SPDX-License-Identifier: Apache-2.0 -FROM --platform=${BUILDPLATFORM} rust:1.76 as builder - -ARG TARGETARCH TARGETPLATFORM BUILDPLATFORM +FROM --platform=${BUILDPLATFORM} rust:1.76 AS builder +ARG TARGETARCH +ARG TARGETPLATFORM +ARG BUILDPLATFORM RUN echo Building on ${BUILDPLATFORM} for ${TARGETPLATFORM} @@ -15,6 +16,10 @@ RUN if [ "${TARGETPLATFORM}" = "${BUILDPLATFORM}" ] ; then \ apt-get update && apt-get install --no-install-recommends -y g++-aarch64-linux-gnu libc6-dev-arm64-cross libprotobuf-dev protobuf-compiler ca-certificates && \ rustup target add aarch64-unknown-linux-gnu && \ rustup toolchain install stable-aarch64-unknown-linux-gnu; \ + elif [ "${TARGETPLATFORM}" = "linux/amd64" ] ; then \ + apt-get update && apt-get install --no-install-recommends -y g++-x86-64-linux-gnu libc6-amd64-cross libprotobuf-dev protobuf-compiler ca-certificates && \ + rustup target add x86_64-unknown-linux-gnu && \ + rustup toolchain install stable-x86_64-unknown-linux-gnu; \ else \ echo "${TARGETPLATFORM} is not supported"; \ exit 1; \ @@ -34,6 +39,12 @@ RUN if [ "${TARGETPLATFORM}" = "${BUILDPLATFORM}" ] ; then \ CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++ \ cargo build -r --features="dockerproto" --target aarch64-unknown-linux-gnu && \ cp /app/target/aarch64-unknown-linux-gnu/release/shippingservice /app/target/release/shippingservice; \ + elif [ "${TARGETPLATFORM}" = "linux/amd64" ] ; then \ + env CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=x86_64-linux-gnu-gcc \ + CC_x86_64_unknown_linux_gnu=x86_64-linux-gnu-gcc \ + CXX_x86_64_unknown_linux_gnu=x86_64-linux-gnu-g++ \ + cargo build -r --features="dockerproto" --target x86_64-unknown-linux-gnu && \ + cp /app/target/x86_64-unknown-linux-gnu/release/shippingservice /app/target/release/shippingservice; \ else \ echo "${TARGETPLATFORM} is not supported"; \ exit 1; \ @@ -44,7 +55,7 @@ ENV GRPC_HEALTH_PROBE_VERSION=v0.4.24 RUN wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-${TARGETARCH} && \ chmod +x /bin/grpc_health_probe -FROM debian:bookworm-slim as release +FROM debian:bookworm-slim AS release WORKDIR /app COPY --from=builder /app/target/release/shippingservice /app/shippingservice From 42096411db3ba1c96e9091816009920206849cb5 Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Tue, 26 Nov 2024 08:10:27 +0100 Subject: [PATCH 012/178] accountingservice-fix-instrumentation (#1791) --- src/accountingservice/Dockerfile | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/accountingservice/Dockerfile b/src/accountingservice/Dockerfile index a6b0e9bfb9..8524db57cd 100644 --- a/src/accountingservice/Dockerfile +++ b/src/accountingservice/Dockerfile @@ -3,23 +3,32 @@ FROM --platform=${BUILDPLATFORM} mcr.microsoft.com/dotnet/sdk:8.0 AS builder ARG TARGETARCH +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["/src/accountingservice/", "AccountingService/"] +COPY ["/pb/demo.proto", "AccountingService/proto/"] +RUN dotnet restore "./AccountingService/AccountingService.csproj" -r linux-musl-$TARGETARCH +WORKDIR "/src/AccountingService" -WORKDIR /usr/src/app/ +RUN dotnet build "./AccountingService.csproj" -r linux-musl-$TARGETARCH -c $BUILD_CONFIGURATION -o /app/build -COPY ./src/accountingservice/ ./ -COPY ./pb/ ./proto/ - -RUN dotnet restore "./AccountingService.csproj" -r linux-musl-$TARGETARCH +# ----------------------------------------------------------------------------- -RUN dotnet publish "./AccountingService.csproj" -r linux-musl-$TARGETARCH --no-restore -o /accountingservice +FROM builder AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./AccountingService.csproj" --use-current-runtime -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false # ----------------------------------------------------------------------------- FROM mcr.microsoft.com/dotnet/aspnet:8.0 - -WORKDIR /usr/src/app/ -COPY --from=builder /accountingservice/ ./ - -ENV DOTNET_HOSTBUILDER__RELOADCONFIGONCHANGE=false +USER app +WORKDIR /app +COPY --from=publish /app/publish . + +USER root +RUN mkdir -p "/var/log/opentelemetry/dotnet" +RUN chown app "/var/log/opentelemetry/dotnet" +RUN chown app "/app/instrument.sh" +USER app ENTRYPOINT ["./instrument.sh", "dotnet", "AccountingService.dll"] From bb71866a9f702b840ab3d46ecb1161e9b6b0e1fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 14:09:49 +0100 Subject: [PATCH 013/178] build(deps): bump docker/build-push-action from 6.9.0 to 6.10.0 (#1796) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.10.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v6.9.0...v6.10.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/component-build-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 715f3feafb..226a7a5fd2 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -177,7 +177,7 @@ jobs: max-parallelism = 2 - name: Matrix Build and push demo images if: steps.check_changes.outputs.skip == 'false' - uses: docker/build-push-action@v6.9.0 + uses: docker/build-push-action@v6.10.0 with: context: ${{ matrix.file_tag.context }} file: ${{ matrix.file_tag.file }} From 93b8f1a3b0c3129f7132d4599b2f8153186cd854 Mon Sep 17 00:00:00 2001 From: Charlie Le <3375195+CharlieTLe@users.noreply.github.com> Date: Wed, 27 Nov 2024 09:11:01 -0800 Subject: [PATCH 014/178] Generate protobuf code for Go and Python services (#1794) Part of https://github.com/open-telemetry/opentelemetry-demo/issues/1787 to generate profobuf files for all services. This should help unblock https://github.com/open-telemetry/opentelemetry-demo/pull/1754 to allow dependabot to manage dependecy upgrades for the Go services. There are new Makefile recipes for managing the protobuf files. 1. docker-generate-protobuf - to generate the protobuf files with docker so that the only dependency on the machine needed is docker. 2. clean - to remove the protobuf files generated 3. check-clean-work-tree - to check that the working tree is clean and to help with verifying that the protobuf files are updated for all of the services when there are changes to the protobuf definition. There's a new check in the GitHub Actions workflow to verify that the protobuf code is generated. It is only verifying that the protobuf code is generated for Go and Python, but other services can apply the same workflow by updating the docker-gen-proto.sh script to uncomment the function call for the service. The dockerfiles for the Go and Python services have been updated to not generate the protobuf files during the build process. Instead, this function has been refactored into the genproto directory of each service. Signed-off-by: Charlie Le --- .github/workflows/component-build-images.yml | 12 + .gitignore | 3 - .licenserc.json | 2 + CHANGELOG.md | 2 + Makefile | 19 + docker-gen-proto.sh | 35 + internal/tools/sanitycheck.py | 2 +- src/checkoutservice/Dockerfile | 11 +- src/checkoutservice/README.md | 7 +- src/checkoutservice/genproto/Dockerfile | 16 + .../genproto/oteldemo/demo.pb.go | 3343 +++++++++++++++++ .../genproto/oteldemo/demo_grpc.pb.go | 1323 +++++++ src/productcatalogservice/Dockerfile | 11 +- src/productcatalogservice/README.md | 7 +- src/productcatalogservice/genproto/Dockerfile | 16 + .../genproto/oteldemo/demo.pb.go | 3343 +++++++++++++++++ .../genproto/oteldemo/demo_grpc.pb.go | 1323 +++++++ src/recommendationservice/Dockerfile | 11 - src/recommendationservice/README.md | 6 +- src/recommendationservice/demo_pb2.py | 130 + src/recommendationservice/demo_pb2_grpc.py | 1005 +++++ src/recommendationservice/genproto/Dockerfile | 8 + 22 files changed, 10588 insertions(+), 47 deletions(-) create mode 100755 docker-gen-proto.sh create mode 100644 src/checkoutservice/genproto/Dockerfile create mode 100644 src/checkoutservice/genproto/oteldemo/demo.pb.go create mode 100644 src/checkoutservice/genproto/oteldemo/demo_grpc.pb.go create mode 100644 src/productcatalogservice/genproto/Dockerfile create mode 100644 src/productcatalogservice/genproto/oteldemo/demo.pb.go create mode 100644 src/productcatalogservice/genproto/oteldemo/demo_grpc.pb.go create mode 100644 src/recommendationservice/demo_pb2.py create mode 100644 src/recommendationservice/demo_pb2_grpc.py create mode 100644 src/recommendationservice/genproto/Dockerfile diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 226a7a5fd2..f6165a7627 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -26,8 +26,20 @@ on: type: string jobs: + protobufcheck: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Generate + run: make clean docker-generate-protobuf + - name: Check Clean Work Tree + run: make check-clean-work-tree + build_and_push_images: runs-on: ubuntu-latest + needs: protobufcheck + permissions: contents: read packages: write diff --git a/.gitignore b/.gitignore index 8327d1d2cc..b10c7c4af8 100644 --- a/.gitignore +++ b/.gitignore @@ -52,9 +52,6 @@ test/tracetesting/tracetesting-vars.yaml /src/frontend/pb/ /src/frontend/protos/ /src/paymentservice/demo.proto -/src/recommendationservice/demo_pb2*.py /src/shippingservice/proto/ -/src/productcatalogservice/genproto /src/currencyservice/proto -/src/checkoutservice/genproto /src/accountingservice/genproto diff --git a/.licenserc.json b/.licenserc.json index 6a46440441..bc2411bd88 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -45,6 +45,8 @@ "src/featureflagservice/assets/vendor/", "src/featureflagservice/priv/", "src/productcatalogservice/genproto/", + "src/recommendationservice/demo_pb2.py", + "src/recommendationservice/demo_pb2_grpc.py", "internal/tools/" ] } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index f40fed854b..42ae1ee1e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ the release. ([#1786](https://github.com/open-telemetry/opentelemetry-demo/pull/1786)) * [chore] Add multi-platform build support ([#1785](https://github.com/open-telemetry/opentelemetry-demo/pull/1785)) +* [chore] Generate protobuf code for Go and Python services + ([#1794](https://github.com/open-telemetry/opentelemetry-demo/pull/1784)) ## 1.12.0 diff --git a/Makefile b/Makefile index fc768d2680..11f9e9258c 100644 --- a/Makefile +++ b/Makefile @@ -133,6 +133,25 @@ generate-kubernetes-manifests: echo " name: otel-demo" >> kubernetes/opentelemetry-demo.yaml helm template opentelemetry-demo open-telemetry/opentelemetry-demo --namespace otel-demo | sed '/helm.sh\/chart\:/d' | sed '/helm.sh\/hook/d' | sed '/managed-by\: Helm/d' >> kubernetes/opentelemetry-demo.yaml +.PHONY: docker-generate-protobuf +docker-generate-protobuf: + ./docker-gen-proto.sh + +.PHONY: clean +clean: + rm -rf ./src/{checkoutservice,productcatalogservice}/genproto/oteldemo/ + rm -rf ./src/recommendationservice/{demo_pb2,demo_pb2_grpc}.py + +.PHONY: check-clean-work-tree +check-clean-work-tree: + @if ! git diff --quiet; then \ + echo; \ + echo 'Working tree is not clean, did you forget to run "make docker-generate-protobuf"?'; \ + echo; \ + git status; \ + exit 1; \ + fi + .PHONY: start start: $(DOCKER_COMPOSE_CMD) $(DOCKER_COMPOSE_ENV) up --force-recreate --remove-orphans --detach diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh new file mode 100755 index 0000000000..2fb7d2a347 --- /dev/null +++ b/docker-gen-proto.sh @@ -0,0 +1,35 @@ +#!/bin/sh +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +set -e # Exit immediately if a command exits with a non-zero status. +set -x # Print commands and their arguments as they are executed + +# This script is used to generate protobuf files for all services with Docker. + +gen_proto_go() { + echo "Generating Go protobuf files for $1" + docker build -f "src/$1/genproto/Dockerfile" -t "$1-genproto" . + docker run --rm -v $(pwd):/build "$1-genproto" \ + protoc -I /build/pb /build/pb/demo.proto --go_out="./src/$1/" --go-grpc_out="./src/$1/" +} + +gen_proto_python() { + echo "Generating Python protobuf files for $1" + docker build -f "src/$1/genproto/Dockerfile" -t "$1-genproto" . + docker run --rm -v $(pwd):/build "$1-genproto" \ + python -m grpc_tools.protoc -I /build/pb/ --python_out="./src/$1/" --grpc_python_out="./src/$1/" /build/pb/demo.proto +} + +#gen_proto_dotnet accountingservice +#gen_proto_java adservice +#gen_proto_dotnet cartservice +gen_proto_go checkoutservice +#gen_proto_cpp currencyservice +#gen_proto_ruby emailservice +#gen_proto_ts frontend +#gen_proto_js paymentservice +gen_proto_go productcatalogservice +#gen_proto_php quoteservice +gen_proto_python recommendationservice +#gen_proto_rust shippingservice diff --git a/internal/tools/sanitycheck.py b/internal/tools/sanitycheck.py index 720516abd3..f02da3d6d3 100644 --- a/internal/tools/sanitycheck.py +++ b/internal/tools/sanitycheck.py @@ -84,7 +84,7 @@ def sanitycheck(pattern, allow_utf8 = False, allow_eol = (CRLF, LF), indent = 1) retval += sanitycheck('**/*.md', allow_eol = (LF,)) retval += sanitycheck('**/*.proj', allow_eol = (LF,), indent = 2) retval += sanitycheck('**/*.props', allow_eol = (LF,), indent = 2) -retval += sanitycheck('**/*.py', allow_eol = (LF,), indent = 4) +retval += sanitycheck('**/[!demo_pb2]*.py', allow_eol = (LF,), indent = 4) retval += sanitycheck('**/*.sln', allow_utf8 = True, indent = 4) retval += sanitycheck('**/*.targets', allow_eol = (LF,), indent = 2) retval += sanitycheck('**/*.xml', allow_eol = (LF,), indent = 2) diff --git a/src/checkoutservice/Dockerfile b/src/checkoutservice/Dockerfile index be8d777952..ca37f623b4 100644 --- a/src/checkoutservice/Dockerfile +++ b/src/checkoutservice/Dockerfile @@ -6,22 +6,15 @@ FROM golang:1.22-alpine AS builder WORKDIR /usr/src/app/ -RUN apk update \ - && apk add --no-cache make protobuf-dev - RUN --mount=type=cache,target=/go/pkg/mod/ \ --mount=type=bind,source=./src/checkoutservice/go.sum,target=go.sum \ --mount=type=bind,source=./src/checkoutservice/go.mod,target=go.mod \ - --mount=type=bind,source=./src/checkoutservice/tools.go,target=tools.go \ - go mod download \ - && go list -e -f '{{range .Imports}}{{.}} {{end}}' tools.go | CGO_ENABLED=0 xargs go install -mod=readonly + go mod download RUN --mount=type=cache,target=/go/pkg/mod/ \ --mount=type=cache,target=/root/.cache/go-build \ --mount=type=bind,rw,source=./src/checkoutservice,target=. \ - --mount=type=bind,rw,source=./pb,target=./pb \ - protoc -I ./pb ./pb/demo.proto --go_out=./ --go-grpc_out=./ \ - && go build -ldflags "-s -w" -o /go/bin/checkoutservice/ ./ + go build -ldflags "-s -w" -o /go/bin/checkoutservice/ ./ FROM alpine diff --git a/src/checkoutservice/README.md b/src/checkoutservice/README.md index 8e8f08ab8a..30c76323d0 100644 --- a/src/checkoutservice/README.md +++ b/src/checkoutservice/README.md @@ -20,13 +20,10 @@ docker compose build checkoutservice ## Regenerate protos -> [!NOTE] -> [`protoc`](https://grpc.io/docs/protoc-installation/) is required. - -To regenerate gRPC code run: +To build the protos, run from the root directory: ```sh -go generate +make docker-generate-protobuf ``` ## Bump dependencies diff --git a/src/checkoutservice/genproto/Dockerfile b/src/checkoutservice/genproto/Dockerfile new file mode 100644 index 0000000000..edc92ccee3 --- /dev/null +++ b/src/checkoutservice/genproto/Dockerfile @@ -0,0 +1,16 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +FROM golang:1.22-alpine + +WORKDIR /build + +RUN apk add --no-cache protobuf-dev + +COPY ./src/checkoutservice/go.mod ./ +COPY ./src/checkoutservice/go.sum ./ +COPY ./src/checkoutservice/tools.go ./ + +RUN go env -w GOMODCACHE=/root/.cache/go-build +RUN --mount=type=cache,target=/root/.cache/go-build \ + go list -e -f '{{range .Imports}}{{.}} {{end}}' tools.go | CGO_ENABLED=0 xargs go install -mod=readonly diff --git a/src/checkoutservice/genproto/oteldemo/demo.pb.go b/src/checkoutservice/genproto/oteldemo/demo.pb.go new file mode 100644 index 0000000000..4bb4ddb33c --- /dev/null +++ b/src/checkoutservice/genproto/oteldemo/demo.pb.go @@ -0,0 +1,3343 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.1 +// protoc v4.24.4 +// source: demo.proto + +package oteldemo + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CartItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProductId string `protobuf:"bytes,1,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` + Quantity int32 `protobuf:"varint,2,opt,name=quantity,proto3" json:"quantity,omitempty"` +} + +func (x *CartItem) Reset() { + *x = CartItem{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CartItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CartItem) ProtoMessage() {} + +func (x *CartItem) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CartItem.ProtoReflect.Descriptor instead. +func (*CartItem) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{0} +} + +func (x *CartItem) GetProductId() string { + if x != nil { + return x.ProductId + } + return "" +} + +func (x *CartItem) GetQuantity() int32 { + if x != nil { + return x.Quantity + } + return 0 +} + +type AddItemRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Item *CartItem `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` +} + +func (x *AddItemRequest) Reset() { + *x = AddItemRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddItemRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddItemRequest) ProtoMessage() {} + +func (x *AddItemRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddItemRequest.ProtoReflect.Descriptor instead. +func (*AddItemRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{1} +} + +func (x *AddItemRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *AddItemRequest) GetItem() *CartItem { + if x != nil { + return x.Item + } + return nil +} + +type EmptyCartRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` +} + +func (x *EmptyCartRequest) Reset() { + *x = EmptyCartRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EmptyCartRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EmptyCartRequest) ProtoMessage() {} + +func (x *EmptyCartRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EmptyCartRequest.ProtoReflect.Descriptor instead. +func (*EmptyCartRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{2} +} + +func (x *EmptyCartRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +type GetCartRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` +} + +func (x *GetCartRequest) Reset() { + *x = GetCartRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCartRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCartRequest) ProtoMessage() {} + +func (x *GetCartRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCartRequest.ProtoReflect.Descriptor instead. +func (*GetCartRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{3} +} + +func (x *GetCartRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +type Cart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *Cart) Reset() { + *x = Cart{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Cart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Cart) ProtoMessage() {} + +func (x *Cart) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Cart.ProtoReflect.Descriptor instead. +func (*Cart) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{4} +} + +func (x *Cart) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *Cart) GetItems() []*CartItem { + if x != nil { + return x.Items + } + return nil +} + +type Empty struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Empty) Reset() { + *x = Empty{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Empty) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Empty) ProtoMessage() {} + +func (x *Empty) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Empty.ProtoReflect.Descriptor instead. +func (*Empty) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{5} +} + +type ListRecommendationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + ProductIds []string `protobuf:"bytes,2,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` +} + +func (x *ListRecommendationsRequest) Reset() { + *x = ListRecommendationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRecommendationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRecommendationsRequest) ProtoMessage() {} + +func (x *ListRecommendationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRecommendationsRequest.ProtoReflect.Descriptor instead. +func (*ListRecommendationsRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{6} +} + +func (x *ListRecommendationsRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *ListRecommendationsRequest) GetProductIds() []string { + if x != nil { + return x.ProductIds + } + return nil +} + +type ListRecommendationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProductIds []string `protobuf:"bytes,1,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` +} + +func (x *ListRecommendationsResponse) Reset() { + *x = ListRecommendationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRecommendationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRecommendationsResponse) ProtoMessage() {} + +func (x *ListRecommendationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRecommendationsResponse.ProtoReflect.Descriptor instead. +func (*ListRecommendationsResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{7} +} + +func (x *ListRecommendationsResponse) GetProductIds() []string { + if x != nil { + return x.ProductIds + } + return nil +} + +type Product struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Picture string `protobuf:"bytes,4,opt,name=picture,proto3" json:"picture,omitempty"` + PriceUsd *Money `protobuf:"bytes,5,opt,name=price_usd,json=priceUsd,proto3" json:"price_usd,omitempty"` + // Categories such as "clothing" or "kitchen" that can be used to look up + // other related products. + Categories []string `protobuf:"bytes,6,rep,name=categories,proto3" json:"categories,omitempty"` +} + +func (x *Product) Reset() { + *x = Product{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Product) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Product) ProtoMessage() {} + +func (x *Product) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Product.ProtoReflect.Descriptor instead. +func (*Product) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{8} +} + +func (x *Product) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Product) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Product) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Product) GetPicture() string { + if x != nil { + return x.Picture + } + return "" +} + +func (x *Product) GetPriceUsd() *Money { + if x != nil { + return x.PriceUsd + } + return nil +} + +func (x *Product) GetCategories() []string { + if x != nil { + return x.Categories + } + return nil +} + +type ListProductsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"` +} + +func (x *ListProductsResponse) Reset() { + *x = ListProductsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListProductsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListProductsResponse) ProtoMessage() {} + +func (x *ListProductsResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListProductsResponse.ProtoReflect.Descriptor instead. +func (*ListProductsResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{9} +} + +func (x *ListProductsResponse) GetProducts() []*Product { + if x != nil { + return x.Products + } + return nil +} + +type GetProductRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *GetProductRequest) Reset() { + *x = GetProductRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetProductRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetProductRequest) ProtoMessage() {} + +func (x *GetProductRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetProductRequest.ProtoReflect.Descriptor instead. +func (*GetProductRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{10} +} + +func (x *GetProductRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type SearchProductsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` +} + +func (x *SearchProductsRequest) Reset() { + *x = SearchProductsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchProductsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchProductsRequest) ProtoMessage() {} + +func (x *SearchProductsRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchProductsRequest.ProtoReflect.Descriptor instead. +func (*SearchProductsRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{11} +} + +func (x *SearchProductsRequest) GetQuery() string { + if x != nil { + return x.Query + } + return "" +} + +type SearchProductsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Results []*Product `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` +} + +func (x *SearchProductsResponse) Reset() { + *x = SearchProductsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchProductsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchProductsResponse) ProtoMessage() {} + +func (x *SearchProductsResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchProductsResponse.ProtoReflect.Descriptor instead. +func (*SearchProductsResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{12} +} + +func (x *SearchProductsResponse) GetResults() []*Product { + if x != nil { + return x.Results + } + return nil +} + +type GetQuoteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *GetQuoteRequest) Reset() { + *x = GetQuoteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetQuoteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetQuoteRequest) ProtoMessage() {} + +func (x *GetQuoteRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetQuoteRequest.ProtoReflect.Descriptor instead. +func (*GetQuoteRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{13} +} + +func (x *GetQuoteRequest) GetAddress() *Address { + if x != nil { + return x.Address + } + return nil +} + +func (x *GetQuoteRequest) GetItems() []*CartItem { + if x != nil { + return x.Items + } + return nil +} + +type GetQuoteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CostUsd *Money `protobuf:"bytes,1,opt,name=cost_usd,json=costUsd,proto3" json:"cost_usd,omitempty"` +} + +func (x *GetQuoteResponse) Reset() { + *x = GetQuoteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetQuoteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetQuoteResponse) ProtoMessage() {} + +func (x *GetQuoteResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetQuoteResponse.ProtoReflect.Descriptor instead. +func (*GetQuoteResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{14} +} + +func (x *GetQuoteResponse) GetCostUsd() *Money { + if x != nil { + return x.CostUsd + } + return nil +} + +type ShipOrderRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *ShipOrderRequest) Reset() { + *x = ShipOrderRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShipOrderRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShipOrderRequest) ProtoMessage() {} + +func (x *ShipOrderRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShipOrderRequest.ProtoReflect.Descriptor instead. +func (*ShipOrderRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{15} +} + +func (x *ShipOrderRequest) GetAddress() *Address { + if x != nil { + return x.Address + } + return nil +} + +func (x *ShipOrderRequest) GetItems() []*CartItem { + if x != nil { + return x.Items + } + return nil +} + +type ShipOrderResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TrackingId string `protobuf:"bytes,1,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"` +} + +func (x *ShipOrderResponse) Reset() { + *x = ShipOrderResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShipOrderResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShipOrderResponse) ProtoMessage() {} + +func (x *ShipOrderResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShipOrderResponse.ProtoReflect.Descriptor instead. +func (*ShipOrderResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{16} +} + +func (x *ShipOrderResponse) GetTrackingId() string { + if x != nil { + return x.TrackingId + } + return "" +} + +type Address struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StreetAddress string `protobuf:"bytes,1,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + City string `protobuf:"bytes,2,opt,name=city,proto3" json:"city,omitempty"` + State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` + Country string `protobuf:"bytes,4,opt,name=country,proto3" json:"country,omitempty"` + ZipCode string `protobuf:"bytes,5,opt,name=zip_code,json=zipCode,proto3" json:"zip_code,omitempty"` +} + +func (x *Address) Reset() { + *x = Address{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Address) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Address) ProtoMessage() {} + +func (x *Address) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Address.ProtoReflect.Descriptor instead. +func (*Address) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{17} +} + +func (x *Address) GetStreetAddress() string { + if x != nil { + return x.StreetAddress + } + return "" +} + +func (x *Address) GetCity() string { + if x != nil { + return x.City + } + return "" +} + +func (x *Address) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *Address) GetCountry() string { + if x != nil { + return x.Country + } + return "" +} + +func (x *Address) GetZipCode() string { + if x != nil { + return x.ZipCode + } + return "" +} + +// Represents an amount of money with its currency type. +type Money struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The 3-letter currency code defined in ISO 4217. + CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"` + // The whole units of the amount. + // For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. + Units int64 `protobuf:"varint,2,opt,name=units,proto3" json:"units,omitempty"` + // Number of nano (10^-9) units of the amount. + // The value must be between -999,999,999 and +999,999,999 inclusive. + // If `units` is positive, `nanos` must be positive or zero. + // If `units` is zero, `nanos` can be positive, zero, or negative. + // If `units` is negative, `nanos` must be negative or zero. + // For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. + Nanos int32 `protobuf:"varint,3,opt,name=nanos,proto3" json:"nanos,omitempty"` +} + +func (x *Money) Reset() { + *x = Money{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Money) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Money) ProtoMessage() {} + +func (x *Money) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Money.ProtoReflect.Descriptor instead. +func (*Money) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{18} +} + +func (x *Money) GetCurrencyCode() string { + if x != nil { + return x.CurrencyCode + } + return "" +} + +func (x *Money) GetUnits() int64 { + if x != nil { + return x.Units + } + return 0 +} + +func (x *Money) GetNanos() int32 { + if x != nil { + return x.Nanos + } + return 0 +} + +type GetSupportedCurrenciesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The 3-letter currency code defined in ISO 4217. + CurrencyCodes []string `protobuf:"bytes,1,rep,name=currency_codes,json=currencyCodes,proto3" json:"currency_codes,omitempty"` +} + +func (x *GetSupportedCurrenciesResponse) Reset() { + *x = GetSupportedCurrenciesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSupportedCurrenciesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSupportedCurrenciesResponse) ProtoMessage() {} + +func (x *GetSupportedCurrenciesResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSupportedCurrenciesResponse.ProtoReflect.Descriptor instead. +func (*GetSupportedCurrenciesResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{19} +} + +func (x *GetSupportedCurrenciesResponse) GetCurrencyCodes() []string { + if x != nil { + return x.CurrencyCodes + } + return nil +} + +type CurrencyConversionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + From *Money `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` + // The 3-letter currency code defined in ISO 4217. + ToCode string `protobuf:"bytes,2,opt,name=to_code,json=toCode,proto3" json:"to_code,omitempty"` +} + +func (x *CurrencyConversionRequest) Reset() { + *x = CurrencyConversionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CurrencyConversionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CurrencyConversionRequest) ProtoMessage() {} + +func (x *CurrencyConversionRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CurrencyConversionRequest.ProtoReflect.Descriptor instead. +func (*CurrencyConversionRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{20} +} + +func (x *CurrencyConversionRequest) GetFrom() *Money { + if x != nil { + return x.From + } + return nil +} + +func (x *CurrencyConversionRequest) GetToCode() string { + if x != nil { + return x.ToCode + } + return "" +} + +type CreditCardInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreditCardNumber string `protobuf:"bytes,1,opt,name=credit_card_number,json=creditCardNumber,proto3" json:"credit_card_number,omitempty"` + CreditCardCvv int32 `protobuf:"varint,2,opt,name=credit_card_cvv,json=creditCardCvv,proto3" json:"credit_card_cvv,omitempty"` + CreditCardExpirationYear int32 `protobuf:"varint,3,opt,name=credit_card_expiration_year,json=creditCardExpirationYear,proto3" json:"credit_card_expiration_year,omitempty"` + CreditCardExpirationMonth int32 `protobuf:"varint,4,opt,name=credit_card_expiration_month,json=creditCardExpirationMonth,proto3" json:"credit_card_expiration_month,omitempty"` +} + +func (x *CreditCardInfo) Reset() { + *x = CreditCardInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreditCardInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreditCardInfo) ProtoMessage() {} + +func (x *CreditCardInfo) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreditCardInfo.ProtoReflect.Descriptor instead. +func (*CreditCardInfo) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{21} +} + +func (x *CreditCardInfo) GetCreditCardNumber() string { + if x != nil { + return x.CreditCardNumber + } + return "" +} + +func (x *CreditCardInfo) GetCreditCardCvv() int32 { + if x != nil { + return x.CreditCardCvv + } + return 0 +} + +func (x *CreditCardInfo) GetCreditCardExpirationYear() int32 { + if x != nil { + return x.CreditCardExpirationYear + } + return 0 +} + +func (x *CreditCardInfo) GetCreditCardExpirationMonth() int32 { + if x != nil { + return x.CreditCardExpirationMonth + } + return 0 +} + +type ChargeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount *Money `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + CreditCard *CreditCardInfo `protobuf:"bytes,2,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` +} + +func (x *ChargeRequest) Reset() { + *x = ChargeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeRequest) ProtoMessage() {} + +func (x *ChargeRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeRequest.ProtoReflect.Descriptor instead. +func (*ChargeRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{22} +} + +func (x *ChargeRequest) GetAmount() *Money { + if x != nil { + return x.Amount + } + return nil +} + +func (x *ChargeRequest) GetCreditCard() *CreditCardInfo { + if x != nil { + return x.CreditCard + } + return nil +} + +type ChargeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TransactionId string `protobuf:"bytes,1,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` +} + +func (x *ChargeResponse) Reset() { + *x = ChargeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeResponse) ProtoMessage() {} + +func (x *ChargeResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeResponse.ProtoReflect.Descriptor instead. +func (*ChargeResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{23} +} + +func (x *ChargeResponse) GetTransactionId() string { + if x != nil { + return x.TransactionId + } + return "" +} + +type OrderItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Item *CartItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` + Cost *Money `protobuf:"bytes,2,opt,name=cost,proto3" json:"cost,omitempty"` +} + +func (x *OrderItem) Reset() { + *x = OrderItem{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderItem) ProtoMessage() {} + +func (x *OrderItem) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderItem.ProtoReflect.Descriptor instead. +func (*OrderItem) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{24} +} + +func (x *OrderItem) GetItem() *CartItem { + if x != nil { + return x.Item + } + return nil +} + +func (x *OrderItem) GetCost() *Money { + if x != nil { + return x.Cost + } + return nil +} + +type OrderResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderId string `protobuf:"bytes,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` + ShippingTrackingId string `protobuf:"bytes,2,opt,name=shipping_tracking_id,json=shippingTrackingId,proto3" json:"shipping_tracking_id,omitempty"` + ShippingCost *Money `protobuf:"bytes,3,opt,name=shipping_cost,json=shippingCost,proto3" json:"shipping_cost,omitempty"` + ShippingAddress *Address `protobuf:"bytes,4,opt,name=shipping_address,json=shippingAddress,proto3" json:"shipping_address,omitempty"` + Items []*OrderItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *OrderResult) Reset() { + *x = OrderResult{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderResult) ProtoMessage() {} + +func (x *OrderResult) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderResult.ProtoReflect.Descriptor instead. +func (*OrderResult) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{25} +} + +func (x *OrderResult) GetOrderId() string { + if x != nil { + return x.OrderId + } + return "" +} + +func (x *OrderResult) GetShippingTrackingId() string { + if x != nil { + return x.ShippingTrackingId + } + return "" +} + +func (x *OrderResult) GetShippingCost() *Money { + if x != nil { + return x.ShippingCost + } + return nil +} + +func (x *OrderResult) GetShippingAddress() *Address { + if x != nil { + return x.ShippingAddress + } + return nil +} + +func (x *OrderResult) GetItems() []*OrderItem { + if x != nil { + return x.Items + } + return nil +} + +type SendOrderConfirmationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + Order *OrderResult `protobuf:"bytes,2,opt,name=order,proto3" json:"order,omitempty"` +} + +func (x *SendOrderConfirmationRequest) Reset() { + *x = SendOrderConfirmationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendOrderConfirmationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendOrderConfirmationRequest) ProtoMessage() {} + +func (x *SendOrderConfirmationRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendOrderConfirmationRequest.ProtoReflect.Descriptor instead. +func (*SendOrderConfirmationRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{26} +} + +func (x *SendOrderConfirmationRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *SendOrderConfirmationRequest) GetOrder() *OrderResult { + if x != nil { + return x.Order + } + return nil +} + +type PlaceOrderRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency,proto3" json:"user_currency,omitempty"` + Address *Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` + Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` + CreditCard *CreditCardInfo `protobuf:"bytes,6,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` +} + +func (x *PlaceOrderRequest) Reset() { + *x = PlaceOrderRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlaceOrderRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlaceOrderRequest) ProtoMessage() {} + +func (x *PlaceOrderRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlaceOrderRequest.ProtoReflect.Descriptor instead. +func (*PlaceOrderRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{27} +} + +func (x *PlaceOrderRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *PlaceOrderRequest) GetUserCurrency() string { + if x != nil { + return x.UserCurrency + } + return "" +} + +func (x *PlaceOrderRequest) GetAddress() *Address { + if x != nil { + return x.Address + } + return nil +} + +func (x *PlaceOrderRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *PlaceOrderRequest) GetCreditCard() *CreditCardInfo { + if x != nil { + return x.CreditCard + } + return nil +} + +type PlaceOrderResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Order *OrderResult `protobuf:"bytes,1,opt,name=order,proto3" json:"order,omitempty"` +} + +func (x *PlaceOrderResponse) Reset() { + *x = PlaceOrderResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlaceOrderResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlaceOrderResponse) ProtoMessage() {} + +func (x *PlaceOrderResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlaceOrderResponse.ProtoReflect.Descriptor instead. +func (*PlaceOrderResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{28} +} + +func (x *PlaceOrderResponse) GetOrder() *OrderResult { + if x != nil { + return x.Order + } + return nil +} + +type AdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of important key words from the current page describing the context. + ContextKeys []string `protobuf:"bytes,1,rep,name=context_keys,json=contextKeys,proto3" json:"context_keys,omitempty"` +} + +func (x *AdRequest) Reset() { + *x = AdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdRequest) ProtoMessage() {} + +func (x *AdRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdRequest.ProtoReflect.Descriptor instead. +func (*AdRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{29} +} + +func (x *AdRequest) GetContextKeys() []string { + if x != nil { + return x.ContextKeys + } + return nil +} + +type AdResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ads []*Ad `protobuf:"bytes,1,rep,name=ads,proto3" json:"ads,omitempty"` +} + +func (x *AdResponse) Reset() { + *x = AdResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdResponse) ProtoMessage() {} + +func (x *AdResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdResponse.ProtoReflect.Descriptor instead. +func (*AdResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{30} +} + +func (x *AdResponse) GetAds() []*Ad { + if x != nil { + return x.Ads + } + return nil +} + +type Ad struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // url to redirect to when an ad is clicked. + RedirectUrl string `protobuf:"bytes,1,opt,name=redirect_url,json=redirectUrl,proto3" json:"redirect_url,omitempty"` + // short advertisement text to display. + Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *Ad) Reset() { + *x = Ad{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Ad) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Ad) ProtoMessage() {} + +func (x *Ad) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Ad.ProtoReflect.Descriptor instead. +func (*Ad) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{31} +} + +func (x *Ad) GetRedirectUrl() string { + if x != nil { + return x.RedirectUrl + } + return "" +} + +func (x *Ad) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type Flag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` +} + +func (x *Flag) Reset() { + *x = Flag{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Flag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Flag) ProtoMessage() {} + +func (x *Flag) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Flag.ProtoReflect.Descriptor instead. +func (*Flag) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{32} +} + +func (x *Flag) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Flag) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Flag) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +type GetFlagRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetFlagRequest) Reset() { + *x = GetFlagRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFlagRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFlagRequest) ProtoMessage() {} + +func (x *GetFlagRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFlagRequest.ProtoReflect.Descriptor instead. +func (*GetFlagRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{33} +} + +func (x *GetFlagRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type GetFlagResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` +} + +func (x *GetFlagResponse) Reset() { + *x = GetFlagResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFlagResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFlagResponse) ProtoMessage() {} + +func (x *GetFlagResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFlagResponse.ProtoReflect.Descriptor instead. +func (*GetFlagResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{34} +} + +func (x *GetFlagResponse) GetFlag() *Flag { + if x != nil { + return x.Flag + } + return nil +} + +type CreateFlagRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` +} + +func (x *CreateFlagRequest) Reset() { + *x = CreateFlagRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFlagRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFlagRequest) ProtoMessage() {} + +func (x *CreateFlagRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFlagRequest.ProtoReflect.Descriptor instead. +func (*CreateFlagRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{35} +} + +func (x *CreateFlagRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateFlagRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *CreateFlagRequest) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +type CreateFlagResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` +} + +func (x *CreateFlagResponse) Reset() { + *x = CreateFlagResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFlagResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFlagResponse) ProtoMessage() {} + +func (x *CreateFlagResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFlagResponse.ProtoReflect.Descriptor instead. +func (*CreateFlagResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{36} +} + +func (x *CreateFlagResponse) GetFlag() *Flag { + if x != nil { + return x.Flag + } + return nil +} + +type UpdateFlagRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` +} + +func (x *UpdateFlagRequest) Reset() { + *x = UpdateFlagRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFlagRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFlagRequest) ProtoMessage() {} + +func (x *UpdateFlagRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFlagRequest.ProtoReflect.Descriptor instead. +func (*UpdateFlagRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{37} +} + +func (x *UpdateFlagRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateFlagRequest) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +type UpdateFlagResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateFlagResponse) Reset() { + *x = UpdateFlagResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFlagResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFlagResponse) ProtoMessage() {} + +func (x *UpdateFlagResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFlagResponse.ProtoReflect.Descriptor instead. +func (*UpdateFlagResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{38} +} + +type ListFlagsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ListFlagsRequest) Reset() { + *x = ListFlagsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFlagsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFlagsRequest) ProtoMessage() {} + +func (x *ListFlagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFlagsRequest.ProtoReflect.Descriptor instead. +func (*ListFlagsRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{39} +} + +type ListFlagsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag []*Flag `protobuf:"bytes,1,rep,name=flag,proto3" json:"flag,omitempty"` +} + +func (x *ListFlagsResponse) Reset() { + *x = ListFlagsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFlagsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFlagsResponse) ProtoMessage() {} + +func (x *ListFlagsResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFlagsResponse.ProtoReflect.Descriptor instead. +func (*ListFlagsResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{40} +} + +func (x *ListFlagsResponse) GetFlag() []*Flag { + if x != nil { + return x.Flag + } + return nil +} + +type DeleteFlagRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteFlagRequest) Reset() { + *x = DeleteFlagRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFlagRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFlagRequest) ProtoMessage() {} + +func (x *DeleteFlagRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFlagRequest.ProtoReflect.Descriptor instead. +func (*DeleteFlagRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{41} +} + +func (x *DeleteFlagRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type DeleteFlagResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteFlagResponse) Reset() { + *x = DeleteFlagResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFlagResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFlagResponse) ProtoMessage() {} + +func (x *DeleteFlagResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFlagResponse.ProtoReflect.Descriptor instead. +func (*DeleteFlagResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{42} +} + +var File_demo_proto protoreflect.FileDescriptor + +var file_demo_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x6f, 0x74, + 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x22, 0x45, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x51, 0x0a, + 0x0e, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, + 0x6f, 0x2e, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, + 0x22, 0x2b, 0x0a, 0x10, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x43, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x29, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, + 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x56, 0x0a, 0x1a, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x49, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x49, 0x64, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x2c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4d, + 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x63, 0x65, 0x55, 0x73, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x45, + 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, + 0x65, 0x6d, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x73, 0x22, 0x23, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x15, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x45, 0x0a, 0x16, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x22, 0x68, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x28, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x61, 0x72, 0x74, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3e, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, + 0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, + 0x79, 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x64, 0x22, 0x69, 0x0a, 0x10, 0x53, 0x68, + 0x69, 0x70, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x65, + 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x34, 0x0a, 0x11, 0x53, 0x68, 0x69, 0x70, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x07, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, + 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, + 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x7a, 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x7a, 0x69, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x58, 0x0a, + 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x75, + 0x6e, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x22, 0x47, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x73, + 0x22, 0x59, 0x0a, 0x19, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, + 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, + 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x0e, + 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, + 0x0a, 0x12, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x76, 0x76, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, + 0x64, 0x43, 0x76, 0x76, 0x12, 0x3d, 0x0a, 0x1b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, + 0x61, 0x72, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x79, + 0x65, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x59, + 0x65, 0x61, 0x72, 0x12, 0x3f, 0x0a, 0x1c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, + 0x72, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x6f, 0x6e, 0x74, 0x68, 0x22, 0x73, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, + 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, + 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x22, 0x37, 0x0a, 0x0e, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x22, 0x58, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x26, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x23, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, + 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x22, 0xf9, 0x01, 0x0a, + 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x68, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x54, + 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0d, 0x73, 0x68, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, + 0x79, 0x52, 0x0c, 0x73, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x73, 0x74, 0x12, + 0x3c, 0x0a, 0x10, 0x73, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0f, 0x73, 0x68, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x61, 0x0a, 0x1c, 0x53, 0x65, 0x6e, 0x64, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2b, + 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xcf, 0x01, 0x0a, 0x11, + 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, + 0x2b, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, + 0x6d, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, + 0x12, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x22, 0x2e, 0x0a, 0x09, 0x41, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4b, 0x65, 0x79, 0x73, + 0x22, 0x2c, 0x0a, 0x0a, 0x41, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, + 0x0a, 0x03, 0x61, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, + 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x03, 0x61, 0x64, 0x73, 0x22, 0x3b, + 0x0a, 0x02, 0x41, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x56, 0x0a, 0x04, 0x46, + 0x6c, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x22, 0x24, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x04, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x65, + 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, + 0x22, 0x63, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x38, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, + 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x66, + 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, + 0x41, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x37, 0x0a, 0x11, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x22, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x52, + 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x27, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, + 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x14, + 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xb8, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x18, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x07, + 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x74, 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, + 0x6d, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x0e, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x61, 0x72, + 0x74, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x09, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x43, 0x61, 0x72, 0x74, + 0x12, 0x1a, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x43, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x6f, + 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x32, + 0x7d, 0x0a, 0x15, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x64, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x24, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xf1, + 0x01, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, + 0x65, 0x6d, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1e, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0a, 0x47, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, + 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x1f, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x32, 0x9e, 0x01, 0x0a, 0x0f, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, + 0x74, 0x65, 0x12, 0x19, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x09, 0x53, + 0x68, 0x69, 0x70, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, + 0x65, 0x6d, 0x6f, 0x2e, 0x53, 0x68, 0x69, 0x70, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x53, 0x68, 0x69, 0x70, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x32, 0xab, 0x01, 0x0a, 0x0f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x69, 0x65, + 0x73, 0x12, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x28, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, + 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, + 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x22, + 0x00, 0x32, 0x4f, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x17, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, + 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x32, 0x62, 0x0a, 0x0c, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x6f, 0x74, + 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x32, 0x5c, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, + 0x75, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x50, 0x6c, 0x61, + 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, + 0x6d, 0x6f, 0x2e, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x32, 0x42, 0x0a, 0x09, 0x41, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x35, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x41, 0x64, 0x73, 0x12, 0x13, 0x2e, 0x6f, 0x74, + 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x14, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xff, 0x02, 0x0a, 0x12, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x65, + 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x49, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, + 0x1b, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, + 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, + 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0a, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x65, + 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, + 0x6d, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1a, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x49, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1b, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, + 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x65, + 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x67, 0x65, + 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_demo_proto_rawDescOnce sync.Once + file_demo_proto_rawDescData = file_demo_proto_rawDesc +) + +func file_demo_proto_rawDescGZIP() []byte { + file_demo_proto_rawDescOnce.Do(func() { + file_demo_proto_rawDescData = protoimpl.X.CompressGZIP(file_demo_proto_rawDescData) + }) + return file_demo_proto_rawDescData +} + +var file_demo_proto_msgTypes = make([]protoimpl.MessageInfo, 43) +var file_demo_proto_goTypes = []interface{}{ + (*CartItem)(nil), // 0: oteldemo.CartItem + (*AddItemRequest)(nil), // 1: oteldemo.AddItemRequest + (*EmptyCartRequest)(nil), // 2: oteldemo.EmptyCartRequest + (*GetCartRequest)(nil), // 3: oteldemo.GetCartRequest + (*Cart)(nil), // 4: oteldemo.Cart + (*Empty)(nil), // 5: oteldemo.Empty + (*ListRecommendationsRequest)(nil), // 6: oteldemo.ListRecommendationsRequest + (*ListRecommendationsResponse)(nil), // 7: oteldemo.ListRecommendationsResponse + (*Product)(nil), // 8: oteldemo.Product + (*ListProductsResponse)(nil), // 9: oteldemo.ListProductsResponse + (*GetProductRequest)(nil), // 10: oteldemo.GetProductRequest + (*SearchProductsRequest)(nil), // 11: oteldemo.SearchProductsRequest + (*SearchProductsResponse)(nil), // 12: oteldemo.SearchProductsResponse + (*GetQuoteRequest)(nil), // 13: oteldemo.GetQuoteRequest + (*GetQuoteResponse)(nil), // 14: oteldemo.GetQuoteResponse + (*ShipOrderRequest)(nil), // 15: oteldemo.ShipOrderRequest + (*ShipOrderResponse)(nil), // 16: oteldemo.ShipOrderResponse + (*Address)(nil), // 17: oteldemo.Address + (*Money)(nil), // 18: oteldemo.Money + (*GetSupportedCurrenciesResponse)(nil), // 19: oteldemo.GetSupportedCurrenciesResponse + (*CurrencyConversionRequest)(nil), // 20: oteldemo.CurrencyConversionRequest + (*CreditCardInfo)(nil), // 21: oteldemo.CreditCardInfo + (*ChargeRequest)(nil), // 22: oteldemo.ChargeRequest + (*ChargeResponse)(nil), // 23: oteldemo.ChargeResponse + (*OrderItem)(nil), // 24: oteldemo.OrderItem + (*OrderResult)(nil), // 25: oteldemo.OrderResult + (*SendOrderConfirmationRequest)(nil), // 26: oteldemo.SendOrderConfirmationRequest + (*PlaceOrderRequest)(nil), // 27: oteldemo.PlaceOrderRequest + (*PlaceOrderResponse)(nil), // 28: oteldemo.PlaceOrderResponse + (*AdRequest)(nil), // 29: oteldemo.AdRequest + (*AdResponse)(nil), // 30: oteldemo.AdResponse + (*Ad)(nil), // 31: oteldemo.Ad + (*Flag)(nil), // 32: oteldemo.Flag + (*GetFlagRequest)(nil), // 33: oteldemo.GetFlagRequest + (*GetFlagResponse)(nil), // 34: oteldemo.GetFlagResponse + (*CreateFlagRequest)(nil), // 35: oteldemo.CreateFlagRequest + (*CreateFlagResponse)(nil), // 36: oteldemo.CreateFlagResponse + (*UpdateFlagRequest)(nil), // 37: oteldemo.UpdateFlagRequest + (*UpdateFlagResponse)(nil), // 38: oteldemo.UpdateFlagResponse + (*ListFlagsRequest)(nil), // 39: oteldemo.ListFlagsRequest + (*ListFlagsResponse)(nil), // 40: oteldemo.ListFlagsResponse + (*DeleteFlagRequest)(nil), // 41: oteldemo.DeleteFlagRequest + (*DeleteFlagResponse)(nil), // 42: oteldemo.DeleteFlagResponse +} +var file_demo_proto_depIdxs = []int32{ + 0, // 0: oteldemo.AddItemRequest.item:type_name -> oteldemo.CartItem + 0, // 1: oteldemo.Cart.items:type_name -> oteldemo.CartItem + 18, // 2: oteldemo.Product.price_usd:type_name -> oteldemo.Money + 8, // 3: oteldemo.ListProductsResponse.products:type_name -> oteldemo.Product + 8, // 4: oteldemo.SearchProductsResponse.results:type_name -> oteldemo.Product + 17, // 5: oteldemo.GetQuoteRequest.address:type_name -> oteldemo.Address + 0, // 6: oteldemo.GetQuoteRequest.items:type_name -> oteldemo.CartItem + 18, // 7: oteldemo.GetQuoteResponse.cost_usd:type_name -> oteldemo.Money + 17, // 8: oteldemo.ShipOrderRequest.address:type_name -> oteldemo.Address + 0, // 9: oteldemo.ShipOrderRequest.items:type_name -> oteldemo.CartItem + 18, // 10: oteldemo.CurrencyConversionRequest.from:type_name -> oteldemo.Money + 18, // 11: oteldemo.ChargeRequest.amount:type_name -> oteldemo.Money + 21, // 12: oteldemo.ChargeRequest.credit_card:type_name -> oteldemo.CreditCardInfo + 0, // 13: oteldemo.OrderItem.item:type_name -> oteldemo.CartItem + 18, // 14: oteldemo.OrderItem.cost:type_name -> oteldemo.Money + 18, // 15: oteldemo.OrderResult.shipping_cost:type_name -> oteldemo.Money + 17, // 16: oteldemo.OrderResult.shipping_address:type_name -> oteldemo.Address + 24, // 17: oteldemo.OrderResult.items:type_name -> oteldemo.OrderItem + 25, // 18: oteldemo.SendOrderConfirmationRequest.order:type_name -> oteldemo.OrderResult + 17, // 19: oteldemo.PlaceOrderRequest.address:type_name -> oteldemo.Address + 21, // 20: oteldemo.PlaceOrderRequest.credit_card:type_name -> oteldemo.CreditCardInfo + 25, // 21: oteldemo.PlaceOrderResponse.order:type_name -> oteldemo.OrderResult + 31, // 22: oteldemo.AdResponse.ads:type_name -> oteldemo.Ad + 32, // 23: oteldemo.GetFlagResponse.flag:type_name -> oteldemo.Flag + 32, // 24: oteldemo.CreateFlagResponse.flag:type_name -> oteldemo.Flag + 32, // 25: oteldemo.ListFlagsResponse.flag:type_name -> oteldemo.Flag + 1, // 26: oteldemo.CartService.AddItem:input_type -> oteldemo.AddItemRequest + 3, // 27: oteldemo.CartService.GetCart:input_type -> oteldemo.GetCartRequest + 2, // 28: oteldemo.CartService.EmptyCart:input_type -> oteldemo.EmptyCartRequest + 6, // 29: oteldemo.RecommendationService.ListRecommendations:input_type -> oteldemo.ListRecommendationsRequest + 5, // 30: oteldemo.ProductCatalogService.ListProducts:input_type -> oteldemo.Empty + 10, // 31: oteldemo.ProductCatalogService.GetProduct:input_type -> oteldemo.GetProductRequest + 11, // 32: oteldemo.ProductCatalogService.SearchProducts:input_type -> oteldemo.SearchProductsRequest + 13, // 33: oteldemo.ShippingService.GetQuote:input_type -> oteldemo.GetQuoteRequest + 15, // 34: oteldemo.ShippingService.ShipOrder:input_type -> oteldemo.ShipOrderRequest + 5, // 35: oteldemo.CurrencyService.GetSupportedCurrencies:input_type -> oteldemo.Empty + 20, // 36: oteldemo.CurrencyService.Convert:input_type -> oteldemo.CurrencyConversionRequest + 22, // 37: oteldemo.PaymentService.Charge:input_type -> oteldemo.ChargeRequest + 26, // 38: oteldemo.EmailService.SendOrderConfirmation:input_type -> oteldemo.SendOrderConfirmationRequest + 27, // 39: oteldemo.CheckoutService.PlaceOrder:input_type -> oteldemo.PlaceOrderRequest + 29, // 40: oteldemo.AdService.GetAds:input_type -> oteldemo.AdRequest + 33, // 41: oteldemo.FeatureFlagService.GetFlag:input_type -> oteldemo.GetFlagRequest + 35, // 42: oteldemo.FeatureFlagService.CreateFlag:input_type -> oteldemo.CreateFlagRequest + 37, // 43: oteldemo.FeatureFlagService.UpdateFlag:input_type -> oteldemo.UpdateFlagRequest + 39, // 44: oteldemo.FeatureFlagService.ListFlags:input_type -> oteldemo.ListFlagsRequest + 41, // 45: oteldemo.FeatureFlagService.DeleteFlag:input_type -> oteldemo.DeleteFlagRequest + 5, // 46: oteldemo.CartService.AddItem:output_type -> oteldemo.Empty + 4, // 47: oteldemo.CartService.GetCart:output_type -> oteldemo.Cart + 5, // 48: oteldemo.CartService.EmptyCart:output_type -> oteldemo.Empty + 7, // 49: oteldemo.RecommendationService.ListRecommendations:output_type -> oteldemo.ListRecommendationsResponse + 9, // 50: oteldemo.ProductCatalogService.ListProducts:output_type -> oteldemo.ListProductsResponse + 8, // 51: oteldemo.ProductCatalogService.GetProduct:output_type -> oteldemo.Product + 12, // 52: oteldemo.ProductCatalogService.SearchProducts:output_type -> oteldemo.SearchProductsResponse + 14, // 53: oteldemo.ShippingService.GetQuote:output_type -> oteldemo.GetQuoteResponse + 16, // 54: oteldemo.ShippingService.ShipOrder:output_type -> oteldemo.ShipOrderResponse + 19, // 55: oteldemo.CurrencyService.GetSupportedCurrencies:output_type -> oteldemo.GetSupportedCurrenciesResponse + 18, // 56: oteldemo.CurrencyService.Convert:output_type -> oteldemo.Money + 23, // 57: oteldemo.PaymentService.Charge:output_type -> oteldemo.ChargeResponse + 5, // 58: oteldemo.EmailService.SendOrderConfirmation:output_type -> oteldemo.Empty + 28, // 59: oteldemo.CheckoutService.PlaceOrder:output_type -> oteldemo.PlaceOrderResponse + 30, // 60: oteldemo.AdService.GetAds:output_type -> oteldemo.AdResponse + 34, // 61: oteldemo.FeatureFlagService.GetFlag:output_type -> oteldemo.GetFlagResponse + 36, // 62: oteldemo.FeatureFlagService.CreateFlag:output_type -> oteldemo.CreateFlagResponse + 38, // 63: oteldemo.FeatureFlagService.UpdateFlag:output_type -> oteldemo.UpdateFlagResponse + 40, // 64: oteldemo.FeatureFlagService.ListFlags:output_type -> oteldemo.ListFlagsResponse + 42, // 65: oteldemo.FeatureFlagService.DeleteFlag:output_type -> oteldemo.DeleteFlagResponse + 46, // [46:66] is the sub-list for method output_type + 26, // [26:46] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name +} + +func init() { file_demo_proto_init() } +func file_demo_proto_init() { + if File_demo_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_demo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CartItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddItemRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EmptyCartRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCartRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Cart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Empty); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRecommendationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRecommendationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Product); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListProductsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetProductRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchProductsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchProductsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetQuoteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetQuoteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShipOrderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShipOrderResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Address); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Money); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSupportedCurrenciesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CurrencyConversionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreditCardInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendOrderConfirmationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlaceOrderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlaceOrderResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Ad); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Flag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFlagRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFlagResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFlagRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFlagResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFlagRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFlagResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFlagsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFlagsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteFlagRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteFlagResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_demo_proto_rawDesc, + NumEnums: 0, + NumMessages: 43, + NumExtensions: 0, + NumServices: 10, + }, + GoTypes: file_demo_proto_goTypes, + DependencyIndexes: file_demo_proto_depIdxs, + MessageInfos: file_demo_proto_msgTypes, + }.Build() + File_demo_proto = out.File + file_demo_proto_rawDesc = nil + file_demo_proto_goTypes = nil + file_demo_proto_depIdxs = nil +} diff --git a/src/checkoutservice/genproto/oteldemo/demo_grpc.pb.go b/src/checkoutservice/genproto/oteldemo/demo_grpc.pb.go new file mode 100644 index 0000000000..b4478e6d21 --- /dev/null +++ b/src/checkoutservice/genproto/oteldemo/demo_grpc.pb.go @@ -0,0 +1,1323 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.4.0 +// - protoc v4.24.4 +// source: demo.proto + +package oteldemo + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.62.0 or later. +const _ = grpc.SupportPackageIsVersion8 + +const ( + CartService_AddItem_FullMethodName = "/oteldemo.CartService/AddItem" + CartService_GetCart_FullMethodName = "/oteldemo.CartService/GetCart" + CartService_EmptyCart_FullMethodName = "/oteldemo.CartService/EmptyCart" +) + +// CartServiceClient is the client API for CartService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type CartServiceClient interface { + AddItem(ctx context.Context, in *AddItemRequest, opts ...grpc.CallOption) (*Empty, error) + GetCart(ctx context.Context, in *GetCartRequest, opts ...grpc.CallOption) (*Cart, error) + EmptyCart(ctx context.Context, in *EmptyCartRequest, opts ...grpc.CallOption) (*Empty, error) +} + +type cartServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewCartServiceClient(cc grpc.ClientConnInterface) CartServiceClient { + return &cartServiceClient{cc} +} + +func (c *cartServiceClient) AddItem(ctx context.Context, in *AddItemRequest, opts ...grpc.CallOption) (*Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Empty) + err := c.cc.Invoke(ctx, CartService_AddItem_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cartServiceClient) GetCart(ctx context.Context, in *GetCartRequest, opts ...grpc.CallOption) (*Cart, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Cart) + err := c.cc.Invoke(ctx, CartService_GetCart_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cartServiceClient) EmptyCart(ctx context.Context, in *EmptyCartRequest, opts ...grpc.CallOption) (*Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Empty) + err := c.cc.Invoke(ctx, CartService_EmptyCart_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CartServiceServer is the server API for CartService service. +// All implementations must embed UnimplementedCartServiceServer +// for forward compatibility +type CartServiceServer interface { + AddItem(context.Context, *AddItemRequest) (*Empty, error) + GetCart(context.Context, *GetCartRequest) (*Cart, error) + EmptyCart(context.Context, *EmptyCartRequest) (*Empty, error) + mustEmbedUnimplementedCartServiceServer() +} + +// UnimplementedCartServiceServer must be embedded to have forward compatible implementations. +type UnimplementedCartServiceServer struct { +} + +func (UnimplementedCartServiceServer) AddItem(context.Context, *AddItemRequest) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddItem not implemented") +} +func (UnimplementedCartServiceServer) GetCart(context.Context, *GetCartRequest) (*Cart, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCart not implemented") +} +func (UnimplementedCartServiceServer) EmptyCart(context.Context, *EmptyCartRequest) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method EmptyCart not implemented") +} +func (UnimplementedCartServiceServer) mustEmbedUnimplementedCartServiceServer() {} + +// UnsafeCartServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to CartServiceServer will +// result in compilation errors. +type UnsafeCartServiceServer interface { + mustEmbedUnimplementedCartServiceServer() +} + +func RegisterCartServiceServer(s grpc.ServiceRegistrar, srv CartServiceServer) { + s.RegisterService(&CartService_ServiceDesc, srv) +} + +func _CartService_AddItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddItemRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CartServiceServer).AddItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CartService_AddItem_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CartServiceServer).AddItem(ctx, req.(*AddItemRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CartService_GetCart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCartRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CartServiceServer).GetCart(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CartService_GetCart_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CartServiceServer).GetCart(ctx, req.(*GetCartRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CartService_EmptyCart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EmptyCartRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CartServiceServer).EmptyCart(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CartService_EmptyCart_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CartServiceServer).EmptyCart(ctx, req.(*EmptyCartRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// CartService_ServiceDesc is the grpc.ServiceDesc for CartService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CartService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.CartService", + HandlerType: (*CartServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "AddItem", + Handler: _CartService_AddItem_Handler, + }, + { + MethodName: "GetCart", + Handler: _CartService_GetCart_Handler, + }, + { + MethodName: "EmptyCart", + Handler: _CartService_EmptyCart_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + RecommendationService_ListRecommendations_FullMethodName = "/oteldemo.RecommendationService/ListRecommendations" +) + +// RecommendationServiceClient is the client API for RecommendationService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type RecommendationServiceClient interface { + ListRecommendations(ctx context.Context, in *ListRecommendationsRequest, opts ...grpc.CallOption) (*ListRecommendationsResponse, error) +} + +type recommendationServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewRecommendationServiceClient(cc grpc.ClientConnInterface) RecommendationServiceClient { + return &recommendationServiceClient{cc} +} + +func (c *recommendationServiceClient) ListRecommendations(ctx context.Context, in *ListRecommendationsRequest, opts ...grpc.CallOption) (*ListRecommendationsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListRecommendationsResponse) + err := c.cc.Invoke(ctx, RecommendationService_ListRecommendations_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RecommendationServiceServer is the server API for RecommendationService service. +// All implementations must embed UnimplementedRecommendationServiceServer +// for forward compatibility +type RecommendationServiceServer interface { + ListRecommendations(context.Context, *ListRecommendationsRequest) (*ListRecommendationsResponse, error) + mustEmbedUnimplementedRecommendationServiceServer() +} + +// UnimplementedRecommendationServiceServer must be embedded to have forward compatible implementations. +type UnimplementedRecommendationServiceServer struct { +} + +func (UnimplementedRecommendationServiceServer) ListRecommendations(context.Context, *ListRecommendationsRequest) (*ListRecommendationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRecommendations not implemented") +} +func (UnimplementedRecommendationServiceServer) mustEmbedUnimplementedRecommendationServiceServer() {} + +// UnsafeRecommendationServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to RecommendationServiceServer will +// result in compilation errors. +type UnsafeRecommendationServiceServer interface { + mustEmbedUnimplementedRecommendationServiceServer() +} + +func RegisterRecommendationServiceServer(s grpc.ServiceRegistrar, srv RecommendationServiceServer) { + s.RegisterService(&RecommendationService_ServiceDesc, srv) +} + +func _RecommendationService_ListRecommendations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRecommendationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RecommendationServiceServer).ListRecommendations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RecommendationService_ListRecommendations_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RecommendationServiceServer).ListRecommendations(ctx, req.(*ListRecommendationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// RecommendationService_ServiceDesc is the grpc.ServiceDesc for RecommendationService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var RecommendationService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.RecommendationService", + HandlerType: (*RecommendationServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListRecommendations", + Handler: _RecommendationService_ListRecommendations_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + ProductCatalogService_ListProducts_FullMethodName = "/oteldemo.ProductCatalogService/ListProducts" + ProductCatalogService_GetProduct_FullMethodName = "/oteldemo.ProductCatalogService/GetProduct" + ProductCatalogService_SearchProducts_FullMethodName = "/oteldemo.ProductCatalogService/SearchProducts" +) + +// ProductCatalogServiceClient is the client API for ProductCatalogService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ProductCatalogServiceClient interface { + ListProducts(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListProductsResponse, error) + GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) + SearchProducts(ctx context.Context, in *SearchProductsRequest, opts ...grpc.CallOption) (*SearchProductsResponse, error) +} + +type productCatalogServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewProductCatalogServiceClient(cc grpc.ClientConnInterface) ProductCatalogServiceClient { + return &productCatalogServiceClient{cc} +} + +func (c *productCatalogServiceClient) ListProducts(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListProductsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListProductsResponse) + err := c.cc.Invoke(ctx, ProductCatalogService_ListProducts_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *productCatalogServiceClient) GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Product) + err := c.cc.Invoke(ctx, ProductCatalogService_GetProduct_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *productCatalogServiceClient) SearchProducts(ctx context.Context, in *SearchProductsRequest, opts ...grpc.CallOption) (*SearchProductsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(SearchProductsResponse) + err := c.cc.Invoke(ctx, ProductCatalogService_SearchProducts_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ProductCatalogServiceServer is the server API for ProductCatalogService service. +// All implementations must embed UnimplementedProductCatalogServiceServer +// for forward compatibility +type ProductCatalogServiceServer interface { + ListProducts(context.Context, *Empty) (*ListProductsResponse, error) + GetProduct(context.Context, *GetProductRequest) (*Product, error) + SearchProducts(context.Context, *SearchProductsRequest) (*SearchProductsResponse, error) + mustEmbedUnimplementedProductCatalogServiceServer() +} + +// UnimplementedProductCatalogServiceServer must be embedded to have forward compatible implementations. +type UnimplementedProductCatalogServiceServer struct { +} + +func (UnimplementedProductCatalogServiceServer) ListProducts(context.Context, *Empty) (*ListProductsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListProducts not implemented") +} +func (UnimplementedProductCatalogServiceServer) GetProduct(context.Context, *GetProductRequest) (*Product, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetProduct not implemented") +} +func (UnimplementedProductCatalogServiceServer) SearchProducts(context.Context, *SearchProductsRequest) (*SearchProductsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchProducts not implemented") +} +func (UnimplementedProductCatalogServiceServer) mustEmbedUnimplementedProductCatalogServiceServer() {} + +// UnsafeProductCatalogServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ProductCatalogServiceServer will +// result in compilation errors. +type UnsafeProductCatalogServiceServer interface { + mustEmbedUnimplementedProductCatalogServiceServer() +} + +func RegisterProductCatalogServiceServer(s grpc.ServiceRegistrar, srv ProductCatalogServiceServer) { + s.RegisterService(&ProductCatalogService_ServiceDesc, srv) +} + +func _ProductCatalogService_ListProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProductCatalogServiceServer).ListProducts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProductCatalogService_ListProducts_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProductCatalogServiceServer).ListProducts(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _ProductCatalogService_GetProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetProductRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProductCatalogServiceServer).GetProduct(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProductCatalogService_GetProduct_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProductCatalogServiceServer).GetProduct(ctx, req.(*GetProductRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ProductCatalogService_SearchProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchProductsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProductCatalogServiceServer).SearchProducts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProductCatalogService_SearchProducts_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProductCatalogServiceServer).SearchProducts(ctx, req.(*SearchProductsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// ProductCatalogService_ServiceDesc is the grpc.ServiceDesc for ProductCatalogService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ProductCatalogService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.ProductCatalogService", + HandlerType: (*ProductCatalogServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListProducts", + Handler: _ProductCatalogService_ListProducts_Handler, + }, + { + MethodName: "GetProduct", + Handler: _ProductCatalogService_GetProduct_Handler, + }, + { + MethodName: "SearchProducts", + Handler: _ProductCatalogService_SearchProducts_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + ShippingService_GetQuote_FullMethodName = "/oteldemo.ShippingService/GetQuote" + ShippingService_ShipOrder_FullMethodName = "/oteldemo.ShippingService/ShipOrder" +) + +// ShippingServiceClient is the client API for ShippingService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ShippingServiceClient interface { + GetQuote(ctx context.Context, in *GetQuoteRequest, opts ...grpc.CallOption) (*GetQuoteResponse, error) + ShipOrder(ctx context.Context, in *ShipOrderRequest, opts ...grpc.CallOption) (*ShipOrderResponse, error) +} + +type shippingServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewShippingServiceClient(cc grpc.ClientConnInterface) ShippingServiceClient { + return &shippingServiceClient{cc} +} + +func (c *shippingServiceClient) GetQuote(ctx context.Context, in *GetQuoteRequest, opts ...grpc.CallOption) (*GetQuoteResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetQuoteResponse) + err := c.cc.Invoke(ctx, ShippingService_GetQuote_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *shippingServiceClient) ShipOrder(ctx context.Context, in *ShipOrderRequest, opts ...grpc.CallOption) (*ShipOrderResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ShipOrderResponse) + err := c.cc.Invoke(ctx, ShippingService_ShipOrder_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ShippingServiceServer is the server API for ShippingService service. +// All implementations must embed UnimplementedShippingServiceServer +// for forward compatibility +type ShippingServiceServer interface { + GetQuote(context.Context, *GetQuoteRequest) (*GetQuoteResponse, error) + ShipOrder(context.Context, *ShipOrderRequest) (*ShipOrderResponse, error) + mustEmbedUnimplementedShippingServiceServer() +} + +// UnimplementedShippingServiceServer must be embedded to have forward compatible implementations. +type UnimplementedShippingServiceServer struct { +} + +func (UnimplementedShippingServiceServer) GetQuote(context.Context, *GetQuoteRequest) (*GetQuoteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetQuote not implemented") +} +func (UnimplementedShippingServiceServer) ShipOrder(context.Context, *ShipOrderRequest) (*ShipOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShipOrder not implemented") +} +func (UnimplementedShippingServiceServer) mustEmbedUnimplementedShippingServiceServer() {} + +// UnsafeShippingServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ShippingServiceServer will +// result in compilation errors. +type UnsafeShippingServiceServer interface { + mustEmbedUnimplementedShippingServiceServer() +} + +func RegisterShippingServiceServer(s grpc.ServiceRegistrar, srv ShippingServiceServer) { + s.RegisterService(&ShippingService_ServiceDesc, srv) +} + +func _ShippingService_GetQuote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetQuoteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ShippingServiceServer).GetQuote(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ShippingService_GetQuote_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ShippingServiceServer).GetQuote(ctx, req.(*GetQuoteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ShippingService_ShipOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ShipOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ShippingServiceServer).ShipOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ShippingService_ShipOrder_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ShippingServiceServer).ShipOrder(ctx, req.(*ShipOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// ShippingService_ServiceDesc is the grpc.ServiceDesc for ShippingService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ShippingService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.ShippingService", + HandlerType: (*ShippingServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetQuote", + Handler: _ShippingService_GetQuote_Handler, + }, + { + MethodName: "ShipOrder", + Handler: _ShippingService_ShipOrder_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + CurrencyService_GetSupportedCurrencies_FullMethodName = "/oteldemo.CurrencyService/GetSupportedCurrencies" + CurrencyService_Convert_FullMethodName = "/oteldemo.CurrencyService/Convert" +) + +// CurrencyServiceClient is the client API for CurrencyService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type CurrencyServiceClient interface { + GetSupportedCurrencies(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetSupportedCurrenciesResponse, error) + Convert(ctx context.Context, in *CurrencyConversionRequest, opts ...grpc.CallOption) (*Money, error) +} + +type currencyServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewCurrencyServiceClient(cc grpc.ClientConnInterface) CurrencyServiceClient { + return ¤cyServiceClient{cc} +} + +func (c *currencyServiceClient) GetSupportedCurrencies(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetSupportedCurrenciesResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetSupportedCurrenciesResponse) + err := c.cc.Invoke(ctx, CurrencyService_GetSupportedCurrencies_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *currencyServiceClient) Convert(ctx context.Context, in *CurrencyConversionRequest, opts ...grpc.CallOption) (*Money, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Money) + err := c.cc.Invoke(ctx, CurrencyService_Convert_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CurrencyServiceServer is the server API for CurrencyService service. +// All implementations must embed UnimplementedCurrencyServiceServer +// for forward compatibility +type CurrencyServiceServer interface { + GetSupportedCurrencies(context.Context, *Empty) (*GetSupportedCurrenciesResponse, error) + Convert(context.Context, *CurrencyConversionRequest) (*Money, error) + mustEmbedUnimplementedCurrencyServiceServer() +} + +// UnimplementedCurrencyServiceServer must be embedded to have forward compatible implementations. +type UnimplementedCurrencyServiceServer struct { +} + +func (UnimplementedCurrencyServiceServer) GetSupportedCurrencies(context.Context, *Empty) (*GetSupportedCurrenciesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSupportedCurrencies not implemented") +} +func (UnimplementedCurrencyServiceServer) Convert(context.Context, *CurrencyConversionRequest) (*Money, error) { + return nil, status.Errorf(codes.Unimplemented, "method Convert not implemented") +} +func (UnimplementedCurrencyServiceServer) mustEmbedUnimplementedCurrencyServiceServer() {} + +// UnsafeCurrencyServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to CurrencyServiceServer will +// result in compilation errors. +type UnsafeCurrencyServiceServer interface { + mustEmbedUnimplementedCurrencyServiceServer() +} + +func RegisterCurrencyServiceServer(s grpc.ServiceRegistrar, srv CurrencyServiceServer) { + s.RegisterService(&CurrencyService_ServiceDesc, srv) +} + +func _CurrencyService_GetSupportedCurrencies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CurrencyServiceServer).GetSupportedCurrencies(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CurrencyService_GetSupportedCurrencies_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CurrencyServiceServer).GetSupportedCurrencies(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _CurrencyService_Convert_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CurrencyConversionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CurrencyServiceServer).Convert(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CurrencyService_Convert_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CurrencyServiceServer).Convert(ctx, req.(*CurrencyConversionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// CurrencyService_ServiceDesc is the grpc.ServiceDesc for CurrencyService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CurrencyService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.CurrencyService", + HandlerType: (*CurrencyServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetSupportedCurrencies", + Handler: _CurrencyService_GetSupportedCurrencies_Handler, + }, + { + MethodName: "Convert", + Handler: _CurrencyService_Convert_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + PaymentService_Charge_FullMethodName = "/oteldemo.PaymentService/Charge" +) + +// PaymentServiceClient is the client API for PaymentService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type PaymentServiceClient interface { + Charge(ctx context.Context, in *ChargeRequest, opts ...grpc.CallOption) (*ChargeResponse, error) +} + +type paymentServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewPaymentServiceClient(cc grpc.ClientConnInterface) PaymentServiceClient { + return &paymentServiceClient{cc} +} + +func (c *paymentServiceClient) Charge(ctx context.Context, in *ChargeRequest, opts ...grpc.CallOption) (*ChargeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ChargeResponse) + err := c.cc.Invoke(ctx, PaymentService_Charge_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// PaymentServiceServer is the server API for PaymentService service. +// All implementations must embed UnimplementedPaymentServiceServer +// for forward compatibility +type PaymentServiceServer interface { + Charge(context.Context, *ChargeRequest) (*ChargeResponse, error) + mustEmbedUnimplementedPaymentServiceServer() +} + +// UnimplementedPaymentServiceServer must be embedded to have forward compatible implementations. +type UnimplementedPaymentServiceServer struct { +} + +func (UnimplementedPaymentServiceServer) Charge(context.Context, *ChargeRequest) (*ChargeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Charge not implemented") +} +func (UnimplementedPaymentServiceServer) mustEmbedUnimplementedPaymentServiceServer() {} + +// UnsafePaymentServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to PaymentServiceServer will +// result in compilation errors. +type UnsafePaymentServiceServer interface { + mustEmbedUnimplementedPaymentServiceServer() +} + +func RegisterPaymentServiceServer(s grpc.ServiceRegistrar, srv PaymentServiceServer) { + s.RegisterService(&PaymentService_ServiceDesc, srv) +} + +func _PaymentService_Charge_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ChargeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PaymentServiceServer).Charge(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PaymentService_Charge_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PaymentServiceServer).Charge(ctx, req.(*ChargeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// PaymentService_ServiceDesc is the grpc.ServiceDesc for PaymentService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var PaymentService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.PaymentService", + HandlerType: (*PaymentServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Charge", + Handler: _PaymentService_Charge_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + EmailService_SendOrderConfirmation_FullMethodName = "/oteldemo.EmailService/SendOrderConfirmation" +) + +// EmailServiceClient is the client API for EmailService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type EmailServiceClient interface { + SendOrderConfirmation(ctx context.Context, in *SendOrderConfirmationRequest, opts ...grpc.CallOption) (*Empty, error) +} + +type emailServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewEmailServiceClient(cc grpc.ClientConnInterface) EmailServiceClient { + return &emailServiceClient{cc} +} + +func (c *emailServiceClient) SendOrderConfirmation(ctx context.Context, in *SendOrderConfirmationRequest, opts ...grpc.CallOption) (*Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Empty) + err := c.cc.Invoke(ctx, EmailService_SendOrderConfirmation_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// EmailServiceServer is the server API for EmailService service. +// All implementations must embed UnimplementedEmailServiceServer +// for forward compatibility +type EmailServiceServer interface { + SendOrderConfirmation(context.Context, *SendOrderConfirmationRequest) (*Empty, error) + mustEmbedUnimplementedEmailServiceServer() +} + +// UnimplementedEmailServiceServer must be embedded to have forward compatible implementations. +type UnimplementedEmailServiceServer struct { +} + +func (UnimplementedEmailServiceServer) SendOrderConfirmation(context.Context, *SendOrderConfirmationRequest) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendOrderConfirmation not implemented") +} +func (UnimplementedEmailServiceServer) mustEmbedUnimplementedEmailServiceServer() {} + +// UnsafeEmailServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to EmailServiceServer will +// result in compilation errors. +type UnsafeEmailServiceServer interface { + mustEmbedUnimplementedEmailServiceServer() +} + +func RegisterEmailServiceServer(s grpc.ServiceRegistrar, srv EmailServiceServer) { + s.RegisterService(&EmailService_ServiceDesc, srv) +} + +func _EmailService_SendOrderConfirmation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendOrderConfirmationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EmailServiceServer).SendOrderConfirmation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EmailService_SendOrderConfirmation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EmailServiceServer).SendOrderConfirmation(ctx, req.(*SendOrderConfirmationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// EmailService_ServiceDesc is the grpc.ServiceDesc for EmailService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var EmailService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.EmailService", + HandlerType: (*EmailServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "SendOrderConfirmation", + Handler: _EmailService_SendOrderConfirmation_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + CheckoutService_PlaceOrder_FullMethodName = "/oteldemo.CheckoutService/PlaceOrder" +) + +// CheckoutServiceClient is the client API for CheckoutService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type CheckoutServiceClient interface { + PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) +} + +type checkoutServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewCheckoutServiceClient(cc grpc.ClientConnInterface) CheckoutServiceClient { + return &checkoutServiceClient{cc} +} + +func (c *checkoutServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(PlaceOrderResponse) + err := c.cc.Invoke(ctx, CheckoutService_PlaceOrder_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CheckoutServiceServer is the server API for CheckoutService service. +// All implementations must embed UnimplementedCheckoutServiceServer +// for forward compatibility +type CheckoutServiceServer interface { + PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error) + mustEmbedUnimplementedCheckoutServiceServer() +} + +// UnimplementedCheckoutServiceServer must be embedded to have forward compatible implementations. +type UnimplementedCheckoutServiceServer struct { +} + +func (UnimplementedCheckoutServiceServer) PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PlaceOrder not implemented") +} +func (UnimplementedCheckoutServiceServer) mustEmbedUnimplementedCheckoutServiceServer() {} + +// UnsafeCheckoutServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to CheckoutServiceServer will +// result in compilation errors. +type UnsafeCheckoutServiceServer interface { + mustEmbedUnimplementedCheckoutServiceServer() +} + +func RegisterCheckoutServiceServer(s grpc.ServiceRegistrar, srv CheckoutServiceServer) { + s.RegisterService(&CheckoutService_ServiceDesc, srv) +} + +func _CheckoutService_PlaceOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PlaceOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CheckoutServiceServer).PlaceOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CheckoutService_PlaceOrder_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CheckoutServiceServer).PlaceOrder(ctx, req.(*PlaceOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// CheckoutService_ServiceDesc is the grpc.ServiceDesc for CheckoutService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CheckoutService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.CheckoutService", + HandlerType: (*CheckoutServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "PlaceOrder", + Handler: _CheckoutService_PlaceOrder_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + AdService_GetAds_FullMethodName = "/oteldemo.AdService/GetAds" +) + +// AdServiceClient is the client API for AdService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type AdServiceClient interface { + GetAds(ctx context.Context, in *AdRequest, opts ...grpc.CallOption) (*AdResponse, error) +} + +type adServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewAdServiceClient(cc grpc.ClientConnInterface) AdServiceClient { + return &adServiceClient{cc} +} + +func (c *adServiceClient) GetAds(ctx context.Context, in *AdRequest, opts ...grpc.CallOption) (*AdResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(AdResponse) + err := c.cc.Invoke(ctx, AdService_GetAds_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AdServiceServer is the server API for AdService service. +// All implementations must embed UnimplementedAdServiceServer +// for forward compatibility +type AdServiceServer interface { + GetAds(context.Context, *AdRequest) (*AdResponse, error) + mustEmbedUnimplementedAdServiceServer() +} + +// UnimplementedAdServiceServer must be embedded to have forward compatible implementations. +type UnimplementedAdServiceServer struct { +} + +func (UnimplementedAdServiceServer) GetAds(context.Context, *AdRequest) (*AdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAds not implemented") +} +func (UnimplementedAdServiceServer) mustEmbedUnimplementedAdServiceServer() {} + +// UnsafeAdServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to AdServiceServer will +// result in compilation errors. +type UnsafeAdServiceServer interface { + mustEmbedUnimplementedAdServiceServer() +} + +func RegisterAdServiceServer(s grpc.ServiceRegistrar, srv AdServiceServer) { + s.RegisterService(&AdService_ServiceDesc, srv) +} + +func _AdService_GetAds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdServiceServer).GetAds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AdService_GetAds_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdServiceServer).GetAds(ctx, req.(*AdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// AdService_ServiceDesc is the grpc.ServiceDesc for AdService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var AdService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.AdService", + HandlerType: (*AdServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAds", + Handler: _AdService_GetAds_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + FeatureFlagService_GetFlag_FullMethodName = "/oteldemo.FeatureFlagService/GetFlag" + FeatureFlagService_CreateFlag_FullMethodName = "/oteldemo.FeatureFlagService/CreateFlag" + FeatureFlagService_UpdateFlag_FullMethodName = "/oteldemo.FeatureFlagService/UpdateFlag" + FeatureFlagService_ListFlags_FullMethodName = "/oteldemo.FeatureFlagService/ListFlags" + FeatureFlagService_DeleteFlag_FullMethodName = "/oteldemo.FeatureFlagService/DeleteFlag" +) + +// FeatureFlagServiceClient is the client API for FeatureFlagService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type FeatureFlagServiceClient interface { + GetFlag(ctx context.Context, in *GetFlagRequest, opts ...grpc.CallOption) (*GetFlagResponse, error) + CreateFlag(ctx context.Context, in *CreateFlagRequest, opts ...grpc.CallOption) (*CreateFlagResponse, error) + UpdateFlag(ctx context.Context, in *UpdateFlagRequest, opts ...grpc.CallOption) (*UpdateFlagResponse, error) + ListFlags(ctx context.Context, in *ListFlagsRequest, opts ...grpc.CallOption) (*ListFlagsResponse, error) + DeleteFlag(ctx context.Context, in *DeleteFlagRequest, opts ...grpc.CallOption) (*DeleteFlagResponse, error) +} + +type featureFlagServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewFeatureFlagServiceClient(cc grpc.ClientConnInterface) FeatureFlagServiceClient { + return &featureFlagServiceClient{cc} +} + +func (c *featureFlagServiceClient) GetFlag(ctx context.Context, in *GetFlagRequest, opts ...grpc.CallOption) (*GetFlagResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetFlagResponse) + err := c.cc.Invoke(ctx, FeatureFlagService_GetFlag_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureFlagServiceClient) CreateFlag(ctx context.Context, in *CreateFlagRequest, opts ...grpc.CallOption) (*CreateFlagResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(CreateFlagResponse) + err := c.cc.Invoke(ctx, FeatureFlagService_CreateFlag_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureFlagServiceClient) UpdateFlag(ctx context.Context, in *UpdateFlagRequest, opts ...grpc.CallOption) (*UpdateFlagResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(UpdateFlagResponse) + err := c.cc.Invoke(ctx, FeatureFlagService_UpdateFlag_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureFlagServiceClient) ListFlags(ctx context.Context, in *ListFlagsRequest, opts ...grpc.CallOption) (*ListFlagsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListFlagsResponse) + err := c.cc.Invoke(ctx, FeatureFlagService_ListFlags_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureFlagServiceClient) DeleteFlag(ctx context.Context, in *DeleteFlagRequest, opts ...grpc.CallOption) (*DeleteFlagResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DeleteFlagResponse) + err := c.cc.Invoke(ctx, FeatureFlagService_DeleteFlag_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FeatureFlagServiceServer is the server API for FeatureFlagService service. +// All implementations must embed UnimplementedFeatureFlagServiceServer +// for forward compatibility +type FeatureFlagServiceServer interface { + GetFlag(context.Context, *GetFlagRequest) (*GetFlagResponse, error) + CreateFlag(context.Context, *CreateFlagRequest) (*CreateFlagResponse, error) + UpdateFlag(context.Context, *UpdateFlagRequest) (*UpdateFlagResponse, error) + ListFlags(context.Context, *ListFlagsRequest) (*ListFlagsResponse, error) + DeleteFlag(context.Context, *DeleteFlagRequest) (*DeleteFlagResponse, error) + mustEmbedUnimplementedFeatureFlagServiceServer() +} + +// UnimplementedFeatureFlagServiceServer must be embedded to have forward compatible implementations. +type UnimplementedFeatureFlagServiceServer struct { +} + +func (UnimplementedFeatureFlagServiceServer) GetFlag(context.Context, *GetFlagRequest) (*GetFlagResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFlag not implemented") +} +func (UnimplementedFeatureFlagServiceServer) CreateFlag(context.Context, *CreateFlagRequest) (*CreateFlagResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateFlag not implemented") +} +func (UnimplementedFeatureFlagServiceServer) UpdateFlag(context.Context, *UpdateFlagRequest) (*UpdateFlagResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateFlag not implemented") +} +func (UnimplementedFeatureFlagServiceServer) ListFlags(context.Context, *ListFlagsRequest) (*ListFlagsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFlags not implemented") +} +func (UnimplementedFeatureFlagServiceServer) DeleteFlag(context.Context, *DeleteFlagRequest) (*DeleteFlagResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteFlag not implemented") +} +func (UnimplementedFeatureFlagServiceServer) mustEmbedUnimplementedFeatureFlagServiceServer() {} + +// UnsafeFeatureFlagServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to FeatureFlagServiceServer will +// result in compilation errors. +type UnsafeFeatureFlagServiceServer interface { + mustEmbedUnimplementedFeatureFlagServiceServer() +} + +func RegisterFeatureFlagServiceServer(s grpc.ServiceRegistrar, srv FeatureFlagServiceServer) { + s.RegisterService(&FeatureFlagService_ServiceDesc, srv) +} + +func _FeatureFlagService_GetFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFlagRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureFlagServiceServer).GetFlag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FeatureFlagService_GetFlag_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureFlagServiceServer).GetFlag(ctx, req.(*GetFlagRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureFlagService_CreateFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateFlagRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureFlagServiceServer).CreateFlag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FeatureFlagService_CreateFlag_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureFlagServiceServer).CreateFlag(ctx, req.(*CreateFlagRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureFlagService_UpdateFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateFlagRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureFlagServiceServer).UpdateFlag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FeatureFlagService_UpdateFlag_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureFlagServiceServer).UpdateFlag(ctx, req.(*UpdateFlagRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureFlagService_ListFlags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFlagsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureFlagServiceServer).ListFlags(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FeatureFlagService_ListFlags_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureFlagServiceServer).ListFlags(ctx, req.(*ListFlagsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureFlagService_DeleteFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteFlagRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureFlagServiceServer).DeleteFlag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FeatureFlagService_DeleteFlag_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureFlagServiceServer).DeleteFlag(ctx, req.(*DeleteFlagRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// FeatureFlagService_ServiceDesc is the grpc.ServiceDesc for FeatureFlagService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var FeatureFlagService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.FeatureFlagService", + HandlerType: (*FeatureFlagServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetFlag", + Handler: _FeatureFlagService_GetFlag_Handler, + }, + { + MethodName: "CreateFlag", + Handler: _FeatureFlagService_CreateFlag_Handler, + }, + { + MethodName: "UpdateFlag", + Handler: _FeatureFlagService_UpdateFlag_Handler, + }, + { + MethodName: "ListFlags", + Handler: _FeatureFlagService_ListFlags_Handler, + }, + { + MethodName: "DeleteFlag", + Handler: _FeatureFlagService_DeleteFlag_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} diff --git a/src/productcatalogservice/Dockerfile b/src/productcatalogservice/Dockerfile index bed92b7605..f954743401 100644 --- a/src/productcatalogservice/Dockerfile +++ b/src/productcatalogservice/Dockerfile @@ -6,22 +6,15 @@ FROM golang:1.22-alpine AS builder WORKDIR /usr/src/app/ -RUN apk update \ - && apk add --no-cache make protobuf-dev - RUN --mount=type=cache,target=/go/pkg/mod/ \ --mount=type=bind,source=./src/productcatalogservice/go.sum,target=go.sum \ --mount=type=bind,source=./src/productcatalogservice/go.mod,target=go.mod \ - --mount=type=bind,source=./src/productcatalogservice/tools.go,target=tools.go \ - go mod download \ - && go list -e -f '{{range .Imports}}{{.}} {{end}}' tools.go | CGO_ENABLED=0 xargs go install -mod=readonly + go mod download RUN --mount=type=cache,target=/go/pkg/mod/ \ --mount=type=cache,target=/root/.cache/go-build \ --mount=type=bind,rw,source=./src/productcatalogservice,target=. \ - --mount=type=bind,rw,source=./pb,target=./pb \ - protoc -I ./pb ./pb/demo.proto --go_out=./ --go-grpc_out=./ \ - && go build -ldflags "-s -w" -o /go/bin/productcatalogservice/ ./ + go build -ldflags "-s -w" -o /go/bin/productcatalogservice/ ./ FROM alpine AS release diff --git a/src/productcatalogservice/README.md b/src/productcatalogservice/README.md index 0a23062190..99b3d7c1bf 100644 --- a/src/productcatalogservice/README.md +++ b/src/productcatalogservice/README.md @@ -25,13 +25,10 @@ docker compose build productcatalogservice ## Regenerate protos -> [!NOTE] -> [`protoc`](https://grpc.io/docs/protoc-installation/) is required. - -To regenerate gRPC code run: +To build the protos, run from the root directory: ```sh -go generate +make docker-generate-protobuf ``` ## Bump dependencies diff --git a/src/productcatalogservice/genproto/Dockerfile b/src/productcatalogservice/genproto/Dockerfile new file mode 100644 index 0000000000..d313bb0cc4 --- /dev/null +++ b/src/productcatalogservice/genproto/Dockerfile @@ -0,0 +1,16 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +FROM golang:1.22-alpine + +WORKDIR /build + +RUN apk add --no-cache protobuf-dev + +COPY ./src/productcatalogservice/go.mod ./ +COPY ./src/productcatalogservice/go.sum ./ +COPY ./src/productcatalogservice/tools.go ./ + +RUN go env -w GOMODCACHE=/root/.cache/go-build +RUN --mount=type=cache,target=/root/.cache/go-build \ + go list -e -f '{{range .Imports}}{{.}} {{end}}' tools.go | CGO_ENABLED=0 xargs go install -mod=readonly \ diff --git a/src/productcatalogservice/genproto/oteldemo/demo.pb.go b/src/productcatalogservice/genproto/oteldemo/demo.pb.go new file mode 100644 index 0000000000..4bb4ddb33c --- /dev/null +++ b/src/productcatalogservice/genproto/oteldemo/demo.pb.go @@ -0,0 +1,3343 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.1 +// protoc v4.24.4 +// source: demo.proto + +package oteldemo + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CartItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProductId string `protobuf:"bytes,1,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` + Quantity int32 `protobuf:"varint,2,opt,name=quantity,proto3" json:"quantity,omitempty"` +} + +func (x *CartItem) Reset() { + *x = CartItem{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CartItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CartItem) ProtoMessage() {} + +func (x *CartItem) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CartItem.ProtoReflect.Descriptor instead. +func (*CartItem) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{0} +} + +func (x *CartItem) GetProductId() string { + if x != nil { + return x.ProductId + } + return "" +} + +func (x *CartItem) GetQuantity() int32 { + if x != nil { + return x.Quantity + } + return 0 +} + +type AddItemRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Item *CartItem `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` +} + +func (x *AddItemRequest) Reset() { + *x = AddItemRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddItemRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddItemRequest) ProtoMessage() {} + +func (x *AddItemRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddItemRequest.ProtoReflect.Descriptor instead. +func (*AddItemRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{1} +} + +func (x *AddItemRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *AddItemRequest) GetItem() *CartItem { + if x != nil { + return x.Item + } + return nil +} + +type EmptyCartRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` +} + +func (x *EmptyCartRequest) Reset() { + *x = EmptyCartRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EmptyCartRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EmptyCartRequest) ProtoMessage() {} + +func (x *EmptyCartRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EmptyCartRequest.ProtoReflect.Descriptor instead. +func (*EmptyCartRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{2} +} + +func (x *EmptyCartRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +type GetCartRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` +} + +func (x *GetCartRequest) Reset() { + *x = GetCartRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCartRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCartRequest) ProtoMessage() {} + +func (x *GetCartRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCartRequest.ProtoReflect.Descriptor instead. +func (*GetCartRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{3} +} + +func (x *GetCartRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +type Cart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *Cart) Reset() { + *x = Cart{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Cart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Cart) ProtoMessage() {} + +func (x *Cart) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Cart.ProtoReflect.Descriptor instead. +func (*Cart) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{4} +} + +func (x *Cart) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *Cart) GetItems() []*CartItem { + if x != nil { + return x.Items + } + return nil +} + +type Empty struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Empty) Reset() { + *x = Empty{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Empty) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Empty) ProtoMessage() {} + +func (x *Empty) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Empty.ProtoReflect.Descriptor instead. +func (*Empty) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{5} +} + +type ListRecommendationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + ProductIds []string `protobuf:"bytes,2,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` +} + +func (x *ListRecommendationsRequest) Reset() { + *x = ListRecommendationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRecommendationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRecommendationsRequest) ProtoMessage() {} + +func (x *ListRecommendationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRecommendationsRequest.ProtoReflect.Descriptor instead. +func (*ListRecommendationsRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{6} +} + +func (x *ListRecommendationsRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *ListRecommendationsRequest) GetProductIds() []string { + if x != nil { + return x.ProductIds + } + return nil +} + +type ListRecommendationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProductIds []string `protobuf:"bytes,1,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` +} + +func (x *ListRecommendationsResponse) Reset() { + *x = ListRecommendationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRecommendationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRecommendationsResponse) ProtoMessage() {} + +func (x *ListRecommendationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRecommendationsResponse.ProtoReflect.Descriptor instead. +func (*ListRecommendationsResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{7} +} + +func (x *ListRecommendationsResponse) GetProductIds() []string { + if x != nil { + return x.ProductIds + } + return nil +} + +type Product struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Picture string `protobuf:"bytes,4,opt,name=picture,proto3" json:"picture,omitempty"` + PriceUsd *Money `protobuf:"bytes,5,opt,name=price_usd,json=priceUsd,proto3" json:"price_usd,omitempty"` + // Categories such as "clothing" or "kitchen" that can be used to look up + // other related products. + Categories []string `protobuf:"bytes,6,rep,name=categories,proto3" json:"categories,omitempty"` +} + +func (x *Product) Reset() { + *x = Product{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Product) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Product) ProtoMessage() {} + +func (x *Product) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Product.ProtoReflect.Descriptor instead. +func (*Product) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{8} +} + +func (x *Product) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Product) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Product) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Product) GetPicture() string { + if x != nil { + return x.Picture + } + return "" +} + +func (x *Product) GetPriceUsd() *Money { + if x != nil { + return x.PriceUsd + } + return nil +} + +func (x *Product) GetCategories() []string { + if x != nil { + return x.Categories + } + return nil +} + +type ListProductsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"` +} + +func (x *ListProductsResponse) Reset() { + *x = ListProductsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListProductsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListProductsResponse) ProtoMessage() {} + +func (x *ListProductsResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListProductsResponse.ProtoReflect.Descriptor instead. +func (*ListProductsResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{9} +} + +func (x *ListProductsResponse) GetProducts() []*Product { + if x != nil { + return x.Products + } + return nil +} + +type GetProductRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *GetProductRequest) Reset() { + *x = GetProductRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetProductRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetProductRequest) ProtoMessage() {} + +func (x *GetProductRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetProductRequest.ProtoReflect.Descriptor instead. +func (*GetProductRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{10} +} + +func (x *GetProductRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type SearchProductsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` +} + +func (x *SearchProductsRequest) Reset() { + *x = SearchProductsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchProductsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchProductsRequest) ProtoMessage() {} + +func (x *SearchProductsRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchProductsRequest.ProtoReflect.Descriptor instead. +func (*SearchProductsRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{11} +} + +func (x *SearchProductsRequest) GetQuery() string { + if x != nil { + return x.Query + } + return "" +} + +type SearchProductsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Results []*Product `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` +} + +func (x *SearchProductsResponse) Reset() { + *x = SearchProductsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchProductsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchProductsResponse) ProtoMessage() {} + +func (x *SearchProductsResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchProductsResponse.ProtoReflect.Descriptor instead. +func (*SearchProductsResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{12} +} + +func (x *SearchProductsResponse) GetResults() []*Product { + if x != nil { + return x.Results + } + return nil +} + +type GetQuoteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *GetQuoteRequest) Reset() { + *x = GetQuoteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetQuoteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetQuoteRequest) ProtoMessage() {} + +func (x *GetQuoteRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetQuoteRequest.ProtoReflect.Descriptor instead. +func (*GetQuoteRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{13} +} + +func (x *GetQuoteRequest) GetAddress() *Address { + if x != nil { + return x.Address + } + return nil +} + +func (x *GetQuoteRequest) GetItems() []*CartItem { + if x != nil { + return x.Items + } + return nil +} + +type GetQuoteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CostUsd *Money `protobuf:"bytes,1,opt,name=cost_usd,json=costUsd,proto3" json:"cost_usd,omitempty"` +} + +func (x *GetQuoteResponse) Reset() { + *x = GetQuoteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetQuoteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetQuoteResponse) ProtoMessage() {} + +func (x *GetQuoteResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetQuoteResponse.ProtoReflect.Descriptor instead. +func (*GetQuoteResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{14} +} + +func (x *GetQuoteResponse) GetCostUsd() *Money { + if x != nil { + return x.CostUsd + } + return nil +} + +type ShipOrderRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *ShipOrderRequest) Reset() { + *x = ShipOrderRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShipOrderRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShipOrderRequest) ProtoMessage() {} + +func (x *ShipOrderRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShipOrderRequest.ProtoReflect.Descriptor instead. +func (*ShipOrderRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{15} +} + +func (x *ShipOrderRequest) GetAddress() *Address { + if x != nil { + return x.Address + } + return nil +} + +func (x *ShipOrderRequest) GetItems() []*CartItem { + if x != nil { + return x.Items + } + return nil +} + +type ShipOrderResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TrackingId string `protobuf:"bytes,1,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"` +} + +func (x *ShipOrderResponse) Reset() { + *x = ShipOrderResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShipOrderResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShipOrderResponse) ProtoMessage() {} + +func (x *ShipOrderResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShipOrderResponse.ProtoReflect.Descriptor instead. +func (*ShipOrderResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{16} +} + +func (x *ShipOrderResponse) GetTrackingId() string { + if x != nil { + return x.TrackingId + } + return "" +} + +type Address struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StreetAddress string `protobuf:"bytes,1,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + City string `protobuf:"bytes,2,opt,name=city,proto3" json:"city,omitempty"` + State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` + Country string `protobuf:"bytes,4,opt,name=country,proto3" json:"country,omitempty"` + ZipCode string `protobuf:"bytes,5,opt,name=zip_code,json=zipCode,proto3" json:"zip_code,omitempty"` +} + +func (x *Address) Reset() { + *x = Address{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Address) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Address) ProtoMessage() {} + +func (x *Address) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Address.ProtoReflect.Descriptor instead. +func (*Address) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{17} +} + +func (x *Address) GetStreetAddress() string { + if x != nil { + return x.StreetAddress + } + return "" +} + +func (x *Address) GetCity() string { + if x != nil { + return x.City + } + return "" +} + +func (x *Address) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *Address) GetCountry() string { + if x != nil { + return x.Country + } + return "" +} + +func (x *Address) GetZipCode() string { + if x != nil { + return x.ZipCode + } + return "" +} + +// Represents an amount of money with its currency type. +type Money struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The 3-letter currency code defined in ISO 4217. + CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"` + // The whole units of the amount. + // For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. + Units int64 `protobuf:"varint,2,opt,name=units,proto3" json:"units,omitempty"` + // Number of nano (10^-9) units of the amount. + // The value must be between -999,999,999 and +999,999,999 inclusive. + // If `units` is positive, `nanos` must be positive or zero. + // If `units` is zero, `nanos` can be positive, zero, or negative. + // If `units` is negative, `nanos` must be negative or zero. + // For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. + Nanos int32 `protobuf:"varint,3,opt,name=nanos,proto3" json:"nanos,omitempty"` +} + +func (x *Money) Reset() { + *x = Money{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Money) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Money) ProtoMessage() {} + +func (x *Money) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Money.ProtoReflect.Descriptor instead. +func (*Money) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{18} +} + +func (x *Money) GetCurrencyCode() string { + if x != nil { + return x.CurrencyCode + } + return "" +} + +func (x *Money) GetUnits() int64 { + if x != nil { + return x.Units + } + return 0 +} + +func (x *Money) GetNanos() int32 { + if x != nil { + return x.Nanos + } + return 0 +} + +type GetSupportedCurrenciesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The 3-letter currency code defined in ISO 4217. + CurrencyCodes []string `protobuf:"bytes,1,rep,name=currency_codes,json=currencyCodes,proto3" json:"currency_codes,omitempty"` +} + +func (x *GetSupportedCurrenciesResponse) Reset() { + *x = GetSupportedCurrenciesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSupportedCurrenciesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSupportedCurrenciesResponse) ProtoMessage() {} + +func (x *GetSupportedCurrenciesResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSupportedCurrenciesResponse.ProtoReflect.Descriptor instead. +func (*GetSupportedCurrenciesResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{19} +} + +func (x *GetSupportedCurrenciesResponse) GetCurrencyCodes() []string { + if x != nil { + return x.CurrencyCodes + } + return nil +} + +type CurrencyConversionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + From *Money `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` + // The 3-letter currency code defined in ISO 4217. + ToCode string `protobuf:"bytes,2,opt,name=to_code,json=toCode,proto3" json:"to_code,omitempty"` +} + +func (x *CurrencyConversionRequest) Reset() { + *x = CurrencyConversionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CurrencyConversionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CurrencyConversionRequest) ProtoMessage() {} + +func (x *CurrencyConversionRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CurrencyConversionRequest.ProtoReflect.Descriptor instead. +func (*CurrencyConversionRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{20} +} + +func (x *CurrencyConversionRequest) GetFrom() *Money { + if x != nil { + return x.From + } + return nil +} + +func (x *CurrencyConversionRequest) GetToCode() string { + if x != nil { + return x.ToCode + } + return "" +} + +type CreditCardInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreditCardNumber string `protobuf:"bytes,1,opt,name=credit_card_number,json=creditCardNumber,proto3" json:"credit_card_number,omitempty"` + CreditCardCvv int32 `protobuf:"varint,2,opt,name=credit_card_cvv,json=creditCardCvv,proto3" json:"credit_card_cvv,omitempty"` + CreditCardExpirationYear int32 `protobuf:"varint,3,opt,name=credit_card_expiration_year,json=creditCardExpirationYear,proto3" json:"credit_card_expiration_year,omitempty"` + CreditCardExpirationMonth int32 `protobuf:"varint,4,opt,name=credit_card_expiration_month,json=creditCardExpirationMonth,proto3" json:"credit_card_expiration_month,omitempty"` +} + +func (x *CreditCardInfo) Reset() { + *x = CreditCardInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreditCardInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreditCardInfo) ProtoMessage() {} + +func (x *CreditCardInfo) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreditCardInfo.ProtoReflect.Descriptor instead. +func (*CreditCardInfo) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{21} +} + +func (x *CreditCardInfo) GetCreditCardNumber() string { + if x != nil { + return x.CreditCardNumber + } + return "" +} + +func (x *CreditCardInfo) GetCreditCardCvv() int32 { + if x != nil { + return x.CreditCardCvv + } + return 0 +} + +func (x *CreditCardInfo) GetCreditCardExpirationYear() int32 { + if x != nil { + return x.CreditCardExpirationYear + } + return 0 +} + +func (x *CreditCardInfo) GetCreditCardExpirationMonth() int32 { + if x != nil { + return x.CreditCardExpirationMonth + } + return 0 +} + +type ChargeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount *Money `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + CreditCard *CreditCardInfo `protobuf:"bytes,2,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` +} + +func (x *ChargeRequest) Reset() { + *x = ChargeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeRequest) ProtoMessage() {} + +func (x *ChargeRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeRequest.ProtoReflect.Descriptor instead. +func (*ChargeRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{22} +} + +func (x *ChargeRequest) GetAmount() *Money { + if x != nil { + return x.Amount + } + return nil +} + +func (x *ChargeRequest) GetCreditCard() *CreditCardInfo { + if x != nil { + return x.CreditCard + } + return nil +} + +type ChargeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TransactionId string `protobuf:"bytes,1,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` +} + +func (x *ChargeResponse) Reset() { + *x = ChargeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChargeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChargeResponse) ProtoMessage() {} + +func (x *ChargeResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChargeResponse.ProtoReflect.Descriptor instead. +func (*ChargeResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{23} +} + +func (x *ChargeResponse) GetTransactionId() string { + if x != nil { + return x.TransactionId + } + return "" +} + +type OrderItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Item *CartItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` + Cost *Money `protobuf:"bytes,2,opt,name=cost,proto3" json:"cost,omitempty"` +} + +func (x *OrderItem) Reset() { + *x = OrderItem{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderItem) ProtoMessage() {} + +func (x *OrderItem) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderItem.ProtoReflect.Descriptor instead. +func (*OrderItem) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{24} +} + +func (x *OrderItem) GetItem() *CartItem { + if x != nil { + return x.Item + } + return nil +} + +func (x *OrderItem) GetCost() *Money { + if x != nil { + return x.Cost + } + return nil +} + +type OrderResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderId string `protobuf:"bytes,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` + ShippingTrackingId string `protobuf:"bytes,2,opt,name=shipping_tracking_id,json=shippingTrackingId,proto3" json:"shipping_tracking_id,omitempty"` + ShippingCost *Money `protobuf:"bytes,3,opt,name=shipping_cost,json=shippingCost,proto3" json:"shipping_cost,omitempty"` + ShippingAddress *Address `protobuf:"bytes,4,opt,name=shipping_address,json=shippingAddress,proto3" json:"shipping_address,omitempty"` + Items []*OrderItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *OrderResult) Reset() { + *x = OrderResult{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderResult) ProtoMessage() {} + +func (x *OrderResult) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrderResult.ProtoReflect.Descriptor instead. +func (*OrderResult) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{25} +} + +func (x *OrderResult) GetOrderId() string { + if x != nil { + return x.OrderId + } + return "" +} + +func (x *OrderResult) GetShippingTrackingId() string { + if x != nil { + return x.ShippingTrackingId + } + return "" +} + +func (x *OrderResult) GetShippingCost() *Money { + if x != nil { + return x.ShippingCost + } + return nil +} + +func (x *OrderResult) GetShippingAddress() *Address { + if x != nil { + return x.ShippingAddress + } + return nil +} + +func (x *OrderResult) GetItems() []*OrderItem { + if x != nil { + return x.Items + } + return nil +} + +type SendOrderConfirmationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + Order *OrderResult `protobuf:"bytes,2,opt,name=order,proto3" json:"order,omitempty"` +} + +func (x *SendOrderConfirmationRequest) Reset() { + *x = SendOrderConfirmationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendOrderConfirmationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendOrderConfirmationRequest) ProtoMessage() {} + +func (x *SendOrderConfirmationRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendOrderConfirmationRequest.ProtoReflect.Descriptor instead. +func (*SendOrderConfirmationRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{26} +} + +func (x *SendOrderConfirmationRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *SendOrderConfirmationRequest) GetOrder() *OrderResult { + if x != nil { + return x.Order + } + return nil +} + +type PlaceOrderRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency,proto3" json:"user_currency,omitempty"` + Address *Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` + Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` + CreditCard *CreditCardInfo `protobuf:"bytes,6,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` +} + +func (x *PlaceOrderRequest) Reset() { + *x = PlaceOrderRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlaceOrderRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlaceOrderRequest) ProtoMessage() {} + +func (x *PlaceOrderRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlaceOrderRequest.ProtoReflect.Descriptor instead. +func (*PlaceOrderRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{27} +} + +func (x *PlaceOrderRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *PlaceOrderRequest) GetUserCurrency() string { + if x != nil { + return x.UserCurrency + } + return "" +} + +func (x *PlaceOrderRequest) GetAddress() *Address { + if x != nil { + return x.Address + } + return nil +} + +func (x *PlaceOrderRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *PlaceOrderRequest) GetCreditCard() *CreditCardInfo { + if x != nil { + return x.CreditCard + } + return nil +} + +type PlaceOrderResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Order *OrderResult `protobuf:"bytes,1,opt,name=order,proto3" json:"order,omitempty"` +} + +func (x *PlaceOrderResponse) Reset() { + *x = PlaceOrderResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlaceOrderResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlaceOrderResponse) ProtoMessage() {} + +func (x *PlaceOrderResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlaceOrderResponse.ProtoReflect.Descriptor instead. +func (*PlaceOrderResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{28} +} + +func (x *PlaceOrderResponse) GetOrder() *OrderResult { + if x != nil { + return x.Order + } + return nil +} + +type AdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of important key words from the current page describing the context. + ContextKeys []string `protobuf:"bytes,1,rep,name=context_keys,json=contextKeys,proto3" json:"context_keys,omitempty"` +} + +func (x *AdRequest) Reset() { + *x = AdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdRequest) ProtoMessage() {} + +func (x *AdRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdRequest.ProtoReflect.Descriptor instead. +func (*AdRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{29} +} + +func (x *AdRequest) GetContextKeys() []string { + if x != nil { + return x.ContextKeys + } + return nil +} + +type AdResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ads []*Ad `protobuf:"bytes,1,rep,name=ads,proto3" json:"ads,omitempty"` +} + +func (x *AdResponse) Reset() { + *x = AdResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdResponse) ProtoMessage() {} + +func (x *AdResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdResponse.ProtoReflect.Descriptor instead. +func (*AdResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{30} +} + +func (x *AdResponse) GetAds() []*Ad { + if x != nil { + return x.Ads + } + return nil +} + +type Ad struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // url to redirect to when an ad is clicked. + RedirectUrl string `protobuf:"bytes,1,opt,name=redirect_url,json=redirectUrl,proto3" json:"redirect_url,omitempty"` + // short advertisement text to display. + Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *Ad) Reset() { + *x = Ad{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Ad) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Ad) ProtoMessage() {} + +func (x *Ad) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Ad.ProtoReflect.Descriptor instead. +func (*Ad) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{31} +} + +func (x *Ad) GetRedirectUrl() string { + if x != nil { + return x.RedirectUrl + } + return "" +} + +func (x *Ad) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type Flag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` +} + +func (x *Flag) Reset() { + *x = Flag{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Flag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Flag) ProtoMessage() {} + +func (x *Flag) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Flag.ProtoReflect.Descriptor instead. +func (*Flag) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{32} +} + +func (x *Flag) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Flag) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Flag) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +type GetFlagRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetFlagRequest) Reset() { + *x = GetFlagRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFlagRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFlagRequest) ProtoMessage() {} + +func (x *GetFlagRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFlagRequest.ProtoReflect.Descriptor instead. +func (*GetFlagRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{33} +} + +func (x *GetFlagRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type GetFlagResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` +} + +func (x *GetFlagResponse) Reset() { + *x = GetFlagResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFlagResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFlagResponse) ProtoMessage() {} + +func (x *GetFlagResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFlagResponse.ProtoReflect.Descriptor instead. +func (*GetFlagResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{34} +} + +func (x *GetFlagResponse) GetFlag() *Flag { + if x != nil { + return x.Flag + } + return nil +} + +type CreateFlagRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` +} + +func (x *CreateFlagRequest) Reset() { + *x = CreateFlagRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFlagRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFlagRequest) ProtoMessage() {} + +func (x *CreateFlagRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFlagRequest.ProtoReflect.Descriptor instead. +func (*CreateFlagRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{35} +} + +func (x *CreateFlagRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateFlagRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *CreateFlagRequest) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +type CreateFlagResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` +} + +func (x *CreateFlagResponse) Reset() { + *x = CreateFlagResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFlagResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFlagResponse) ProtoMessage() {} + +func (x *CreateFlagResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFlagResponse.ProtoReflect.Descriptor instead. +func (*CreateFlagResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{36} +} + +func (x *CreateFlagResponse) GetFlag() *Flag { + if x != nil { + return x.Flag + } + return nil +} + +type UpdateFlagRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` +} + +func (x *UpdateFlagRequest) Reset() { + *x = UpdateFlagRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFlagRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFlagRequest) ProtoMessage() {} + +func (x *UpdateFlagRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFlagRequest.ProtoReflect.Descriptor instead. +func (*UpdateFlagRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{37} +} + +func (x *UpdateFlagRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateFlagRequest) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +type UpdateFlagResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateFlagResponse) Reset() { + *x = UpdateFlagResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFlagResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFlagResponse) ProtoMessage() {} + +func (x *UpdateFlagResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFlagResponse.ProtoReflect.Descriptor instead. +func (*UpdateFlagResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{38} +} + +type ListFlagsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ListFlagsRequest) Reset() { + *x = ListFlagsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFlagsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFlagsRequest) ProtoMessage() {} + +func (x *ListFlagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFlagsRequest.ProtoReflect.Descriptor instead. +func (*ListFlagsRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{39} +} + +type ListFlagsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag []*Flag `protobuf:"bytes,1,rep,name=flag,proto3" json:"flag,omitempty"` +} + +func (x *ListFlagsResponse) Reset() { + *x = ListFlagsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFlagsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFlagsResponse) ProtoMessage() {} + +func (x *ListFlagsResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFlagsResponse.ProtoReflect.Descriptor instead. +func (*ListFlagsResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{40} +} + +func (x *ListFlagsResponse) GetFlag() []*Flag { + if x != nil { + return x.Flag + } + return nil +} + +type DeleteFlagRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteFlagRequest) Reset() { + *x = DeleteFlagRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFlagRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFlagRequest) ProtoMessage() {} + +func (x *DeleteFlagRequest) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFlagRequest.ProtoReflect.Descriptor instead. +func (*DeleteFlagRequest) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{41} +} + +func (x *DeleteFlagRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type DeleteFlagResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteFlagResponse) Reset() { + *x = DeleteFlagResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_demo_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFlagResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFlagResponse) ProtoMessage() {} + +func (x *DeleteFlagResponse) ProtoReflect() protoreflect.Message { + mi := &file_demo_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFlagResponse.ProtoReflect.Descriptor instead. +func (*DeleteFlagResponse) Descriptor() ([]byte, []int) { + return file_demo_proto_rawDescGZIP(), []int{42} +} + +var File_demo_proto protoreflect.FileDescriptor + +var file_demo_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x6f, 0x74, + 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x22, 0x45, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x51, 0x0a, + 0x0e, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, + 0x6f, 0x2e, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, + 0x22, 0x2b, 0x0a, 0x10, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x43, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x29, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, + 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x56, 0x0a, 0x1a, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x49, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x49, 0x64, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x2c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4d, + 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x63, 0x65, 0x55, 0x73, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x45, + 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, + 0x65, 0x6d, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x73, 0x22, 0x23, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x15, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x45, 0x0a, 0x16, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x22, 0x68, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x28, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x61, 0x72, 0x74, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3e, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, + 0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, + 0x79, 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x64, 0x22, 0x69, 0x0a, 0x10, 0x53, 0x68, + 0x69, 0x70, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x65, + 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x34, 0x0a, 0x11, 0x53, 0x68, 0x69, 0x70, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x07, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, + 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, + 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x7a, 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x7a, 0x69, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x58, 0x0a, + 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x75, + 0x6e, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x22, 0x47, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x73, + 0x22, 0x59, 0x0a, 0x19, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, + 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, + 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x0e, + 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, + 0x0a, 0x12, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x76, 0x76, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, + 0x64, 0x43, 0x76, 0x76, 0x12, 0x3d, 0x0a, 0x1b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, + 0x61, 0x72, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x79, + 0x65, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x59, + 0x65, 0x61, 0x72, 0x12, 0x3f, 0x0a, 0x1c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, + 0x72, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x6f, 0x6e, 0x74, 0x68, 0x22, 0x73, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, + 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, + 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x22, 0x37, 0x0a, 0x0e, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x22, 0x58, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x26, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x23, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, + 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x22, 0xf9, 0x01, 0x0a, + 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x68, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x54, + 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0d, 0x73, 0x68, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, + 0x79, 0x52, 0x0c, 0x73, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x73, 0x74, 0x12, + 0x3c, 0x0a, 0x10, 0x73, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0f, 0x73, 0x68, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x61, 0x0a, 0x1c, 0x53, 0x65, 0x6e, 0x64, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2b, + 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xcf, 0x01, 0x0a, 0x11, + 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, + 0x2b, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, + 0x6d, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, + 0x12, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x22, 0x2e, 0x0a, 0x09, 0x41, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4b, 0x65, 0x79, 0x73, + 0x22, 0x2c, 0x0a, 0x0a, 0x41, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, + 0x0a, 0x03, 0x61, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, + 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x03, 0x61, 0x64, 0x73, 0x22, 0x3b, + 0x0a, 0x02, 0x41, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x56, 0x0a, 0x04, 0x46, + 0x6c, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x22, 0x24, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x04, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x65, + 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, + 0x22, 0x63, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x38, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, + 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x66, + 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, + 0x41, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x37, 0x0a, 0x11, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x22, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x52, + 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x27, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, + 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x14, + 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xb8, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x18, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x07, + 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x74, 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, + 0x6d, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x0e, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x61, 0x72, + 0x74, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x09, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x43, 0x61, 0x72, 0x74, + 0x12, 0x1a, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x43, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x6f, + 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x32, + 0x7d, 0x0a, 0x15, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x64, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x24, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xf1, + 0x01, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, + 0x65, 0x6d, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1e, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0a, 0x47, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, + 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x1f, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x32, 0x9e, 0x01, 0x0a, 0x0f, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, + 0x74, 0x65, 0x12, 0x19, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x09, 0x53, + 0x68, 0x69, 0x70, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, + 0x65, 0x6d, 0x6f, 0x2e, 0x53, 0x68, 0x69, 0x70, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x53, 0x68, 0x69, 0x70, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x32, 0xab, 0x01, 0x0a, 0x0f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x69, 0x65, + 0x73, 0x12, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x28, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, + 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x6f, 0x74, 0x65, 0x6c, + 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, + 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x22, + 0x00, 0x32, 0x4f, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x17, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, + 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x32, 0x62, 0x0a, 0x0c, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x6f, 0x74, + 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x32, 0x5c, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, + 0x75, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x50, 0x6c, 0x61, + 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, + 0x6d, 0x6f, 0x2e, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x32, 0x42, 0x0a, 0x09, 0x41, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x35, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x41, 0x64, 0x73, 0x12, 0x13, 0x2e, 0x6f, 0x74, + 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x14, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xff, 0x02, 0x0a, 0x12, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x65, + 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x49, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, + 0x1b, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, + 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, + 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0a, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x65, + 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, + 0x6d, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1a, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x49, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1b, 0x2e, + 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, + 0x6c, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x65, + 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x67, 0x65, + 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_demo_proto_rawDescOnce sync.Once + file_demo_proto_rawDescData = file_demo_proto_rawDesc +) + +func file_demo_proto_rawDescGZIP() []byte { + file_demo_proto_rawDescOnce.Do(func() { + file_demo_proto_rawDescData = protoimpl.X.CompressGZIP(file_demo_proto_rawDescData) + }) + return file_demo_proto_rawDescData +} + +var file_demo_proto_msgTypes = make([]protoimpl.MessageInfo, 43) +var file_demo_proto_goTypes = []interface{}{ + (*CartItem)(nil), // 0: oteldemo.CartItem + (*AddItemRequest)(nil), // 1: oteldemo.AddItemRequest + (*EmptyCartRequest)(nil), // 2: oteldemo.EmptyCartRequest + (*GetCartRequest)(nil), // 3: oteldemo.GetCartRequest + (*Cart)(nil), // 4: oteldemo.Cart + (*Empty)(nil), // 5: oteldemo.Empty + (*ListRecommendationsRequest)(nil), // 6: oteldemo.ListRecommendationsRequest + (*ListRecommendationsResponse)(nil), // 7: oteldemo.ListRecommendationsResponse + (*Product)(nil), // 8: oteldemo.Product + (*ListProductsResponse)(nil), // 9: oteldemo.ListProductsResponse + (*GetProductRequest)(nil), // 10: oteldemo.GetProductRequest + (*SearchProductsRequest)(nil), // 11: oteldemo.SearchProductsRequest + (*SearchProductsResponse)(nil), // 12: oteldemo.SearchProductsResponse + (*GetQuoteRequest)(nil), // 13: oteldemo.GetQuoteRequest + (*GetQuoteResponse)(nil), // 14: oteldemo.GetQuoteResponse + (*ShipOrderRequest)(nil), // 15: oteldemo.ShipOrderRequest + (*ShipOrderResponse)(nil), // 16: oteldemo.ShipOrderResponse + (*Address)(nil), // 17: oteldemo.Address + (*Money)(nil), // 18: oteldemo.Money + (*GetSupportedCurrenciesResponse)(nil), // 19: oteldemo.GetSupportedCurrenciesResponse + (*CurrencyConversionRequest)(nil), // 20: oteldemo.CurrencyConversionRequest + (*CreditCardInfo)(nil), // 21: oteldemo.CreditCardInfo + (*ChargeRequest)(nil), // 22: oteldemo.ChargeRequest + (*ChargeResponse)(nil), // 23: oteldemo.ChargeResponse + (*OrderItem)(nil), // 24: oteldemo.OrderItem + (*OrderResult)(nil), // 25: oteldemo.OrderResult + (*SendOrderConfirmationRequest)(nil), // 26: oteldemo.SendOrderConfirmationRequest + (*PlaceOrderRequest)(nil), // 27: oteldemo.PlaceOrderRequest + (*PlaceOrderResponse)(nil), // 28: oteldemo.PlaceOrderResponse + (*AdRequest)(nil), // 29: oteldemo.AdRequest + (*AdResponse)(nil), // 30: oteldemo.AdResponse + (*Ad)(nil), // 31: oteldemo.Ad + (*Flag)(nil), // 32: oteldemo.Flag + (*GetFlagRequest)(nil), // 33: oteldemo.GetFlagRequest + (*GetFlagResponse)(nil), // 34: oteldemo.GetFlagResponse + (*CreateFlagRequest)(nil), // 35: oteldemo.CreateFlagRequest + (*CreateFlagResponse)(nil), // 36: oteldemo.CreateFlagResponse + (*UpdateFlagRequest)(nil), // 37: oteldemo.UpdateFlagRequest + (*UpdateFlagResponse)(nil), // 38: oteldemo.UpdateFlagResponse + (*ListFlagsRequest)(nil), // 39: oteldemo.ListFlagsRequest + (*ListFlagsResponse)(nil), // 40: oteldemo.ListFlagsResponse + (*DeleteFlagRequest)(nil), // 41: oteldemo.DeleteFlagRequest + (*DeleteFlagResponse)(nil), // 42: oteldemo.DeleteFlagResponse +} +var file_demo_proto_depIdxs = []int32{ + 0, // 0: oteldemo.AddItemRequest.item:type_name -> oteldemo.CartItem + 0, // 1: oteldemo.Cart.items:type_name -> oteldemo.CartItem + 18, // 2: oteldemo.Product.price_usd:type_name -> oteldemo.Money + 8, // 3: oteldemo.ListProductsResponse.products:type_name -> oteldemo.Product + 8, // 4: oteldemo.SearchProductsResponse.results:type_name -> oteldemo.Product + 17, // 5: oteldemo.GetQuoteRequest.address:type_name -> oteldemo.Address + 0, // 6: oteldemo.GetQuoteRequest.items:type_name -> oteldemo.CartItem + 18, // 7: oteldemo.GetQuoteResponse.cost_usd:type_name -> oteldemo.Money + 17, // 8: oteldemo.ShipOrderRequest.address:type_name -> oteldemo.Address + 0, // 9: oteldemo.ShipOrderRequest.items:type_name -> oteldemo.CartItem + 18, // 10: oteldemo.CurrencyConversionRequest.from:type_name -> oteldemo.Money + 18, // 11: oteldemo.ChargeRequest.amount:type_name -> oteldemo.Money + 21, // 12: oteldemo.ChargeRequest.credit_card:type_name -> oteldemo.CreditCardInfo + 0, // 13: oteldemo.OrderItem.item:type_name -> oteldemo.CartItem + 18, // 14: oteldemo.OrderItem.cost:type_name -> oteldemo.Money + 18, // 15: oteldemo.OrderResult.shipping_cost:type_name -> oteldemo.Money + 17, // 16: oteldemo.OrderResult.shipping_address:type_name -> oteldemo.Address + 24, // 17: oteldemo.OrderResult.items:type_name -> oteldemo.OrderItem + 25, // 18: oteldemo.SendOrderConfirmationRequest.order:type_name -> oteldemo.OrderResult + 17, // 19: oteldemo.PlaceOrderRequest.address:type_name -> oteldemo.Address + 21, // 20: oteldemo.PlaceOrderRequest.credit_card:type_name -> oteldemo.CreditCardInfo + 25, // 21: oteldemo.PlaceOrderResponse.order:type_name -> oteldemo.OrderResult + 31, // 22: oteldemo.AdResponse.ads:type_name -> oteldemo.Ad + 32, // 23: oteldemo.GetFlagResponse.flag:type_name -> oteldemo.Flag + 32, // 24: oteldemo.CreateFlagResponse.flag:type_name -> oteldemo.Flag + 32, // 25: oteldemo.ListFlagsResponse.flag:type_name -> oteldemo.Flag + 1, // 26: oteldemo.CartService.AddItem:input_type -> oteldemo.AddItemRequest + 3, // 27: oteldemo.CartService.GetCart:input_type -> oteldemo.GetCartRequest + 2, // 28: oteldemo.CartService.EmptyCart:input_type -> oteldemo.EmptyCartRequest + 6, // 29: oteldemo.RecommendationService.ListRecommendations:input_type -> oteldemo.ListRecommendationsRequest + 5, // 30: oteldemo.ProductCatalogService.ListProducts:input_type -> oteldemo.Empty + 10, // 31: oteldemo.ProductCatalogService.GetProduct:input_type -> oteldemo.GetProductRequest + 11, // 32: oteldemo.ProductCatalogService.SearchProducts:input_type -> oteldemo.SearchProductsRequest + 13, // 33: oteldemo.ShippingService.GetQuote:input_type -> oteldemo.GetQuoteRequest + 15, // 34: oteldemo.ShippingService.ShipOrder:input_type -> oteldemo.ShipOrderRequest + 5, // 35: oteldemo.CurrencyService.GetSupportedCurrencies:input_type -> oteldemo.Empty + 20, // 36: oteldemo.CurrencyService.Convert:input_type -> oteldemo.CurrencyConversionRequest + 22, // 37: oteldemo.PaymentService.Charge:input_type -> oteldemo.ChargeRequest + 26, // 38: oteldemo.EmailService.SendOrderConfirmation:input_type -> oteldemo.SendOrderConfirmationRequest + 27, // 39: oteldemo.CheckoutService.PlaceOrder:input_type -> oteldemo.PlaceOrderRequest + 29, // 40: oteldemo.AdService.GetAds:input_type -> oteldemo.AdRequest + 33, // 41: oteldemo.FeatureFlagService.GetFlag:input_type -> oteldemo.GetFlagRequest + 35, // 42: oteldemo.FeatureFlagService.CreateFlag:input_type -> oteldemo.CreateFlagRequest + 37, // 43: oteldemo.FeatureFlagService.UpdateFlag:input_type -> oteldemo.UpdateFlagRequest + 39, // 44: oteldemo.FeatureFlagService.ListFlags:input_type -> oteldemo.ListFlagsRequest + 41, // 45: oteldemo.FeatureFlagService.DeleteFlag:input_type -> oteldemo.DeleteFlagRequest + 5, // 46: oteldemo.CartService.AddItem:output_type -> oteldemo.Empty + 4, // 47: oteldemo.CartService.GetCart:output_type -> oteldemo.Cart + 5, // 48: oteldemo.CartService.EmptyCart:output_type -> oteldemo.Empty + 7, // 49: oteldemo.RecommendationService.ListRecommendations:output_type -> oteldemo.ListRecommendationsResponse + 9, // 50: oteldemo.ProductCatalogService.ListProducts:output_type -> oteldemo.ListProductsResponse + 8, // 51: oteldemo.ProductCatalogService.GetProduct:output_type -> oteldemo.Product + 12, // 52: oteldemo.ProductCatalogService.SearchProducts:output_type -> oteldemo.SearchProductsResponse + 14, // 53: oteldemo.ShippingService.GetQuote:output_type -> oteldemo.GetQuoteResponse + 16, // 54: oteldemo.ShippingService.ShipOrder:output_type -> oteldemo.ShipOrderResponse + 19, // 55: oteldemo.CurrencyService.GetSupportedCurrencies:output_type -> oteldemo.GetSupportedCurrenciesResponse + 18, // 56: oteldemo.CurrencyService.Convert:output_type -> oteldemo.Money + 23, // 57: oteldemo.PaymentService.Charge:output_type -> oteldemo.ChargeResponse + 5, // 58: oteldemo.EmailService.SendOrderConfirmation:output_type -> oteldemo.Empty + 28, // 59: oteldemo.CheckoutService.PlaceOrder:output_type -> oteldemo.PlaceOrderResponse + 30, // 60: oteldemo.AdService.GetAds:output_type -> oteldemo.AdResponse + 34, // 61: oteldemo.FeatureFlagService.GetFlag:output_type -> oteldemo.GetFlagResponse + 36, // 62: oteldemo.FeatureFlagService.CreateFlag:output_type -> oteldemo.CreateFlagResponse + 38, // 63: oteldemo.FeatureFlagService.UpdateFlag:output_type -> oteldemo.UpdateFlagResponse + 40, // 64: oteldemo.FeatureFlagService.ListFlags:output_type -> oteldemo.ListFlagsResponse + 42, // 65: oteldemo.FeatureFlagService.DeleteFlag:output_type -> oteldemo.DeleteFlagResponse + 46, // [46:66] is the sub-list for method output_type + 26, // [26:46] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name +} + +func init() { file_demo_proto_init() } +func file_demo_proto_init() { + if File_demo_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_demo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CartItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddItemRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EmptyCartRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCartRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Cart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Empty); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRecommendationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRecommendationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Product); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListProductsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetProductRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchProductsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchProductsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetQuoteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetQuoteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShipOrderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShipOrderResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Address); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Money); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSupportedCurrenciesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CurrencyConversionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreditCardInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChargeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendOrderConfirmationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlaceOrderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlaceOrderResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Ad); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Flag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFlagRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFlagResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFlagRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFlagResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFlagRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFlagResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFlagsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFlagsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteFlagRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_demo_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteFlagResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_demo_proto_rawDesc, + NumEnums: 0, + NumMessages: 43, + NumExtensions: 0, + NumServices: 10, + }, + GoTypes: file_demo_proto_goTypes, + DependencyIndexes: file_demo_proto_depIdxs, + MessageInfos: file_demo_proto_msgTypes, + }.Build() + File_demo_proto = out.File + file_demo_proto_rawDesc = nil + file_demo_proto_goTypes = nil + file_demo_proto_depIdxs = nil +} diff --git a/src/productcatalogservice/genproto/oteldemo/demo_grpc.pb.go b/src/productcatalogservice/genproto/oteldemo/demo_grpc.pb.go new file mode 100644 index 0000000000..b4478e6d21 --- /dev/null +++ b/src/productcatalogservice/genproto/oteldemo/demo_grpc.pb.go @@ -0,0 +1,1323 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.4.0 +// - protoc v4.24.4 +// source: demo.proto + +package oteldemo + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.62.0 or later. +const _ = grpc.SupportPackageIsVersion8 + +const ( + CartService_AddItem_FullMethodName = "/oteldemo.CartService/AddItem" + CartService_GetCart_FullMethodName = "/oteldemo.CartService/GetCart" + CartService_EmptyCart_FullMethodName = "/oteldemo.CartService/EmptyCart" +) + +// CartServiceClient is the client API for CartService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type CartServiceClient interface { + AddItem(ctx context.Context, in *AddItemRequest, opts ...grpc.CallOption) (*Empty, error) + GetCart(ctx context.Context, in *GetCartRequest, opts ...grpc.CallOption) (*Cart, error) + EmptyCart(ctx context.Context, in *EmptyCartRequest, opts ...grpc.CallOption) (*Empty, error) +} + +type cartServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewCartServiceClient(cc grpc.ClientConnInterface) CartServiceClient { + return &cartServiceClient{cc} +} + +func (c *cartServiceClient) AddItem(ctx context.Context, in *AddItemRequest, opts ...grpc.CallOption) (*Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Empty) + err := c.cc.Invoke(ctx, CartService_AddItem_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cartServiceClient) GetCart(ctx context.Context, in *GetCartRequest, opts ...grpc.CallOption) (*Cart, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Cart) + err := c.cc.Invoke(ctx, CartService_GetCart_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cartServiceClient) EmptyCart(ctx context.Context, in *EmptyCartRequest, opts ...grpc.CallOption) (*Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Empty) + err := c.cc.Invoke(ctx, CartService_EmptyCart_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CartServiceServer is the server API for CartService service. +// All implementations must embed UnimplementedCartServiceServer +// for forward compatibility +type CartServiceServer interface { + AddItem(context.Context, *AddItemRequest) (*Empty, error) + GetCart(context.Context, *GetCartRequest) (*Cart, error) + EmptyCart(context.Context, *EmptyCartRequest) (*Empty, error) + mustEmbedUnimplementedCartServiceServer() +} + +// UnimplementedCartServiceServer must be embedded to have forward compatible implementations. +type UnimplementedCartServiceServer struct { +} + +func (UnimplementedCartServiceServer) AddItem(context.Context, *AddItemRequest) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddItem not implemented") +} +func (UnimplementedCartServiceServer) GetCart(context.Context, *GetCartRequest) (*Cart, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCart not implemented") +} +func (UnimplementedCartServiceServer) EmptyCart(context.Context, *EmptyCartRequest) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method EmptyCart not implemented") +} +func (UnimplementedCartServiceServer) mustEmbedUnimplementedCartServiceServer() {} + +// UnsafeCartServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to CartServiceServer will +// result in compilation errors. +type UnsafeCartServiceServer interface { + mustEmbedUnimplementedCartServiceServer() +} + +func RegisterCartServiceServer(s grpc.ServiceRegistrar, srv CartServiceServer) { + s.RegisterService(&CartService_ServiceDesc, srv) +} + +func _CartService_AddItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddItemRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CartServiceServer).AddItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CartService_AddItem_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CartServiceServer).AddItem(ctx, req.(*AddItemRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CartService_GetCart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCartRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CartServiceServer).GetCart(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CartService_GetCart_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CartServiceServer).GetCart(ctx, req.(*GetCartRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CartService_EmptyCart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EmptyCartRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CartServiceServer).EmptyCart(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CartService_EmptyCart_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CartServiceServer).EmptyCart(ctx, req.(*EmptyCartRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// CartService_ServiceDesc is the grpc.ServiceDesc for CartService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CartService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.CartService", + HandlerType: (*CartServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "AddItem", + Handler: _CartService_AddItem_Handler, + }, + { + MethodName: "GetCart", + Handler: _CartService_GetCart_Handler, + }, + { + MethodName: "EmptyCart", + Handler: _CartService_EmptyCart_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + RecommendationService_ListRecommendations_FullMethodName = "/oteldemo.RecommendationService/ListRecommendations" +) + +// RecommendationServiceClient is the client API for RecommendationService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type RecommendationServiceClient interface { + ListRecommendations(ctx context.Context, in *ListRecommendationsRequest, opts ...grpc.CallOption) (*ListRecommendationsResponse, error) +} + +type recommendationServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewRecommendationServiceClient(cc grpc.ClientConnInterface) RecommendationServiceClient { + return &recommendationServiceClient{cc} +} + +func (c *recommendationServiceClient) ListRecommendations(ctx context.Context, in *ListRecommendationsRequest, opts ...grpc.CallOption) (*ListRecommendationsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListRecommendationsResponse) + err := c.cc.Invoke(ctx, RecommendationService_ListRecommendations_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RecommendationServiceServer is the server API for RecommendationService service. +// All implementations must embed UnimplementedRecommendationServiceServer +// for forward compatibility +type RecommendationServiceServer interface { + ListRecommendations(context.Context, *ListRecommendationsRequest) (*ListRecommendationsResponse, error) + mustEmbedUnimplementedRecommendationServiceServer() +} + +// UnimplementedRecommendationServiceServer must be embedded to have forward compatible implementations. +type UnimplementedRecommendationServiceServer struct { +} + +func (UnimplementedRecommendationServiceServer) ListRecommendations(context.Context, *ListRecommendationsRequest) (*ListRecommendationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRecommendations not implemented") +} +func (UnimplementedRecommendationServiceServer) mustEmbedUnimplementedRecommendationServiceServer() {} + +// UnsafeRecommendationServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to RecommendationServiceServer will +// result in compilation errors. +type UnsafeRecommendationServiceServer interface { + mustEmbedUnimplementedRecommendationServiceServer() +} + +func RegisterRecommendationServiceServer(s grpc.ServiceRegistrar, srv RecommendationServiceServer) { + s.RegisterService(&RecommendationService_ServiceDesc, srv) +} + +func _RecommendationService_ListRecommendations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRecommendationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RecommendationServiceServer).ListRecommendations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RecommendationService_ListRecommendations_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RecommendationServiceServer).ListRecommendations(ctx, req.(*ListRecommendationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// RecommendationService_ServiceDesc is the grpc.ServiceDesc for RecommendationService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var RecommendationService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.RecommendationService", + HandlerType: (*RecommendationServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListRecommendations", + Handler: _RecommendationService_ListRecommendations_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + ProductCatalogService_ListProducts_FullMethodName = "/oteldemo.ProductCatalogService/ListProducts" + ProductCatalogService_GetProduct_FullMethodName = "/oteldemo.ProductCatalogService/GetProduct" + ProductCatalogService_SearchProducts_FullMethodName = "/oteldemo.ProductCatalogService/SearchProducts" +) + +// ProductCatalogServiceClient is the client API for ProductCatalogService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ProductCatalogServiceClient interface { + ListProducts(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListProductsResponse, error) + GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) + SearchProducts(ctx context.Context, in *SearchProductsRequest, opts ...grpc.CallOption) (*SearchProductsResponse, error) +} + +type productCatalogServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewProductCatalogServiceClient(cc grpc.ClientConnInterface) ProductCatalogServiceClient { + return &productCatalogServiceClient{cc} +} + +func (c *productCatalogServiceClient) ListProducts(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListProductsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListProductsResponse) + err := c.cc.Invoke(ctx, ProductCatalogService_ListProducts_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *productCatalogServiceClient) GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Product) + err := c.cc.Invoke(ctx, ProductCatalogService_GetProduct_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *productCatalogServiceClient) SearchProducts(ctx context.Context, in *SearchProductsRequest, opts ...grpc.CallOption) (*SearchProductsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(SearchProductsResponse) + err := c.cc.Invoke(ctx, ProductCatalogService_SearchProducts_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ProductCatalogServiceServer is the server API for ProductCatalogService service. +// All implementations must embed UnimplementedProductCatalogServiceServer +// for forward compatibility +type ProductCatalogServiceServer interface { + ListProducts(context.Context, *Empty) (*ListProductsResponse, error) + GetProduct(context.Context, *GetProductRequest) (*Product, error) + SearchProducts(context.Context, *SearchProductsRequest) (*SearchProductsResponse, error) + mustEmbedUnimplementedProductCatalogServiceServer() +} + +// UnimplementedProductCatalogServiceServer must be embedded to have forward compatible implementations. +type UnimplementedProductCatalogServiceServer struct { +} + +func (UnimplementedProductCatalogServiceServer) ListProducts(context.Context, *Empty) (*ListProductsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListProducts not implemented") +} +func (UnimplementedProductCatalogServiceServer) GetProduct(context.Context, *GetProductRequest) (*Product, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetProduct not implemented") +} +func (UnimplementedProductCatalogServiceServer) SearchProducts(context.Context, *SearchProductsRequest) (*SearchProductsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchProducts not implemented") +} +func (UnimplementedProductCatalogServiceServer) mustEmbedUnimplementedProductCatalogServiceServer() {} + +// UnsafeProductCatalogServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ProductCatalogServiceServer will +// result in compilation errors. +type UnsafeProductCatalogServiceServer interface { + mustEmbedUnimplementedProductCatalogServiceServer() +} + +func RegisterProductCatalogServiceServer(s grpc.ServiceRegistrar, srv ProductCatalogServiceServer) { + s.RegisterService(&ProductCatalogService_ServiceDesc, srv) +} + +func _ProductCatalogService_ListProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProductCatalogServiceServer).ListProducts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProductCatalogService_ListProducts_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProductCatalogServiceServer).ListProducts(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _ProductCatalogService_GetProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetProductRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProductCatalogServiceServer).GetProduct(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProductCatalogService_GetProduct_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProductCatalogServiceServer).GetProduct(ctx, req.(*GetProductRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ProductCatalogService_SearchProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchProductsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProductCatalogServiceServer).SearchProducts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProductCatalogService_SearchProducts_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProductCatalogServiceServer).SearchProducts(ctx, req.(*SearchProductsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// ProductCatalogService_ServiceDesc is the grpc.ServiceDesc for ProductCatalogService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ProductCatalogService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.ProductCatalogService", + HandlerType: (*ProductCatalogServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListProducts", + Handler: _ProductCatalogService_ListProducts_Handler, + }, + { + MethodName: "GetProduct", + Handler: _ProductCatalogService_GetProduct_Handler, + }, + { + MethodName: "SearchProducts", + Handler: _ProductCatalogService_SearchProducts_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + ShippingService_GetQuote_FullMethodName = "/oteldemo.ShippingService/GetQuote" + ShippingService_ShipOrder_FullMethodName = "/oteldemo.ShippingService/ShipOrder" +) + +// ShippingServiceClient is the client API for ShippingService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ShippingServiceClient interface { + GetQuote(ctx context.Context, in *GetQuoteRequest, opts ...grpc.CallOption) (*GetQuoteResponse, error) + ShipOrder(ctx context.Context, in *ShipOrderRequest, opts ...grpc.CallOption) (*ShipOrderResponse, error) +} + +type shippingServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewShippingServiceClient(cc grpc.ClientConnInterface) ShippingServiceClient { + return &shippingServiceClient{cc} +} + +func (c *shippingServiceClient) GetQuote(ctx context.Context, in *GetQuoteRequest, opts ...grpc.CallOption) (*GetQuoteResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetQuoteResponse) + err := c.cc.Invoke(ctx, ShippingService_GetQuote_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *shippingServiceClient) ShipOrder(ctx context.Context, in *ShipOrderRequest, opts ...grpc.CallOption) (*ShipOrderResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ShipOrderResponse) + err := c.cc.Invoke(ctx, ShippingService_ShipOrder_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ShippingServiceServer is the server API for ShippingService service. +// All implementations must embed UnimplementedShippingServiceServer +// for forward compatibility +type ShippingServiceServer interface { + GetQuote(context.Context, *GetQuoteRequest) (*GetQuoteResponse, error) + ShipOrder(context.Context, *ShipOrderRequest) (*ShipOrderResponse, error) + mustEmbedUnimplementedShippingServiceServer() +} + +// UnimplementedShippingServiceServer must be embedded to have forward compatible implementations. +type UnimplementedShippingServiceServer struct { +} + +func (UnimplementedShippingServiceServer) GetQuote(context.Context, *GetQuoteRequest) (*GetQuoteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetQuote not implemented") +} +func (UnimplementedShippingServiceServer) ShipOrder(context.Context, *ShipOrderRequest) (*ShipOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShipOrder not implemented") +} +func (UnimplementedShippingServiceServer) mustEmbedUnimplementedShippingServiceServer() {} + +// UnsafeShippingServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ShippingServiceServer will +// result in compilation errors. +type UnsafeShippingServiceServer interface { + mustEmbedUnimplementedShippingServiceServer() +} + +func RegisterShippingServiceServer(s grpc.ServiceRegistrar, srv ShippingServiceServer) { + s.RegisterService(&ShippingService_ServiceDesc, srv) +} + +func _ShippingService_GetQuote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetQuoteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ShippingServiceServer).GetQuote(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ShippingService_GetQuote_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ShippingServiceServer).GetQuote(ctx, req.(*GetQuoteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ShippingService_ShipOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ShipOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ShippingServiceServer).ShipOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ShippingService_ShipOrder_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ShippingServiceServer).ShipOrder(ctx, req.(*ShipOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// ShippingService_ServiceDesc is the grpc.ServiceDesc for ShippingService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ShippingService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.ShippingService", + HandlerType: (*ShippingServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetQuote", + Handler: _ShippingService_GetQuote_Handler, + }, + { + MethodName: "ShipOrder", + Handler: _ShippingService_ShipOrder_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + CurrencyService_GetSupportedCurrencies_FullMethodName = "/oteldemo.CurrencyService/GetSupportedCurrencies" + CurrencyService_Convert_FullMethodName = "/oteldemo.CurrencyService/Convert" +) + +// CurrencyServiceClient is the client API for CurrencyService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type CurrencyServiceClient interface { + GetSupportedCurrencies(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetSupportedCurrenciesResponse, error) + Convert(ctx context.Context, in *CurrencyConversionRequest, opts ...grpc.CallOption) (*Money, error) +} + +type currencyServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewCurrencyServiceClient(cc grpc.ClientConnInterface) CurrencyServiceClient { + return ¤cyServiceClient{cc} +} + +func (c *currencyServiceClient) GetSupportedCurrencies(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetSupportedCurrenciesResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetSupportedCurrenciesResponse) + err := c.cc.Invoke(ctx, CurrencyService_GetSupportedCurrencies_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *currencyServiceClient) Convert(ctx context.Context, in *CurrencyConversionRequest, opts ...grpc.CallOption) (*Money, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Money) + err := c.cc.Invoke(ctx, CurrencyService_Convert_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CurrencyServiceServer is the server API for CurrencyService service. +// All implementations must embed UnimplementedCurrencyServiceServer +// for forward compatibility +type CurrencyServiceServer interface { + GetSupportedCurrencies(context.Context, *Empty) (*GetSupportedCurrenciesResponse, error) + Convert(context.Context, *CurrencyConversionRequest) (*Money, error) + mustEmbedUnimplementedCurrencyServiceServer() +} + +// UnimplementedCurrencyServiceServer must be embedded to have forward compatible implementations. +type UnimplementedCurrencyServiceServer struct { +} + +func (UnimplementedCurrencyServiceServer) GetSupportedCurrencies(context.Context, *Empty) (*GetSupportedCurrenciesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSupportedCurrencies not implemented") +} +func (UnimplementedCurrencyServiceServer) Convert(context.Context, *CurrencyConversionRequest) (*Money, error) { + return nil, status.Errorf(codes.Unimplemented, "method Convert not implemented") +} +func (UnimplementedCurrencyServiceServer) mustEmbedUnimplementedCurrencyServiceServer() {} + +// UnsafeCurrencyServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to CurrencyServiceServer will +// result in compilation errors. +type UnsafeCurrencyServiceServer interface { + mustEmbedUnimplementedCurrencyServiceServer() +} + +func RegisterCurrencyServiceServer(s grpc.ServiceRegistrar, srv CurrencyServiceServer) { + s.RegisterService(&CurrencyService_ServiceDesc, srv) +} + +func _CurrencyService_GetSupportedCurrencies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CurrencyServiceServer).GetSupportedCurrencies(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CurrencyService_GetSupportedCurrencies_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CurrencyServiceServer).GetSupportedCurrencies(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _CurrencyService_Convert_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CurrencyConversionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CurrencyServiceServer).Convert(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CurrencyService_Convert_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CurrencyServiceServer).Convert(ctx, req.(*CurrencyConversionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// CurrencyService_ServiceDesc is the grpc.ServiceDesc for CurrencyService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CurrencyService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.CurrencyService", + HandlerType: (*CurrencyServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetSupportedCurrencies", + Handler: _CurrencyService_GetSupportedCurrencies_Handler, + }, + { + MethodName: "Convert", + Handler: _CurrencyService_Convert_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + PaymentService_Charge_FullMethodName = "/oteldemo.PaymentService/Charge" +) + +// PaymentServiceClient is the client API for PaymentService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type PaymentServiceClient interface { + Charge(ctx context.Context, in *ChargeRequest, opts ...grpc.CallOption) (*ChargeResponse, error) +} + +type paymentServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewPaymentServiceClient(cc grpc.ClientConnInterface) PaymentServiceClient { + return &paymentServiceClient{cc} +} + +func (c *paymentServiceClient) Charge(ctx context.Context, in *ChargeRequest, opts ...grpc.CallOption) (*ChargeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ChargeResponse) + err := c.cc.Invoke(ctx, PaymentService_Charge_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// PaymentServiceServer is the server API for PaymentService service. +// All implementations must embed UnimplementedPaymentServiceServer +// for forward compatibility +type PaymentServiceServer interface { + Charge(context.Context, *ChargeRequest) (*ChargeResponse, error) + mustEmbedUnimplementedPaymentServiceServer() +} + +// UnimplementedPaymentServiceServer must be embedded to have forward compatible implementations. +type UnimplementedPaymentServiceServer struct { +} + +func (UnimplementedPaymentServiceServer) Charge(context.Context, *ChargeRequest) (*ChargeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Charge not implemented") +} +func (UnimplementedPaymentServiceServer) mustEmbedUnimplementedPaymentServiceServer() {} + +// UnsafePaymentServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to PaymentServiceServer will +// result in compilation errors. +type UnsafePaymentServiceServer interface { + mustEmbedUnimplementedPaymentServiceServer() +} + +func RegisterPaymentServiceServer(s grpc.ServiceRegistrar, srv PaymentServiceServer) { + s.RegisterService(&PaymentService_ServiceDesc, srv) +} + +func _PaymentService_Charge_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ChargeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PaymentServiceServer).Charge(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PaymentService_Charge_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PaymentServiceServer).Charge(ctx, req.(*ChargeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// PaymentService_ServiceDesc is the grpc.ServiceDesc for PaymentService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var PaymentService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.PaymentService", + HandlerType: (*PaymentServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Charge", + Handler: _PaymentService_Charge_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + EmailService_SendOrderConfirmation_FullMethodName = "/oteldemo.EmailService/SendOrderConfirmation" +) + +// EmailServiceClient is the client API for EmailService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type EmailServiceClient interface { + SendOrderConfirmation(ctx context.Context, in *SendOrderConfirmationRequest, opts ...grpc.CallOption) (*Empty, error) +} + +type emailServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewEmailServiceClient(cc grpc.ClientConnInterface) EmailServiceClient { + return &emailServiceClient{cc} +} + +func (c *emailServiceClient) SendOrderConfirmation(ctx context.Context, in *SendOrderConfirmationRequest, opts ...grpc.CallOption) (*Empty, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Empty) + err := c.cc.Invoke(ctx, EmailService_SendOrderConfirmation_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// EmailServiceServer is the server API for EmailService service. +// All implementations must embed UnimplementedEmailServiceServer +// for forward compatibility +type EmailServiceServer interface { + SendOrderConfirmation(context.Context, *SendOrderConfirmationRequest) (*Empty, error) + mustEmbedUnimplementedEmailServiceServer() +} + +// UnimplementedEmailServiceServer must be embedded to have forward compatible implementations. +type UnimplementedEmailServiceServer struct { +} + +func (UnimplementedEmailServiceServer) SendOrderConfirmation(context.Context, *SendOrderConfirmationRequest) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendOrderConfirmation not implemented") +} +func (UnimplementedEmailServiceServer) mustEmbedUnimplementedEmailServiceServer() {} + +// UnsafeEmailServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to EmailServiceServer will +// result in compilation errors. +type UnsafeEmailServiceServer interface { + mustEmbedUnimplementedEmailServiceServer() +} + +func RegisterEmailServiceServer(s grpc.ServiceRegistrar, srv EmailServiceServer) { + s.RegisterService(&EmailService_ServiceDesc, srv) +} + +func _EmailService_SendOrderConfirmation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendOrderConfirmationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EmailServiceServer).SendOrderConfirmation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EmailService_SendOrderConfirmation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EmailServiceServer).SendOrderConfirmation(ctx, req.(*SendOrderConfirmationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// EmailService_ServiceDesc is the grpc.ServiceDesc for EmailService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var EmailService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.EmailService", + HandlerType: (*EmailServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "SendOrderConfirmation", + Handler: _EmailService_SendOrderConfirmation_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + CheckoutService_PlaceOrder_FullMethodName = "/oteldemo.CheckoutService/PlaceOrder" +) + +// CheckoutServiceClient is the client API for CheckoutService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type CheckoutServiceClient interface { + PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) +} + +type checkoutServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewCheckoutServiceClient(cc grpc.ClientConnInterface) CheckoutServiceClient { + return &checkoutServiceClient{cc} +} + +func (c *checkoutServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(PlaceOrderResponse) + err := c.cc.Invoke(ctx, CheckoutService_PlaceOrder_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CheckoutServiceServer is the server API for CheckoutService service. +// All implementations must embed UnimplementedCheckoutServiceServer +// for forward compatibility +type CheckoutServiceServer interface { + PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error) + mustEmbedUnimplementedCheckoutServiceServer() +} + +// UnimplementedCheckoutServiceServer must be embedded to have forward compatible implementations. +type UnimplementedCheckoutServiceServer struct { +} + +func (UnimplementedCheckoutServiceServer) PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PlaceOrder not implemented") +} +func (UnimplementedCheckoutServiceServer) mustEmbedUnimplementedCheckoutServiceServer() {} + +// UnsafeCheckoutServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to CheckoutServiceServer will +// result in compilation errors. +type UnsafeCheckoutServiceServer interface { + mustEmbedUnimplementedCheckoutServiceServer() +} + +func RegisterCheckoutServiceServer(s grpc.ServiceRegistrar, srv CheckoutServiceServer) { + s.RegisterService(&CheckoutService_ServiceDesc, srv) +} + +func _CheckoutService_PlaceOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PlaceOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CheckoutServiceServer).PlaceOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CheckoutService_PlaceOrder_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CheckoutServiceServer).PlaceOrder(ctx, req.(*PlaceOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// CheckoutService_ServiceDesc is the grpc.ServiceDesc for CheckoutService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CheckoutService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.CheckoutService", + HandlerType: (*CheckoutServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "PlaceOrder", + Handler: _CheckoutService_PlaceOrder_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + AdService_GetAds_FullMethodName = "/oteldemo.AdService/GetAds" +) + +// AdServiceClient is the client API for AdService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type AdServiceClient interface { + GetAds(ctx context.Context, in *AdRequest, opts ...grpc.CallOption) (*AdResponse, error) +} + +type adServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewAdServiceClient(cc grpc.ClientConnInterface) AdServiceClient { + return &adServiceClient{cc} +} + +func (c *adServiceClient) GetAds(ctx context.Context, in *AdRequest, opts ...grpc.CallOption) (*AdResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(AdResponse) + err := c.cc.Invoke(ctx, AdService_GetAds_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AdServiceServer is the server API for AdService service. +// All implementations must embed UnimplementedAdServiceServer +// for forward compatibility +type AdServiceServer interface { + GetAds(context.Context, *AdRequest) (*AdResponse, error) + mustEmbedUnimplementedAdServiceServer() +} + +// UnimplementedAdServiceServer must be embedded to have forward compatible implementations. +type UnimplementedAdServiceServer struct { +} + +func (UnimplementedAdServiceServer) GetAds(context.Context, *AdRequest) (*AdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAds not implemented") +} +func (UnimplementedAdServiceServer) mustEmbedUnimplementedAdServiceServer() {} + +// UnsafeAdServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to AdServiceServer will +// result in compilation errors. +type UnsafeAdServiceServer interface { + mustEmbedUnimplementedAdServiceServer() +} + +func RegisterAdServiceServer(s grpc.ServiceRegistrar, srv AdServiceServer) { + s.RegisterService(&AdService_ServiceDesc, srv) +} + +func _AdService_GetAds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdServiceServer).GetAds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AdService_GetAds_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdServiceServer).GetAds(ctx, req.(*AdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// AdService_ServiceDesc is the grpc.ServiceDesc for AdService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var AdService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.AdService", + HandlerType: (*AdServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAds", + Handler: _AdService_GetAds_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +const ( + FeatureFlagService_GetFlag_FullMethodName = "/oteldemo.FeatureFlagService/GetFlag" + FeatureFlagService_CreateFlag_FullMethodName = "/oteldemo.FeatureFlagService/CreateFlag" + FeatureFlagService_UpdateFlag_FullMethodName = "/oteldemo.FeatureFlagService/UpdateFlag" + FeatureFlagService_ListFlags_FullMethodName = "/oteldemo.FeatureFlagService/ListFlags" + FeatureFlagService_DeleteFlag_FullMethodName = "/oteldemo.FeatureFlagService/DeleteFlag" +) + +// FeatureFlagServiceClient is the client API for FeatureFlagService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type FeatureFlagServiceClient interface { + GetFlag(ctx context.Context, in *GetFlagRequest, opts ...grpc.CallOption) (*GetFlagResponse, error) + CreateFlag(ctx context.Context, in *CreateFlagRequest, opts ...grpc.CallOption) (*CreateFlagResponse, error) + UpdateFlag(ctx context.Context, in *UpdateFlagRequest, opts ...grpc.CallOption) (*UpdateFlagResponse, error) + ListFlags(ctx context.Context, in *ListFlagsRequest, opts ...grpc.CallOption) (*ListFlagsResponse, error) + DeleteFlag(ctx context.Context, in *DeleteFlagRequest, opts ...grpc.CallOption) (*DeleteFlagResponse, error) +} + +type featureFlagServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewFeatureFlagServiceClient(cc grpc.ClientConnInterface) FeatureFlagServiceClient { + return &featureFlagServiceClient{cc} +} + +func (c *featureFlagServiceClient) GetFlag(ctx context.Context, in *GetFlagRequest, opts ...grpc.CallOption) (*GetFlagResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetFlagResponse) + err := c.cc.Invoke(ctx, FeatureFlagService_GetFlag_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureFlagServiceClient) CreateFlag(ctx context.Context, in *CreateFlagRequest, opts ...grpc.CallOption) (*CreateFlagResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(CreateFlagResponse) + err := c.cc.Invoke(ctx, FeatureFlagService_CreateFlag_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureFlagServiceClient) UpdateFlag(ctx context.Context, in *UpdateFlagRequest, opts ...grpc.CallOption) (*UpdateFlagResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(UpdateFlagResponse) + err := c.cc.Invoke(ctx, FeatureFlagService_UpdateFlag_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureFlagServiceClient) ListFlags(ctx context.Context, in *ListFlagsRequest, opts ...grpc.CallOption) (*ListFlagsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListFlagsResponse) + err := c.cc.Invoke(ctx, FeatureFlagService_ListFlags_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureFlagServiceClient) DeleteFlag(ctx context.Context, in *DeleteFlagRequest, opts ...grpc.CallOption) (*DeleteFlagResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DeleteFlagResponse) + err := c.cc.Invoke(ctx, FeatureFlagService_DeleteFlag_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FeatureFlagServiceServer is the server API for FeatureFlagService service. +// All implementations must embed UnimplementedFeatureFlagServiceServer +// for forward compatibility +type FeatureFlagServiceServer interface { + GetFlag(context.Context, *GetFlagRequest) (*GetFlagResponse, error) + CreateFlag(context.Context, *CreateFlagRequest) (*CreateFlagResponse, error) + UpdateFlag(context.Context, *UpdateFlagRequest) (*UpdateFlagResponse, error) + ListFlags(context.Context, *ListFlagsRequest) (*ListFlagsResponse, error) + DeleteFlag(context.Context, *DeleteFlagRequest) (*DeleteFlagResponse, error) + mustEmbedUnimplementedFeatureFlagServiceServer() +} + +// UnimplementedFeatureFlagServiceServer must be embedded to have forward compatible implementations. +type UnimplementedFeatureFlagServiceServer struct { +} + +func (UnimplementedFeatureFlagServiceServer) GetFlag(context.Context, *GetFlagRequest) (*GetFlagResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFlag not implemented") +} +func (UnimplementedFeatureFlagServiceServer) CreateFlag(context.Context, *CreateFlagRequest) (*CreateFlagResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateFlag not implemented") +} +func (UnimplementedFeatureFlagServiceServer) UpdateFlag(context.Context, *UpdateFlagRequest) (*UpdateFlagResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateFlag not implemented") +} +func (UnimplementedFeatureFlagServiceServer) ListFlags(context.Context, *ListFlagsRequest) (*ListFlagsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFlags not implemented") +} +func (UnimplementedFeatureFlagServiceServer) DeleteFlag(context.Context, *DeleteFlagRequest) (*DeleteFlagResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteFlag not implemented") +} +func (UnimplementedFeatureFlagServiceServer) mustEmbedUnimplementedFeatureFlagServiceServer() {} + +// UnsafeFeatureFlagServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to FeatureFlagServiceServer will +// result in compilation errors. +type UnsafeFeatureFlagServiceServer interface { + mustEmbedUnimplementedFeatureFlagServiceServer() +} + +func RegisterFeatureFlagServiceServer(s grpc.ServiceRegistrar, srv FeatureFlagServiceServer) { + s.RegisterService(&FeatureFlagService_ServiceDesc, srv) +} + +func _FeatureFlagService_GetFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFlagRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureFlagServiceServer).GetFlag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FeatureFlagService_GetFlag_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureFlagServiceServer).GetFlag(ctx, req.(*GetFlagRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureFlagService_CreateFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateFlagRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureFlagServiceServer).CreateFlag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FeatureFlagService_CreateFlag_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureFlagServiceServer).CreateFlag(ctx, req.(*CreateFlagRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureFlagService_UpdateFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateFlagRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureFlagServiceServer).UpdateFlag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FeatureFlagService_UpdateFlag_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureFlagServiceServer).UpdateFlag(ctx, req.(*UpdateFlagRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureFlagService_ListFlags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFlagsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureFlagServiceServer).ListFlags(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FeatureFlagService_ListFlags_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureFlagServiceServer).ListFlags(ctx, req.(*ListFlagsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureFlagService_DeleteFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteFlagRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureFlagServiceServer).DeleteFlag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FeatureFlagService_DeleteFlag_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureFlagServiceServer).DeleteFlag(ctx, req.(*DeleteFlagRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// FeatureFlagService_ServiceDesc is the grpc.ServiceDesc for FeatureFlagService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var FeatureFlagService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "oteldemo.FeatureFlagService", + HandlerType: (*FeatureFlagServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetFlag", + Handler: _FeatureFlagService_GetFlag_Handler, + }, + { + MethodName: "CreateFlag", + Handler: _FeatureFlagService_CreateFlag_Handler, + }, + { + MethodName: "UpdateFlag", + Handler: _FeatureFlagService_UpdateFlag_Handler, + }, + { + MethodName: "ListFlags", + Handler: _FeatureFlagService_ListFlags_Handler, + }, + { + MethodName: "DeleteFlag", + Handler: _FeatureFlagService_DeleteFlag_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} diff --git a/src/recommendationservice/Dockerfile b/src/recommendationservice/Dockerfile index 8e02f42662..5a4ee45fc0 100644 --- a/src/recommendationservice/Dockerfile +++ b/src/recommendationservice/Dockerfile @@ -18,23 +18,12 @@ COPY ./src/recommendationservice/requirements.txt ./ RUN pip install --upgrade pip RUN pip install --prefix="/reqs" -r requirements.txt -# -# Build gRPC files -# -FROM base AS grpc-builder -WORKDIR /usr/src/app/ -COPY ./pb/ ./proto/ - -RUN python -m pip install grpcio-tools==1.59.2 -RUN python -m grpc_tools.protoc -I=./proto/ --python_out=./ --grpc_python_out=./ ./proto/demo.proto - # # Runtime # FROM base AS runtime WORKDIR /usr/src/app/ COPY --from=builder /reqs /usr/local -COPY --from=grpc-builder /usr/src/app/ . COPY ./src/recommendationservice/ ./ RUN opentelemetry-bootstrap -a install diff --git a/src/recommendationservice/README.md b/src/recommendationservice/README.md index e2d9a38899..cf6e386aaa 100644 --- a/src/recommendationservice/README.md +++ b/src/recommendationservice/README.md @@ -5,12 +5,10 @@ selected product. ## Local Build -To build the protos, run: +To build the protos, run from the root directory: ```sh -pip install -r requirements.txt -python -m pip install grpcio-tools==1.48.2 -python -m grpc_tools.protoc -I=../pb/ --python_out=./ --grpc_python_out=./ ../pb/demo.proto +make docker-generate-protobuf ``` ## Docker Build diff --git a/src/recommendationservice/demo_pb2.py b/src/recommendationservice/demo_pb2.py new file mode 100644 index 0000000000..119dfb9842 --- /dev/null +++ b/src/recommendationservice/demo_pb2.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: demo.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\ndemo.proto\x12\x08oteldemo\"0\n\x08\x43\x61rtItem\x12\x12\n\nproduct_id\x18\x01 \x01(\t\x12\x10\n\x08quantity\x18\x02 \x01(\x05\"C\n\x0e\x41\x64\x64ItemRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12 \n\x04item\x18\x02 \x01(\x0b\x32\x12.oteldemo.CartItem\"#\n\x10\x45mptyCartRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\"!\n\x0eGetCartRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\":\n\x04\x43\x61rt\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12!\n\x05items\x18\x02 \x03(\x0b\x32\x12.oteldemo.CartItem\"\x07\n\x05\x45mpty\"B\n\x1aListRecommendationsRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x13\n\x0bproduct_ids\x18\x02 \x03(\t\"2\n\x1bListRecommendationsResponse\x12\x13\n\x0bproduct_ids\x18\x01 \x03(\t\"\x81\x01\n\x07Product\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0f\n\x07picture\x18\x04 \x01(\t\x12\"\n\tprice_usd\x18\x05 \x01(\x0b\x32\x0f.oteldemo.Money\x12\x12\n\ncategories\x18\x06 \x03(\t\";\n\x14ListProductsResponse\x12#\n\x08products\x18\x01 \x03(\x0b\x32\x11.oteldemo.Product\"\x1f\n\x11GetProductRequest\x12\n\n\x02id\x18\x01 \x01(\t\"&\n\x15SearchProductsRequest\x12\r\n\x05query\x18\x01 \x01(\t\"<\n\x16SearchProductsResponse\x12\"\n\x07results\x18\x01 \x03(\x0b\x32\x11.oteldemo.Product\"X\n\x0fGetQuoteRequest\x12\"\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x11.oteldemo.Address\x12!\n\x05items\x18\x02 \x03(\x0b\x32\x12.oteldemo.CartItem\"5\n\x10GetQuoteResponse\x12!\n\x08\x63ost_usd\x18\x01 \x01(\x0b\x32\x0f.oteldemo.Money\"Y\n\x10ShipOrderRequest\x12\"\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x11.oteldemo.Address\x12!\n\x05items\x18\x02 \x03(\x0b\x32\x12.oteldemo.CartItem\"(\n\x11ShipOrderResponse\x12\x13\n\x0btracking_id\x18\x01 \x01(\t\"a\n\x07\x41\x64\x64ress\x12\x16\n\x0estreet_address\x18\x01 \x01(\t\x12\x0c\n\x04\x63ity\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\t\x12\x0f\n\x07\x63ountry\x18\x04 \x01(\t\x12\x10\n\x08zip_code\x18\x05 \x01(\t\"<\n\x05Money\x12\x15\n\rcurrency_code\x18\x01 \x01(\t\x12\r\n\x05units\x18\x02 \x01(\x03\x12\r\n\x05nanos\x18\x03 \x01(\x05\"8\n\x1eGetSupportedCurrenciesResponse\x12\x16\n\x0e\x63urrency_codes\x18\x01 \x03(\t\"K\n\x19\x43urrencyConversionRequest\x12\x1d\n\x04\x66rom\x18\x01 \x01(\x0b\x32\x0f.oteldemo.Money\x12\x0f\n\x07to_code\x18\x02 \x01(\t\"\x90\x01\n\x0e\x43reditCardInfo\x12\x1a\n\x12\x63redit_card_number\x18\x01 \x01(\t\x12\x17\n\x0f\x63redit_card_cvv\x18\x02 \x01(\x05\x12#\n\x1b\x63redit_card_expiration_year\x18\x03 \x01(\x05\x12$\n\x1c\x63redit_card_expiration_month\x18\x04 \x01(\x05\"_\n\rChargeRequest\x12\x1f\n\x06\x61mount\x18\x01 \x01(\x0b\x32\x0f.oteldemo.Money\x12-\n\x0b\x63redit_card\x18\x02 \x01(\x0b\x32\x18.oteldemo.CreditCardInfo\"(\n\x0e\x43hargeResponse\x12\x16\n\x0etransaction_id\x18\x01 \x01(\t\"L\n\tOrderItem\x12 \n\x04item\x18\x01 \x01(\x0b\x32\x12.oteldemo.CartItem\x12\x1d\n\x04\x63ost\x18\x02 \x01(\x0b\x32\x0f.oteldemo.Money\"\xb6\x01\n\x0bOrderResult\x12\x10\n\x08order_id\x18\x01 \x01(\t\x12\x1c\n\x14shipping_tracking_id\x18\x02 \x01(\t\x12&\n\rshipping_cost\x18\x03 \x01(\x0b\x32\x0f.oteldemo.Money\x12+\n\x10shipping_address\x18\x04 \x01(\x0b\x32\x11.oteldemo.Address\x12\"\n\x05items\x18\x05 \x03(\x0b\x32\x13.oteldemo.OrderItem\"S\n\x1cSendOrderConfirmationRequest\x12\r\n\x05\x65mail\x18\x01 \x01(\t\x12$\n\x05order\x18\x02 \x01(\x0b\x32\x15.oteldemo.OrderResult\"\x9d\x01\n\x11PlaceOrderRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x15\n\ruser_currency\x18\x02 \x01(\t\x12\"\n\x07\x61\x64\x64ress\x18\x03 \x01(\x0b\x32\x11.oteldemo.Address\x12\r\n\x05\x65mail\x18\x05 \x01(\t\x12-\n\x0b\x63redit_card\x18\x06 \x01(\x0b\x32\x18.oteldemo.CreditCardInfo\":\n\x12PlaceOrderResponse\x12$\n\x05order\x18\x01 \x01(\x0b\x32\x15.oteldemo.OrderResult\"!\n\tAdRequest\x12\x14\n\x0c\x63ontext_keys\x18\x01 \x03(\t\"\'\n\nAdResponse\x12\x19\n\x03\x61\x64s\x18\x01 \x03(\x0b\x32\x0c.oteldemo.Ad\"(\n\x02\x41\x64\x12\x14\n\x0credirect_url\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\":\n\x04\x46lag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x03 \x01(\x08\"\x1e\n\x0eGetFlagRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"/\n\x0fGetFlagResponse\x12\x1c\n\x04\x66lag\x18\x01 \x01(\x0b\x32\x0e.oteldemo.Flag\"G\n\x11\x43reateFlagRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x03 \x01(\x08\"2\n\x12\x43reateFlagResponse\x12\x1c\n\x04\x66lag\x18\x01 \x01(\x0b\x32\x0e.oteldemo.Flag\"2\n\x11UpdateFlagRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\"\x14\n\x12UpdateFlagResponse\"\x12\n\x10ListFlagsRequest\"1\n\x11ListFlagsResponse\x12\x1c\n\x04\x66lag\x18\x01 \x03(\x0b\x32\x0e.oteldemo.Flag\"!\n\x11\x44\x65leteFlagRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x14\n\x12\x44\x65leteFlagResponse2\xb8\x01\n\x0b\x43\x61rtService\x12\x36\n\x07\x41\x64\x64Item\x12\x18.oteldemo.AddItemRequest\x1a\x0f.oteldemo.Empty\"\x00\x12\x35\n\x07GetCart\x12\x18.oteldemo.GetCartRequest\x1a\x0e.oteldemo.Cart\"\x00\x12:\n\tEmptyCart\x12\x1a.oteldemo.EmptyCartRequest\x1a\x0f.oteldemo.Empty\"\x00\x32}\n\x15RecommendationService\x12\x64\n\x13ListRecommendations\x12$.oteldemo.ListRecommendationsRequest\x1a%.oteldemo.ListRecommendationsResponse\"\x00\x32\xf1\x01\n\x15ProductCatalogService\x12\x41\n\x0cListProducts\x12\x0f.oteldemo.Empty\x1a\x1e.oteldemo.ListProductsResponse\"\x00\x12>\n\nGetProduct\x12\x1b.oteldemo.GetProductRequest\x1a\x11.oteldemo.Product\"\x00\x12U\n\x0eSearchProducts\x12\x1f.oteldemo.SearchProductsRequest\x1a .oteldemo.SearchProductsResponse\"\x00\x32\x9e\x01\n\x0fShippingService\x12\x43\n\x08GetQuote\x12\x19.oteldemo.GetQuoteRequest\x1a\x1a.oteldemo.GetQuoteResponse\"\x00\x12\x46\n\tShipOrder\x12\x1a.oteldemo.ShipOrderRequest\x1a\x1b.oteldemo.ShipOrderResponse\"\x00\x32\xab\x01\n\x0f\x43urrencyService\x12U\n\x16GetSupportedCurrencies\x12\x0f.oteldemo.Empty\x1a(.oteldemo.GetSupportedCurrenciesResponse\"\x00\x12\x41\n\x07\x43onvert\x12#.oteldemo.CurrencyConversionRequest\x1a\x0f.oteldemo.Money\"\x00\x32O\n\x0ePaymentService\x12=\n\x06\x43harge\x12\x17.oteldemo.ChargeRequest\x1a\x18.oteldemo.ChargeResponse\"\x00\x32\x62\n\x0c\x45mailService\x12R\n\x15SendOrderConfirmation\x12&.oteldemo.SendOrderConfirmationRequest\x1a\x0f.oteldemo.Empty\"\x00\x32\\\n\x0f\x43heckoutService\x12I\n\nPlaceOrder\x12\x1b.oteldemo.PlaceOrderRequest\x1a\x1c.oteldemo.PlaceOrderResponse\"\x00\x32\x42\n\tAdService\x12\x35\n\x06GetAds\x12\x13.oteldemo.AdRequest\x1a\x14.oteldemo.AdResponse\"\x00\x32\xff\x02\n\x12\x46\x65\x61tureFlagService\x12@\n\x07GetFlag\x12\x18.oteldemo.GetFlagRequest\x1a\x19.oteldemo.GetFlagResponse\"\x00\x12I\n\nCreateFlag\x12\x1b.oteldemo.CreateFlagRequest\x1a\x1c.oteldemo.CreateFlagResponse\"\x00\x12I\n\nUpdateFlag\x12\x1b.oteldemo.UpdateFlagRequest\x1a\x1c.oteldemo.UpdateFlagResponse\"\x00\x12\x46\n\tListFlags\x12\x1a.oteldemo.ListFlagsRequest\x1a\x1b.oteldemo.ListFlagsResponse\"\x00\x12I\n\nDeleteFlag\x12\x1b.oteldemo.DeleteFlagRequest\x1a\x1c.oteldemo.DeleteFlagResponse\"\x00\x42\x13Z\x11genproto/oteldemob\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'demo_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'Z\021genproto/oteldemo' + _globals['_CARTITEM']._serialized_start=24 + _globals['_CARTITEM']._serialized_end=72 + _globals['_ADDITEMREQUEST']._serialized_start=74 + _globals['_ADDITEMREQUEST']._serialized_end=141 + _globals['_EMPTYCARTREQUEST']._serialized_start=143 + _globals['_EMPTYCARTREQUEST']._serialized_end=178 + _globals['_GETCARTREQUEST']._serialized_start=180 + _globals['_GETCARTREQUEST']._serialized_end=213 + _globals['_CART']._serialized_start=215 + _globals['_CART']._serialized_end=273 + _globals['_EMPTY']._serialized_start=275 + _globals['_EMPTY']._serialized_end=282 + _globals['_LISTRECOMMENDATIONSREQUEST']._serialized_start=284 + _globals['_LISTRECOMMENDATIONSREQUEST']._serialized_end=350 + _globals['_LISTRECOMMENDATIONSRESPONSE']._serialized_start=352 + _globals['_LISTRECOMMENDATIONSRESPONSE']._serialized_end=402 + _globals['_PRODUCT']._serialized_start=405 + _globals['_PRODUCT']._serialized_end=534 + _globals['_LISTPRODUCTSRESPONSE']._serialized_start=536 + _globals['_LISTPRODUCTSRESPONSE']._serialized_end=595 + _globals['_GETPRODUCTREQUEST']._serialized_start=597 + _globals['_GETPRODUCTREQUEST']._serialized_end=628 + _globals['_SEARCHPRODUCTSREQUEST']._serialized_start=630 + _globals['_SEARCHPRODUCTSREQUEST']._serialized_end=668 + _globals['_SEARCHPRODUCTSRESPONSE']._serialized_start=670 + _globals['_SEARCHPRODUCTSRESPONSE']._serialized_end=730 + _globals['_GETQUOTEREQUEST']._serialized_start=732 + _globals['_GETQUOTEREQUEST']._serialized_end=820 + _globals['_GETQUOTERESPONSE']._serialized_start=822 + _globals['_GETQUOTERESPONSE']._serialized_end=875 + _globals['_SHIPORDERREQUEST']._serialized_start=877 + _globals['_SHIPORDERREQUEST']._serialized_end=966 + _globals['_SHIPORDERRESPONSE']._serialized_start=968 + _globals['_SHIPORDERRESPONSE']._serialized_end=1008 + _globals['_ADDRESS']._serialized_start=1010 + _globals['_ADDRESS']._serialized_end=1107 + _globals['_MONEY']._serialized_start=1109 + _globals['_MONEY']._serialized_end=1169 + _globals['_GETSUPPORTEDCURRENCIESRESPONSE']._serialized_start=1171 + _globals['_GETSUPPORTEDCURRENCIESRESPONSE']._serialized_end=1227 + _globals['_CURRENCYCONVERSIONREQUEST']._serialized_start=1229 + _globals['_CURRENCYCONVERSIONREQUEST']._serialized_end=1304 + _globals['_CREDITCARDINFO']._serialized_start=1307 + _globals['_CREDITCARDINFO']._serialized_end=1451 + _globals['_CHARGEREQUEST']._serialized_start=1453 + _globals['_CHARGEREQUEST']._serialized_end=1548 + _globals['_CHARGERESPONSE']._serialized_start=1550 + _globals['_CHARGERESPONSE']._serialized_end=1590 + _globals['_ORDERITEM']._serialized_start=1592 + _globals['_ORDERITEM']._serialized_end=1668 + _globals['_ORDERRESULT']._serialized_start=1671 + _globals['_ORDERRESULT']._serialized_end=1853 + _globals['_SENDORDERCONFIRMATIONREQUEST']._serialized_start=1855 + _globals['_SENDORDERCONFIRMATIONREQUEST']._serialized_end=1938 + _globals['_PLACEORDERREQUEST']._serialized_start=1941 + _globals['_PLACEORDERREQUEST']._serialized_end=2098 + _globals['_PLACEORDERRESPONSE']._serialized_start=2100 + _globals['_PLACEORDERRESPONSE']._serialized_end=2158 + _globals['_ADREQUEST']._serialized_start=2160 + _globals['_ADREQUEST']._serialized_end=2193 + _globals['_ADRESPONSE']._serialized_start=2195 + _globals['_ADRESPONSE']._serialized_end=2234 + _globals['_AD']._serialized_start=2236 + _globals['_AD']._serialized_end=2276 + _globals['_FLAG']._serialized_start=2278 + _globals['_FLAG']._serialized_end=2336 + _globals['_GETFLAGREQUEST']._serialized_start=2338 + _globals['_GETFLAGREQUEST']._serialized_end=2368 + _globals['_GETFLAGRESPONSE']._serialized_start=2370 + _globals['_GETFLAGRESPONSE']._serialized_end=2417 + _globals['_CREATEFLAGREQUEST']._serialized_start=2419 + _globals['_CREATEFLAGREQUEST']._serialized_end=2490 + _globals['_CREATEFLAGRESPONSE']._serialized_start=2492 + _globals['_CREATEFLAGRESPONSE']._serialized_end=2542 + _globals['_UPDATEFLAGREQUEST']._serialized_start=2544 + _globals['_UPDATEFLAGREQUEST']._serialized_end=2594 + _globals['_UPDATEFLAGRESPONSE']._serialized_start=2596 + _globals['_UPDATEFLAGRESPONSE']._serialized_end=2616 + _globals['_LISTFLAGSREQUEST']._serialized_start=2618 + _globals['_LISTFLAGSREQUEST']._serialized_end=2636 + _globals['_LISTFLAGSRESPONSE']._serialized_start=2638 + _globals['_LISTFLAGSRESPONSE']._serialized_end=2687 + _globals['_DELETEFLAGREQUEST']._serialized_start=2689 + _globals['_DELETEFLAGREQUEST']._serialized_end=2722 + _globals['_DELETEFLAGRESPONSE']._serialized_start=2724 + _globals['_DELETEFLAGRESPONSE']._serialized_end=2744 + _globals['_CARTSERVICE']._serialized_start=2747 + _globals['_CARTSERVICE']._serialized_end=2931 + _globals['_RECOMMENDATIONSERVICE']._serialized_start=2933 + _globals['_RECOMMENDATIONSERVICE']._serialized_end=3058 + _globals['_PRODUCTCATALOGSERVICE']._serialized_start=3061 + _globals['_PRODUCTCATALOGSERVICE']._serialized_end=3302 + _globals['_SHIPPINGSERVICE']._serialized_start=3305 + _globals['_SHIPPINGSERVICE']._serialized_end=3463 + _globals['_CURRENCYSERVICE']._serialized_start=3466 + _globals['_CURRENCYSERVICE']._serialized_end=3637 + _globals['_PAYMENTSERVICE']._serialized_start=3639 + _globals['_PAYMENTSERVICE']._serialized_end=3718 + _globals['_EMAILSERVICE']._serialized_start=3720 + _globals['_EMAILSERVICE']._serialized_end=3818 + _globals['_CHECKOUTSERVICE']._serialized_start=3820 + _globals['_CHECKOUTSERVICE']._serialized_end=3912 + _globals['_ADSERVICE']._serialized_start=3914 + _globals['_ADSERVICE']._serialized_end=3980 + _globals['_FEATUREFLAGSERVICE']._serialized_start=3983 + _globals['_FEATUREFLAGSERVICE']._serialized_end=4366 +# @@protoc_insertion_point(module_scope) diff --git a/src/recommendationservice/demo_pb2_grpc.py b/src/recommendationservice/demo_pb2_grpc.py new file mode 100644 index 0000000000..cb7c9e7140 --- /dev/null +++ b/src/recommendationservice/demo_pb2_grpc.py @@ -0,0 +1,1005 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +import demo_pb2 as demo__pb2 + + +class CartServiceStub(object): + """-----------------Cart service----------------- + + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.AddItem = channel.unary_unary( + '/oteldemo.CartService/AddItem', + request_serializer=demo__pb2.AddItemRequest.SerializeToString, + response_deserializer=demo__pb2.Empty.FromString, + ) + self.GetCart = channel.unary_unary( + '/oteldemo.CartService/GetCart', + request_serializer=demo__pb2.GetCartRequest.SerializeToString, + response_deserializer=demo__pb2.Cart.FromString, + ) + self.EmptyCart = channel.unary_unary( + '/oteldemo.CartService/EmptyCart', + request_serializer=demo__pb2.EmptyCartRequest.SerializeToString, + response_deserializer=demo__pb2.Empty.FromString, + ) + + +class CartServiceServicer(object): + """-----------------Cart service----------------- + + """ + + def AddItem(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetCart(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def EmptyCart(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CartServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'AddItem': grpc.unary_unary_rpc_method_handler( + servicer.AddItem, + request_deserializer=demo__pb2.AddItemRequest.FromString, + response_serializer=demo__pb2.Empty.SerializeToString, + ), + 'GetCart': grpc.unary_unary_rpc_method_handler( + servicer.GetCart, + request_deserializer=demo__pb2.GetCartRequest.FromString, + response_serializer=demo__pb2.Cart.SerializeToString, + ), + 'EmptyCart': grpc.unary_unary_rpc_method_handler( + servicer.EmptyCart, + request_deserializer=demo__pb2.EmptyCartRequest.FromString, + response_serializer=demo__pb2.Empty.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'oteldemo.CartService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CartService(object): + """-----------------Cart service----------------- + + """ + + @staticmethod + def AddItem(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.CartService/AddItem', + demo__pb2.AddItemRequest.SerializeToString, + demo__pb2.Empty.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetCart(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.CartService/GetCart', + demo__pb2.GetCartRequest.SerializeToString, + demo__pb2.Cart.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def EmptyCart(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.CartService/EmptyCart', + demo__pb2.EmptyCartRequest.SerializeToString, + demo__pb2.Empty.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + +class RecommendationServiceStub(object): + """---------------Recommendation service---------- + + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.ListRecommendations = channel.unary_unary( + '/oteldemo.RecommendationService/ListRecommendations', + request_serializer=demo__pb2.ListRecommendationsRequest.SerializeToString, + response_deserializer=demo__pb2.ListRecommendationsResponse.FromString, + ) + + +class RecommendationServiceServicer(object): + """---------------Recommendation service---------- + + """ + + def ListRecommendations(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_RecommendationServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'ListRecommendations': grpc.unary_unary_rpc_method_handler( + servicer.ListRecommendations, + request_deserializer=demo__pb2.ListRecommendationsRequest.FromString, + response_serializer=demo__pb2.ListRecommendationsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'oteldemo.RecommendationService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class RecommendationService(object): + """---------------Recommendation service---------- + + """ + + @staticmethod + def ListRecommendations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.RecommendationService/ListRecommendations', + demo__pb2.ListRecommendationsRequest.SerializeToString, + demo__pb2.ListRecommendationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + +class ProductCatalogServiceStub(object): + """---------------Product Catalog---------------- + + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.ListProducts = channel.unary_unary( + '/oteldemo.ProductCatalogService/ListProducts', + request_serializer=demo__pb2.Empty.SerializeToString, + response_deserializer=demo__pb2.ListProductsResponse.FromString, + ) + self.GetProduct = channel.unary_unary( + '/oteldemo.ProductCatalogService/GetProduct', + request_serializer=demo__pb2.GetProductRequest.SerializeToString, + response_deserializer=demo__pb2.Product.FromString, + ) + self.SearchProducts = channel.unary_unary( + '/oteldemo.ProductCatalogService/SearchProducts', + request_serializer=demo__pb2.SearchProductsRequest.SerializeToString, + response_deserializer=demo__pb2.SearchProductsResponse.FromString, + ) + + +class ProductCatalogServiceServicer(object): + """---------------Product Catalog---------------- + + """ + + def ListProducts(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetProduct(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SearchProducts(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ProductCatalogServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'ListProducts': grpc.unary_unary_rpc_method_handler( + servicer.ListProducts, + request_deserializer=demo__pb2.Empty.FromString, + response_serializer=demo__pb2.ListProductsResponse.SerializeToString, + ), + 'GetProduct': grpc.unary_unary_rpc_method_handler( + servicer.GetProduct, + request_deserializer=demo__pb2.GetProductRequest.FromString, + response_serializer=demo__pb2.Product.SerializeToString, + ), + 'SearchProducts': grpc.unary_unary_rpc_method_handler( + servicer.SearchProducts, + request_deserializer=demo__pb2.SearchProductsRequest.FromString, + response_serializer=demo__pb2.SearchProductsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'oteldemo.ProductCatalogService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ProductCatalogService(object): + """---------------Product Catalog---------------- + + """ + + @staticmethod + def ListProducts(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.ProductCatalogService/ListProducts', + demo__pb2.Empty.SerializeToString, + demo__pb2.ListProductsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetProduct(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.ProductCatalogService/GetProduct', + demo__pb2.GetProductRequest.SerializeToString, + demo__pb2.Product.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SearchProducts(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.ProductCatalogService/SearchProducts', + demo__pb2.SearchProductsRequest.SerializeToString, + demo__pb2.SearchProductsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + +class ShippingServiceStub(object): + """---------------Shipping Service---------- + + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetQuote = channel.unary_unary( + '/oteldemo.ShippingService/GetQuote', + request_serializer=demo__pb2.GetQuoteRequest.SerializeToString, + response_deserializer=demo__pb2.GetQuoteResponse.FromString, + ) + self.ShipOrder = channel.unary_unary( + '/oteldemo.ShippingService/ShipOrder', + request_serializer=demo__pb2.ShipOrderRequest.SerializeToString, + response_deserializer=demo__pb2.ShipOrderResponse.FromString, + ) + + +class ShippingServiceServicer(object): + """---------------Shipping Service---------- + + """ + + def GetQuote(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ShipOrder(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ShippingServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetQuote': grpc.unary_unary_rpc_method_handler( + servicer.GetQuote, + request_deserializer=demo__pb2.GetQuoteRequest.FromString, + response_serializer=demo__pb2.GetQuoteResponse.SerializeToString, + ), + 'ShipOrder': grpc.unary_unary_rpc_method_handler( + servicer.ShipOrder, + request_deserializer=demo__pb2.ShipOrderRequest.FromString, + response_serializer=demo__pb2.ShipOrderResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'oteldemo.ShippingService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ShippingService(object): + """---------------Shipping Service---------- + + """ + + @staticmethod + def GetQuote(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.ShippingService/GetQuote', + demo__pb2.GetQuoteRequest.SerializeToString, + demo__pb2.GetQuoteResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ShipOrder(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.ShippingService/ShipOrder', + demo__pb2.ShipOrderRequest.SerializeToString, + demo__pb2.ShipOrderResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + +class CurrencyServiceStub(object): + """-----------------Currency service----------------- + + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetSupportedCurrencies = channel.unary_unary( + '/oteldemo.CurrencyService/GetSupportedCurrencies', + request_serializer=demo__pb2.Empty.SerializeToString, + response_deserializer=demo__pb2.GetSupportedCurrenciesResponse.FromString, + ) + self.Convert = channel.unary_unary( + '/oteldemo.CurrencyService/Convert', + request_serializer=demo__pb2.CurrencyConversionRequest.SerializeToString, + response_deserializer=demo__pb2.Money.FromString, + ) + + +class CurrencyServiceServicer(object): + """-----------------Currency service----------------- + + """ + + def GetSupportedCurrencies(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Convert(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CurrencyServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetSupportedCurrencies': grpc.unary_unary_rpc_method_handler( + servicer.GetSupportedCurrencies, + request_deserializer=demo__pb2.Empty.FromString, + response_serializer=demo__pb2.GetSupportedCurrenciesResponse.SerializeToString, + ), + 'Convert': grpc.unary_unary_rpc_method_handler( + servicer.Convert, + request_deserializer=demo__pb2.CurrencyConversionRequest.FromString, + response_serializer=demo__pb2.Money.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'oteldemo.CurrencyService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CurrencyService(object): + """-----------------Currency service----------------- + + """ + + @staticmethod + def GetSupportedCurrencies(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.CurrencyService/GetSupportedCurrencies', + demo__pb2.Empty.SerializeToString, + demo__pb2.GetSupportedCurrenciesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Convert(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.CurrencyService/Convert', + demo__pb2.CurrencyConversionRequest.SerializeToString, + demo__pb2.Money.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + +class PaymentServiceStub(object): + """-------------Payment service----------------- + + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Charge = channel.unary_unary( + '/oteldemo.PaymentService/Charge', + request_serializer=demo__pb2.ChargeRequest.SerializeToString, + response_deserializer=demo__pb2.ChargeResponse.FromString, + ) + + +class PaymentServiceServicer(object): + """-------------Payment service----------------- + + """ + + def Charge(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_PaymentServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Charge': grpc.unary_unary_rpc_method_handler( + servicer.Charge, + request_deserializer=demo__pb2.ChargeRequest.FromString, + response_serializer=demo__pb2.ChargeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'oteldemo.PaymentService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class PaymentService(object): + """-------------Payment service----------------- + + """ + + @staticmethod + def Charge(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.PaymentService/Charge', + demo__pb2.ChargeRequest.SerializeToString, + demo__pb2.ChargeResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + +class EmailServiceStub(object): + """-------------Email service----------------- + + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.SendOrderConfirmation = channel.unary_unary( + '/oteldemo.EmailService/SendOrderConfirmation', + request_serializer=demo__pb2.SendOrderConfirmationRequest.SerializeToString, + response_deserializer=demo__pb2.Empty.FromString, + ) + + +class EmailServiceServicer(object): + """-------------Email service----------------- + + """ + + def SendOrderConfirmation(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_EmailServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'SendOrderConfirmation': grpc.unary_unary_rpc_method_handler( + servicer.SendOrderConfirmation, + request_deserializer=demo__pb2.SendOrderConfirmationRequest.FromString, + response_serializer=demo__pb2.Empty.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'oteldemo.EmailService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class EmailService(object): + """-------------Email service----------------- + + """ + + @staticmethod + def SendOrderConfirmation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.EmailService/SendOrderConfirmation', + demo__pb2.SendOrderConfirmationRequest.SerializeToString, + demo__pb2.Empty.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + +class CheckoutServiceStub(object): + """-------------Checkout service----------------- + + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.PlaceOrder = channel.unary_unary( + '/oteldemo.CheckoutService/PlaceOrder', + request_serializer=demo__pb2.PlaceOrderRequest.SerializeToString, + response_deserializer=demo__pb2.PlaceOrderResponse.FromString, + ) + + +class CheckoutServiceServicer(object): + """-------------Checkout service----------------- + + """ + + def PlaceOrder(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CheckoutServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'PlaceOrder': grpc.unary_unary_rpc_method_handler( + servicer.PlaceOrder, + request_deserializer=demo__pb2.PlaceOrderRequest.FromString, + response_serializer=demo__pb2.PlaceOrderResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'oteldemo.CheckoutService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CheckoutService(object): + """-------------Checkout service----------------- + + """ + + @staticmethod + def PlaceOrder(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.CheckoutService/PlaceOrder', + demo__pb2.PlaceOrderRequest.SerializeToString, + demo__pb2.PlaceOrderResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + +class AdServiceStub(object): + """------------Ad service------------------ + + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAds = channel.unary_unary( + '/oteldemo.AdService/GetAds', + request_serializer=demo__pb2.AdRequest.SerializeToString, + response_deserializer=demo__pb2.AdResponse.FromString, + ) + + +class AdServiceServicer(object): + """------------Ad service------------------ + + """ + + def GetAds(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAds': grpc.unary_unary_rpc_method_handler( + servicer.GetAds, + request_deserializer=demo__pb2.AdRequest.FromString, + response_serializer=demo__pb2.AdResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'oteldemo.AdService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdService(object): + """------------Ad service------------------ + + """ + + @staticmethod + def GetAds(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.AdService/GetAds', + demo__pb2.AdRequest.SerializeToString, + demo__pb2.AdResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + +class FeatureFlagServiceStub(object): + """------------Feature flag service------------------ + + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetFlag = channel.unary_unary( + '/oteldemo.FeatureFlagService/GetFlag', + request_serializer=demo__pb2.GetFlagRequest.SerializeToString, + response_deserializer=demo__pb2.GetFlagResponse.FromString, + ) + self.CreateFlag = channel.unary_unary( + '/oteldemo.FeatureFlagService/CreateFlag', + request_serializer=demo__pb2.CreateFlagRequest.SerializeToString, + response_deserializer=demo__pb2.CreateFlagResponse.FromString, + ) + self.UpdateFlag = channel.unary_unary( + '/oteldemo.FeatureFlagService/UpdateFlag', + request_serializer=demo__pb2.UpdateFlagRequest.SerializeToString, + response_deserializer=demo__pb2.UpdateFlagResponse.FromString, + ) + self.ListFlags = channel.unary_unary( + '/oteldemo.FeatureFlagService/ListFlags', + request_serializer=demo__pb2.ListFlagsRequest.SerializeToString, + response_deserializer=demo__pb2.ListFlagsResponse.FromString, + ) + self.DeleteFlag = channel.unary_unary( + '/oteldemo.FeatureFlagService/DeleteFlag', + request_serializer=demo__pb2.DeleteFlagRequest.SerializeToString, + response_deserializer=demo__pb2.DeleteFlagResponse.FromString, + ) + + +class FeatureFlagServiceServicer(object): + """------------Feature flag service------------------ + + """ + + def GetFlag(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateFlag(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateFlag(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListFlags(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteFlag(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_FeatureFlagServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetFlag': grpc.unary_unary_rpc_method_handler( + servicer.GetFlag, + request_deserializer=demo__pb2.GetFlagRequest.FromString, + response_serializer=demo__pb2.GetFlagResponse.SerializeToString, + ), + 'CreateFlag': grpc.unary_unary_rpc_method_handler( + servicer.CreateFlag, + request_deserializer=demo__pb2.CreateFlagRequest.FromString, + response_serializer=demo__pb2.CreateFlagResponse.SerializeToString, + ), + 'UpdateFlag': grpc.unary_unary_rpc_method_handler( + servicer.UpdateFlag, + request_deserializer=demo__pb2.UpdateFlagRequest.FromString, + response_serializer=demo__pb2.UpdateFlagResponse.SerializeToString, + ), + 'ListFlags': grpc.unary_unary_rpc_method_handler( + servicer.ListFlags, + request_deserializer=demo__pb2.ListFlagsRequest.FromString, + response_serializer=demo__pb2.ListFlagsResponse.SerializeToString, + ), + 'DeleteFlag': grpc.unary_unary_rpc_method_handler( + servicer.DeleteFlag, + request_deserializer=demo__pb2.DeleteFlagRequest.FromString, + response_serializer=demo__pb2.DeleteFlagResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'oteldemo.FeatureFlagService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class FeatureFlagService(object): + """------------Feature flag service------------------ + + """ + + @staticmethod + def GetFlag(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.FeatureFlagService/GetFlag', + demo__pb2.GetFlagRequest.SerializeToString, + demo__pb2.GetFlagResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateFlag(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.FeatureFlagService/CreateFlag', + demo__pb2.CreateFlagRequest.SerializeToString, + demo__pb2.CreateFlagResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateFlag(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.FeatureFlagService/UpdateFlag', + demo__pb2.UpdateFlagRequest.SerializeToString, + demo__pb2.UpdateFlagResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListFlags(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.FeatureFlagService/ListFlags', + demo__pb2.ListFlagsRequest.SerializeToString, + demo__pb2.ListFlagsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeleteFlag(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/oteldemo.FeatureFlagService/DeleteFlag', + demo__pb2.DeleteFlagRequest.SerializeToString, + demo__pb2.DeleteFlagResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/src/recommendationservice/genproto/Dockerfile b/src/recommendationservice/genproto/Dockerfile new file mode 100644 index 0000000000..ad9b646694 --- /dev/null +++ b/src/recommendationservice/genproto/Dockerfile @@ -0,0 +1,8 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +FROM python:3.12-slim-bookworm + +WORKDIR /build + +RUN python -m pip install grpcio-tools==1.59.2 From 544e1e50f6301715637d0efda7eb8707538138da Mon Sep 17 00:00:00 2001 From: Charlie Le <3375195+CharlieTLe@users.noreply.github.com> Date: Sun, 1 Dec 2024 02:41:39 -0800 Subject: [PATCH 015/178] Setup dependabot for go dependencies (#1754) --- .github/dependabot.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index dc3fd6c4aa..7b52d100f8 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,3 +8,12 @@ updates: interval: "daily" labels: - "infra" + - package-ecosystem: "gomod" + directories: + - "/src/checkoutservice" + - "/src/productcatalogservice" + groups: + go-production-dependencies: + dependency-type: "production" + schedule: + interval: "daily" From 551792a83139c30234497e2a51a513a2014c330e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 22:07:02 +0100 Subject: [PATCH 016/178] build(deps): bump the go-production-dependencies group across 2 directories with 16 updates (#1802) * build(deps): bump the go-production-dependencies group across 2 directories with 16 updates Bumps the go-production-dependencies group with 6 updates in the /src/checkoutservice directory: | Package | From | To | | --- | --- | --- | | [github.com/IBM/sarama](https://github.com/IBM/sarama) | `1.43.2` | `1.43.3` | | [github.com/open-feature/go-sdk](https://github.com/open-feature/go-sdk) | `1.12.0` | `1.13.1` | | [github.com/open-feature/go-sdk-contrib/hooks/open-telemetry](https://github.com/open-feature/go-sdk-contrib) | `0.3.2` | `0.3.4` | | [github.com/open-feature/go-sdk-contrib/providers/flagd](https://github.com/open-feature/go-sdk-contrib) | `0.2.1` | `0.2.3` | | [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.52.0` | `0.57.0` | | [google.golang.org/grpc/cmd/protoc-gen-go-grpc](https://github.com/grpc/grpc-go) | `1.4.0` | `1.5.1` | Bumps the go-production-dependencies group with 5 updates in the /src/productcatalogservice directory: | Package | From | To | | --- | --- | --- | | [github.com/open-feature/go-sdk](https://github.com/open-feature/go-sdk) | `1.12.0` | `1.13.1` | | [github.com/open-feature/go-sdk-contrib/hooks/open-telemetry](https://github.com/open-feature/go-sdk-contrib) | `0.3.2` | `0.3.4` | | [github.com/open-feature/go-sdk-contrib/providers/flagd](https://github.com/open-feature/go-sdk-contrib) | `0.2.1` | `0.2.3` | | [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.52.0` | `0.57.0` | | [google.golang.org/grpc/cmd/protoc-gen-go-grpc](https://github.com/grpc/grpc-go) | `1.4.0` | `1.5.1` | Updates `github.com/IBM/sarama` from 1.43.2 to 1.43.3 - [Release notes](https://github.com/IBM/sarama/releases) - [Changelog](https://github.com/IBM/sarama/blob/main/CHANGELOG.md) - [Commits](https://github.com/IBM/sarama/compare/v1.43.2...v1.43.3) Updates `github.com/open-feature/go-sdk` from 1.12.0 to 1.13.1 - [Release notes](https://github.com/open-feature/go-sdk/releases) - [Changelog](https://github.com/open-feature/go-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/go-sdk/compare/v1.12.0...v1.13.1) Updates `github.com/open-feature/go-sdk-contrib/hooks/open-telemetry` from 0.3.2 to 0.3.4 - [Release notes](https://github.com/open-feature/go-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/go-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/go-sdk-contrib/compare/hooks/open-telemetry/v0.3.2...hooks/open-telemetry/v0.3.4) Updates `github.com/open-feature/go-sdk-contrib/providers/flagd` from 0.2.1 to 0.2.3 - [Release notes](https://github.com/open-feature/go-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/go-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/go-sdk-contrib/compare/providers/flagd/v0.2.1...providers/flagd/v0.2.3) Updates `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` from 0.52.0 to 0.53.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.52.0...zpages/v0.53.0) Updates `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` from 0.52.0 to 0.53.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.52.0...zpages/v0.53.0) Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.52.0 to 0.57.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.52.0...zpages/v0.57.0) Updates `go.opentelemetry.io/otel` from 1.27.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.32.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.27.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.31.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.27.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.31.0) Updates `go.opentelemetry.io/otel/sdk` from 1.27.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.32.0) Updates `go.opentelemetry.io/otel/sdk/metric` from 1.27.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.32.0) Updates `go.opentelemetry.io/otel/trace` from 1.27.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.32.0) Updates `google.golang.org/grpc` from 1.64.0 to 1.67.1 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.64.0...v1.67.1) Updates `google.golang.org/grpc/cmd/protoc-gen-go-grpc` from 1.4.0 to 1.5.1 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.4.0...v1.5.1) Updates `google.golang.org/protobuf` from 1.34.1 to 1.35.1 Updates `github.com/open-feature/go-sdk` from 1.12.0 to 1.13.1 - [Release notes](https://github.com/open-feature/go-sdk/releases) - [Changelog](https://github.com/open-feature/go-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/go-sdk/compare/v1.12.0...v1.13.1) Updates `github.com/open-feature/go-sdk-contrib/hooks/open-telemetry` from 0.3.2 to 0.3.4 - [Release notes](https://github.com/open-feature/go-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/go-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/go-sdk-contrib/compare/hooks/open-telemetry/v0.3.2...hooks/open-telemetry/v0.3.4) Updates `github.com/open-feature/go-sdk-contrib/providers/flagd` from 0.2.1 to 0.2.3 - [Release notes](https://github.com/open-feature/go-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/go-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/go-sdk-contrib/compare/providers/flagd/v0.2.1...providers/flagd/v0.2.3) Updates `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` from 0.52.0 to 0.53.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.52.0...zpages/v0.53.0) Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.52.0 to 0.57.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.52.0...zpages/v0.57.0) Updates `go.opentelemetry.io/otel` from 1.27.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.32.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.27.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.31.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.27.0 to 1.31.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.31.0) Updates `go.opentelemetry.io/otel/sdk` from 1.27.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.32.0) Updates `go.opentelemetry.io/otel/sdk/metric` from 1.27.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.32.0) Updates `go.opentelemetry.io/otel/trace` from 1.27.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.32.0) Updates `google.golang.org/grpc` from 1.64.0 to 1.67.1 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.64.0...v1.67.1) Updates `google.golang.org/grpc/cmd/protoc-gen-go-grpc` from 1.4.0 to 1.5.1 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.4.0...v1.5.1) Updates `google.golang.org/protobuf` from 1.34.1 to 1.35.1 --- updated-dependencies: - dependency-name: github.com/IBM/sarama dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: github.com/open-feature/go-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: github.com/open-feature/go-sdk-contrib/hooks/open-telemetry dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: github.com/open-feature/go-sdk-contrib/providers/flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/runtime dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk/metric dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/trace dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc/cmd/protoc-gen-go-grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: github.com/open-feature/go-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: github.com/open-feature/go-sdk-contrib/hooks/open-telemetry dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: github.com/open-feature/go-sdk-contrib/providers/flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/runtime dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk/metric dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/trace dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc/cmd/protoc-gen-go-grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] * Add updated protos --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa --- .../genproto/oteldemo/demo.pb.go | 952 ++----- .../genproto/oteldemo/demo_grpc.pb.go | 196 +- src/checkoutservice/go.mod | 82 +- src/checkoutservice/go.sum | 2376 +--------------- .../genproto/oteldemo/demo.pb.go | 952 ++----- .../genproto/oteldemo/demo_grpc.pb.go | 196 +- src/productcatalogservice/go.mod | 73 +- src/productcatalogservice/go.sum | 2385 +---------------- 8 files changed, 928 insertions(+), 6284 deletions(-) diff --git a/src/checkoutservice/genproto/oteldemo/demo.pb.go b/src/checkoutservice/genproto/oteldemo/demo.pb.go index 4bb4ddb33c..cb5b7c2f38 100644 --- a/src/checkoutservice/genproto/oteldemo/demo.pb.go +++ b/src/checkoutservice/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 +// protoc-gen-go v1.35.1 // protoc v4.24.4 // source: demo.proto @@ -45,11 +45,9 @@ type CartItem struct { func (x *CartItem) Reset() { *x = CartItem{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CartItem) String() string { @@ -60,7 +58,7 @@ func (*CartItem) ProtoMessage() {} func (x *CartItem) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -100,11 +98,9 @@ type AddItemRequest struct { func (x *AddItemRequest) Reset() { *x = AddItemRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AddItemRequest) String() string { @@ -115,7 +111,7 @@ func (*AddItemRequest) ProtoMessage() {} func (x *AddItemRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -154,11 +150,9 @@ type EmptyCartRequest struct { func (x *EmptyCartRequest) Reset() { *x = EmptyCartRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EmptyCartRequest) String() string { @@ -169,7 +163,7 @@ func (*EmptyCartRequest) ProtoMessage() {} func (x *EmptyCartRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -201,11 +195,9 @@ type GetCartRequest struct { func (x *GetCartRequest) Reset() { *x = GetCartRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCartRequest) String() string { @@ -216,7 +208,7 @@ func (*GetCartRequest) ProtoMessage() {} func (x *GetCartRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -249,11 +241,9 @@ type Cart struct { func (x *Cart) Reset() { *x = Cart{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Cart) String() string { @@ -264,7 +254,7 @@ func (*Cart) ProtoMessage() {} func (x *Cart) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -301,11 +291,9 @@ type Empty struct { func (x *Empty) Reset() { *x = Empty{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Empty) String() string { @@ -316,7 +304,7 @@ func (*Empty) ProtoMessage() {} func (x *Empty) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -342,11 +330,9 @@ type ListRecommendationsRequest struct { func (x *ListRecommendationsRequest) Reset() { *x = ListRecommendationsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListRecommendationsRequest) String() string { @@ -357,7 +343,7 @@ func (*ListRecommendationsRequest) ProtoMessage() {} func (x *ListRecommendationsRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -396,11 +382,9 @@ type ListRecommendationsResponse struct { func (x *ListRecommendationsResponse) Reset() { *x = ListRecommendationsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListRecommendationsResponse) String() string { @@ -411,7 +395,7 @@ func (*ListRecommendationsResponse) ProtoMessage() {} func (x *ListRecommendationsResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -450,11 +434,9 @@ type Product struct { func (x *Product) Reset() { *x = Product{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Product) String() string { @@ -465,7 +447,7 @@ func (*Product) ProtoMessage() {} func (x *Product) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -532,11 +514,9 @@ type ListProductsResponse struct { func (x *ListProductsResponse) Reset() { *x = ListProductsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListProductsResponse) String() string { @@ -547,7 +527,7 @@ func (*ListProductsResponse) ProtoMessage() {} func (x *ListProductsResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -579,11 +559,9 @@ type GetProductRequest struct { func (x *GetProductRequest) Reset() { *x = GetProductRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetProductRequest) String() string { @@ -594,7 +572,7 @@ func (*GetProductRequest) ProtoMessage() {} func (x *GetProductRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -626,11 +604,9 @@ type SearchProductsRequest struct { func (x *SearchProductsRequest) Reset() { *x = SearchProductsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchProductsRequest) String() string { @@ -641,7 +617,7 @@ func (*SearchProductsRequest) ProtoMessage() {} func (x *SearchProductsRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -673,11 +649,9 @@ type SearchProductsResponse struct { func (x *SearchProductsResponse) Reset() { *x = SearchProductsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchProductsResponse) String() string { @@ -688,7 +662,7 @@ func (*SearchProductsResponse) ProtoMessage() {} func (x *SearchProductsResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -721,11 +695,9 @@ type GetQuoteRequest struct { func (x *GetQuoteRequest) Reset() { *x = GetQuoteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetQuoteRequest) String() string { @@ -736,7 +708,7 @@ func (*GetQuoteRequest) ProtoMessage() {} func (x *GetQuoteRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -775,11 +747,9 @@ type GetQuoteResponse struct { func (x *GetQuoteResponse) Reset() { *x = GetQuoteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetQuoteResponse) String() string { @@ -790,7 +760,7 @@ func (*GetQuoteResponse) ProtoMessage() {} func (x *GetQuoteResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -823,11 +793,9 @@ type ShipOrderRequest struct { func (x *ShipOrderRequest) Reset() { *x = ShipOrderRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShipOrderRequest) String() string { @@ -838,7 +806,7 @@ func (*ShipOrderRequest) ProtoMessage() {} func (x *ShipOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -877,11 +845,9 @@ type ShipOrderResponse struct { func (x *ShipOrderResponse) Reset() { *x = ShipOrderResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShipOrderResponse) String() string { @@ -892,7 +858,7 @@ func (*ShipOrderResponse) ProtoMessage() {} func (x *ShipOrderResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -928,11 +894,9 @@ type Address struct { func (x *Address) Reset() { *x = Address{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Address) String() string { @@ -943,7 +907,7 @@ func (*Address) ProtoMessage() {} func (x *Address) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1015,11 +979,9 @@ type Money struct { func (x *Money) Reset() { *x = Money{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Money) String() string { @@ -1030,7 +992,7 @@ func (*Money) ProtoMessage() {} func (x *Money) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1077,11 +1039,9 @@ type GetSupportedCurrenciesResponse struct { func (x *GetSupportedCurrenciesResponse) Reset() { *x = GetSupportedCurrenciesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSupportedCurrenciesResponse) String() string { @@ -1092,7 +1052,7 @@ func (*GetSupportedCurrenciesResponse) ProtoMessage() {} func (x *GetSupportedCurrenciesResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1126,11 +1086,9 @@ type CurrencyConversionRequest struct { func (x *CurrencyConversionRequest) Reset() { *x = CurrencyConversionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CurrencyConversionRequest) String() string { @@ -1141,7 +1099,7 @@ func (*CurrencyConversionRequest) ProtoMessage() {} func (x *CurrencyConversionRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1183,11 +1141,9 @@ type CreditCardInfo struct { func (x *CreditCardInfo) Reset() { *x = CreditCardInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreditCardInfo) String() string { @@ -1198,7 +1154,7 @@ func (*CreditCardInfo) ProtoMessage() {} func (x *CreditCardInfo) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1252,11 +1208,9 @@ type ChargeRequest struct { func (x *ChargeRequest) Reset() { *x = ChargeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChargeRequest) String() string { @@ -1267,7 +1221,7 @@ func (*ChargeRequest) ProtoMessage() {} func (x *ChargeRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1306,11 +1260,9 @@ type ChargeResponse struct { func (x *ChargeResponse) Reset() { *x = ChargeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChargeResponse) String() string { @@ -1321,7 +1273,7 @@ func (*ChargeResponse) ProtoMessage() {} func (x *ChargeResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1354,11 +1306,9 @@ type OrderItem struct { func (x *OrderItem) Reset() { *x = OrderItem{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *OrderItem) String() string { @@ -1369,7 +1319,7 @@ func (*OrderItem) ProtoMessage() {} func (x *OrderItem) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1412,11 +1362,9 @@ type OrderResult struct { func (x *OrderResult) Reset() { *x = OrderResult{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *OrderResult) String() string { @@ -1427,7 +1375,7 @@ func (*OrderResult) ProtoMessage() {} func (x *OrderResult) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1488,11 +1436,9 @@ type SendOrderConfirmationRequest struct { func (x *SendOrderConfirmationRequest) Reset() { *x = SendOrderConfirmationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SendOrderConfirmationRequest) String() string { @@ -1503,7 +1449,7 @@ func (*SendOrderConfirmationRequest) ProtoMessage() {} func (x *SendOrderConfirmationRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1546,11 +1492,9 @@ type PlaceOrderRequest struct { func (x *PlaceOrderRequest) Reset() { *x = PlaceOrderRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PlaceOrderRequest) String() string { @@ -1561,7 +1505,7 @@ func (*PlaceOrderRequest) ProtoMessage() {} func (x *PlaceOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1621,11 +1565,9 @@ type PlaceOrderResponse struct { func (x *PlaceOrderResponse) Reset() { *x = PlaceOrderResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PlaceOrderResponse) String() string { @@ -1636,7 +1578,7 @@ func (*PlaceOrderResponse) ProtoMessage() {} func (x *PlaceOrderResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1669,11 +1611,9 @@ type AdRequest struct { func (x *AdRequest) Reset() { *x = AdRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AdRequest) String() string { @@ -1684,7 +1624,7 @@ func (*AdRequest) ProtoMessage() {} func (x *AdRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1716,11 +1656,9 @@ type AdResponse struct { func (x *AdResponse) Reset() { *x = AdResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AdResponse) String() string { @@ -1731,7 +1669,7 @@ func (*AdResponse) ProtoMessage() {} func (x *AdResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1766,11 +1704,9 @@ type Ad struct { func (x *Ad) Reset() { *x = Ad{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Ad) String() string { @@ -1781,7 +1717,7 @@ func (*Ad) ProtoMessage() {} func (x *Ad) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1822,11 +1758,9 @@ type Flag struct { func (x *Flag) Reset() { *x = Flag{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Flag) String() string { @@ -1837,7 +1771,7 @@ func (*Flag) ProtoMessage() {} func (x *Flag) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1883,11 +1817,9 @@ type GetFlagRequest struct { func (x *GetFlagRequest) Reset() { *x = GetFlagRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetFlagRequest) String() string { @@ -1898,7 +1830,7 @@ func (*GetFlagRequest) ProtoMessage() {} func (x *GetFlagRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1930,11 +1862,9 @@ type GetFlagResponse struct { func (x *GetFlagResponse) Reset() { *x = GetFlagResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetFlagResponse) String() string { @@ -1945,7 +1875,7 @@ func (*GetFlagResponse) ProtoMessage() {} func (x *GetFlagResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1979,11 +1909,9 @@ type CreateFlagRequest struct { func (x *CreateFlagRequest) Reset() { *x = CreateFlagRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateFlagRequest) String() string { @@ -1994,7 +1922,7 @@ func (*CreateFlagRequest) ProtoMessage() {} func (x *CreateFlagRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2040,11 +1968,9 @@ type CreateFlagResponse struct { func (x *CreateFlagResponse) Reset() { *x = CreateFlagResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateFlagResponse) String() string { @@ -2055,7 +1981,7 @@ func (*CreateFlagResponse) ProtoMessage() {} func (x *CreateFlagResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2088,11 +2014,9 @@ type UpdateFlagRequest struct { func (x *UpdateFlagRequest) Reset() { *x = UpdateFlagRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateFlagRequest) String() string { @@ -2103,7 +2027,7 @@ func (*UpdateFlagRequest) ProtoMessage() {} func (x *UpdateFlagRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2140,11 +2064,9 @@ type UpdateFlagResponse struct { func (x *UpdateFlagResponse) Reset() { *x = UpdateFlagResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateFlagResponse) String() string { @@ -2155,7 +2077,7 @@ func (*UpdateFlagResponse) ProtoMessage() {} func (x *UpdateFlagResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2178,11 +2100,9 @@ type ListFlagsRequest struct { func (x *ListFlagsRequest) Reset() { *x = ListFlagsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListFlagsRequest) String() string { @@ -2193,7 +2113,7 @@ func (*ListFlagsRequest) ProtoMessage() {} func (x *ListFlagsRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2218,11 +2138,9 @@ type ListFlagsResponse struct { func (x *ListFlagsResponse) Reset() { *x = ListFlagsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListFlagsResponse) String() string { @@ -2233,7 +2151,7 @@ func (*ListFlagsResponse) ProtoMessage() {} func (x *ListFlagsResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2265,11 +2183,9 @@ type DeleteFlagRequest struct { func (x *DeleteFlagRequest) Reset() { *x = DeleteFlagRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteFlagRequest) String() string { @@ -2280,7 +2196,7 @@ func (*DeleteFlagRequest) ProtoMessage() {} func (x *DeleteFlagRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2310,11 +2226,9 @@ type DeleteFlagResponse struct { func (x *DeleteFlagResponse) Reset() { *x = DeleteFlagResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteFlagResponse) String() string { @@ -2325,7 +2239,7 @@ func (*DeleteFlagResponse) ProtoMessage() {} func (x *DeleteFlagResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2680,7 +2594,7 @@ func file_demo_proto_rawDescGZIP() []byte { } var file_demo_proto_msgTypes = make([]protoimpl.MessageInfo, 43) -var file_demo_proto_goTypes = []interface{}{ +var file_demo_proto_goTypes = []any{ (*CartItem)(nil), // 0: oteldemo.CartItem (*AddItemRequest)(nil), // 1: oteldemo.AddItemRequest (*EmptyCartRequest)(nil), // 2: oteldemo.EmptyCartRequest @@ -2804,524 +2718,6 @@ func file_demo_proto_init() { if File_demo_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_demo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CartItem); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddItemRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EmptyCartRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCartRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Cart); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Empty); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRecommendationsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRecommendationsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Product); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListProductsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProductRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchProductsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchProductsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetQuoteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetQuoteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShipOrderRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShipOrderResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Address); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Money); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSupportedCurrenciesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CurrencyConversionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreditCardInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChargeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChargeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderItem); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendOrderConfirmationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PlaceOrderRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PlaceOrderResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AdRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AdResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Ad); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Flag); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFlagRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFlagResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateFlagRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateFlagResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateFlagRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateFlagResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListFlagsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListFlagsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteFlagRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteFlagResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/src/checkoutservice/genproto/oteldemo/demo_grpc.pb.go b/src/checkoutservice/genproto/oteldemo/demo_grpc.pb.go index b4478e6d21..ab3c2ae2f3 100644 --- a/src/checkoutservice/genproto/oteldemo/demo_grpc.pb.go +++ b/src/checkoutservice/genproto/oteldemo/demo_grpc.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.4.0 +// - protoc-gen-go-grpc v1.5.1 // - protoc v4.24.4 // source: demo.proto @@ -29,8 +29,8 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.62.0 or later. -const _ = grpc.SupportPackageIsVersion8 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 const ( CartService_AddItem_FullMethodName = "/oteldemo.CartService/AddItem" @@ -87,7 +87,7 @@ func (c *cartServiceClient) EmptyCart(ctx context.Context, in *EmptyCartRequest, // CartServiceServer is the server API for CartService service. // All implementations must embed UnimplementedCartServiceServer -// for forward compatibility +// for forward compatibility. type CartServiceServer interface { AddItem(context.Context, *AddItemRequest) (*Empty, error) GetCart(context.Context, *GetCartRequest) (*Cart, error) @@ -95,9 +95,12 @@ type CartServiceServer interface { mustEmbedUnimplementedCartServiceServer() } -// UnimplementedCartServiceServer must be embedded to have forward compatible implementations. -type UnimplementedCartServiceServer struct { -} +// UnimplementedCartServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedCartServiceServer struct{} func (UnimplementedCartServiceServer) AddItem(context.Context, *AddItemRequest) (*Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method AddItem not implemented") @@ -109,6 +112,7 @@ func (UnimplementedCartServiceServer) EmptyCart(context.Context, *EmptyCartReque return nil, status.Errorf(codes.Unimplemented, "method EmptyCart not implemented") } func (UnimplementedCartServiceServer) mustEmbedUnimplementedCartServiceServer() {} +func (UnimplementedCartServiceServer) testEmbeddedByValue() {} // UnsafeCartServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to CartServiceServer will @@ -118,6 +122,13 @@ type UnsafeCartServiceServer interface { } func RegisterCartServiceServer(s grpc.ServiceRegistrar, srv CartServiceServer) { + // If the following call pancis, it indicates UnimplementedCartServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&CartService_ServiceDesc, srv) } @@ -230,20 +241,24 @@ func (c *recommendationServiceClient) ListRecommendations(ctx context.Context, i // RecommendationServiceServer is the server API for RecommendationService service. // All implementations must embed UnimplementedRecommendationServiceServer -// for forward compatibility +// for forward compatibility. type RecommendationServiceServer interface { ListRecommendations(context.Context, *ListRecommendationsRequest) (*ListRecommendationsResponse, error) mustEmbedUnimplementedRecommendationServiceServer() } -// UnimplementedRecommendationServiceServer must be embedded to have forward compatible implementations. -type UnimplementedRecommendationServiceServer struct { -} +// UnimplementedRecommendationServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedRecommendationServiceServer struct{} func (UnimplementedRecommendationServiceServer) ListRecommendations(context.Context, *ListRecommendationsRequest) (*ListRecommendationsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListRecommendations not implemented") } func (UnimplementedRecommendationServiceServer) mustEmbedUnimplementedRecommendationServiceServer() {} +func (UnimplementedRecommendationServiceServer) testEmbeddedByValue() {} // UnsafeRecommendationServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to RecommendationServiceServer will @@ -253,6 +268,13 @@ type UnsafeRecommendationServiceServer interface { } func RegisterRecommendationServiceServer(s grpc.ServiceRegistrar, srv RecommendationServiceServer) { + // If the following call pancis, it indicates UnimplementedRecommendationServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&RecommendationService_ServiceDesc, srv) } @@ -345,7 +367,7 @@ func (c *productCatalogServiceClient) SearchProducts(ctx context.Context, in *Se // ProductCatalogServiceServer is the server API for ProductCatalogService service. // All implementations must embed UnimplementedProductCatalogServiceServer -// for forward compatibility +// for forward compatibility. type ProductCatalogServiceServer interface { ListProducts(context.Context, *Empty) (*ListProductsResponse, error) GetProduct(context.Context, *GetProductRequest) (*Product, error) @@ -353,9 +375,12 @@ type ProductCatalogServiceServer interface { mustEmbedUnimplementedProductCatalogServiceServer() } -// UnimplementedProductCatalogServiceServer must be embedded to have forward compatible implementations. -type UnimplementedProductCatalogServiceServer struct { -} +// UnimplementedProductCatalogServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedProductCatalogServiceServer struct{} func (UnimplementedProductCatalogServiceServer) ListProducts(context.Context, *Empty) (*ListProductsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListProducts not implemented") @@ -367,6 +392,7 @@ func (UnimplementedProductCatalogServiceServer) SearchProducts(context.Context, return nil, status.Errorf(codes.Unimplemented, "method SearchProducts not implemented") } func (UnimplementedProductCatalogServiceServer) mustEmbedUnimplementedProductCatalogServiceServer() {} +func (UnimplementedProductCatalogServiceServer) testEmbeddedByValue() {} // UnsafeProductCatalogServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ProductCatalogServiceServer will @@ -376,6 +402,13 @@ type UnsafeProductCatalogServiceServer interface { } func RegisterProductCatalogServiceServer(s grpc.ServiceRegistrar, srv ProductCatalogServiceServer) { + // If the following call pancis, it indicates UnimplementedProductCatalogServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&ProductCatalogService_ServiceDesc, srv) } @@ -500,16 +533,19 @@ func (c *shippingServiceClient) ShipOrder(ctx context.Context, in *ShipOrderRequ // ShippingServiceServer is the server API for ShippingService service. // All implementations must embed UnimplementedShippingServiceServer -// for forward compatibility +// for forward compatibility. type ShippingServiceServer interface { GetQuote(context.Context, *GetQuoteRequest) (*GetQuoteResponse, error) ShipOrder(context.Context, *ShipOrderRequest) (*ShipOrderResponse, error) mustEmbedUnimplementedShippingServiceServer() } -// UnimplementedShippingServiceServer must be embedded to have forward compatible implementations. -type UnimplementedShippingServiceServer struct { -} +// UnimplementedShippingServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedShippingServiceServer struct{} func (UnimplementedShippingServiceServer) GetQuote(context.Context, *GetQuoteRequest) (*GetQuoteResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetQuote not implemented") @@ -518,6 +554,7 @@ func (UnimplementedShippingServiceServer) ShipOrder(context.Context, *ShipOrderR return nil, status.Errorf(codes.Unimplemented, "method ShipOrder not implemented") } func (UnimplementedShippingServiceServer) mustEmbedUnimplementedShippingServiceServer() {} +func (UnimplementedShippingServiceServer) testEmbeddedByValue() {} // UnsafeShippingServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ShippingServiceServer will @@ -527,6 +564,13 @@ type UnsafeShippingServiceServer interface { } func RegisterShippingServiceServer(s grpc.ServiceRegistrar, srv ShippingServiceServer) { + // If the following call pancis, it indicates UnimplementedShippingServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&ShippingService_ServiceDesc, srv) } @@ -629,16 +673,19 @@ func (c *currencyServiceClient) Convert(ctx context.Context, in *CurrencyConvers // CurrencyServiceServer is the server API for CurrencyService service. // All implementations must embed UnimplementedCurrencyServiceServer -// for forward compatibility +// for forward compatibility. type CurrencyServiceServer interface { GetSupportedCurrencies(context.Context, *Empty) (*GetSupportedCurrenciesResponse, error) Convert(context.Context, *CurrencyConversionRequest) (*Money, error) mustEmbedUnimplementedCurrencyServiceServer() } -// UnimplementedCurrencyServiceServer must be embedded to have forward compatible implementations. -type UnimplementedCurrencyServiceServer struct { -} +// UnimplementedCurrencyServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedCurrencyServiceServer struct{} func (UnimplementedCurrencyServiceServer) GetSupportedCurrencies(context.Context, *Empty) (*GetSupportedCurrenciesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetSupportedCurrencies not implemented") @@ -647,6 +694,7 @@ func (UnimplementedCurrencyServiceServer) Convert(context.Context, *CurrencyConv return nil, status.Errorf(codes.Unimplemented, "method Convert not implemented") } func (UnimplementedCurrencyServiceServer) mustEmbedUnimplementedCurrencyServiceServer() {} +func (UnimplementedCurrencyServiceServer) testEmbeddedByValue() {} // UnsafeCurrencyServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to CurrencyServiceServer will @@ -656,6 +704,13 @@ type UnsafeCurrencyServiceServer interface { } func RegisterCurrencyServiceServer(s grpc.ServiceRegistrar, srv CurrencyServiceServer) { + // If the following call pancis, it indicates UnimplementedCurrencyServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&CurrencyService_ServiceDesc, srv) } @@ -746,20 +801,24 @@ func (c *paymentServiceClient) Charge(ctx context.Context, in *ChargeRequest, op // PaymentServiceServer is the server API for PaymentService service. // All implementations must embed UnimplementedPaymentServiceServer -// for forward compatibility +// for forward compatibility. type PaymentServiceServer interface { Charge(context.Context, *ChargeRequest) (*ChargeResponse, error) mustEmbedUnimplementedPaymentServiceServer() } -// UnimplementedPaymentServiceServer must be embedded to have forward compatible implementations. -type UnimplementedPaymentServiceServer struct { -} +// UnimplementedPaymentServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedPaymentServiceServer struct{} func (UnimplementedPaymentServiceServer) Charge(context.Context, *ChargeRequest) (*ChargeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Charge not implemented") } func (UnimplementedPaymentServiceServer) mustEmbedUnimplementedPaymentServiceServer() {} +func (UnimplementedPaymentServiceServer) testEmbeddedByValue() {} // UnsafePaymentServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to PaymentServiceServer will @@ -769,6 +828,13 @@ type UnsafePaymentServiceServer interface { } func RegisterPaymentServiceServer(s grpc.ServiceRegistrar, srv PaymentServiceServer) { + // If the following call pancis, it indicates UnimplementedPaymentServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&PaymentService_ServiceDesc, srv) } @@ -837,20 +903,24 @@ func (c *emailServiceClient) SendOrderConfirmation(ctx context.Context, in *Send // EmailServiceServer is the server API for EmailService service. // All implementations must embed UnimplementedEmailServiceServer -// for forward compatibility +// for forward compatibility. type EmailServiceServer interface { SendOrderConfirmation(context.Context, *SendOrderConfirmationRequest) (*Empty, error) mustEmbedUnimplementedEmailServiceServer() } -// UnimplementedEmailServiceServer must be embedded to have forward compatible implementations. -type UnimplementedEmailServiceServer struct { -} +// UnimplementedEmailServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedEmailServiceServer struct{} func (UnimplementedEmailServiceServer) SendOrderConfirmation(context.Context, *SendOrderConfirmationRequest) (*Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method SendOrderConfirmation not implemented") } func (UnimplementedEmailServiceServer) mustEmbedUnimplementedEmailServiceServer() {} +func (UnimplementedEmailServiceServer) testEmbeddedByValue() {} // UnsafeEmailServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to EmailServiceServer will @@ -860,6 +930,13 @@ type UnsafeEmailServiceServer interface { } func RegisterEmailServiceServer(s grpc.ServiceRegistrar, srv EmailServiceServer) { + // If the following call pancis, it indicates UnimplementedEmailServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&EmailService_ServiceDesc, srv) } @@ -928,20 +1005,24 @@ func (c *checkoutServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRe // CheckoutServiceServer is the server API for CheckoutService service. // All implementations must embed UnimplementedCheckoutServiceServer -// for forward compatibility +// for forward compatibility. type CheckoutServiceServer interface { PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error) mustEmbedUnimplementedCheckoutServiceServer() } -// UnimplementedCheckoutServiceServer must be embedded to have forward compatible implementations. -type UnimplementedCheckoutServiceServer struct { -} +// UnimplementedCheckoutServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedCheckoutServiceServer struct{} func (UnimplementedCheckoutServiceServer) PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PlaceOrder not implemented") } func (UnimplementedCheckoutServiceServer) mustEmbedUnimplementedCheckoutServiceServer() {} +func (UnimplementedCheckoutServiceServer) testEmbeddedByValue() {} // UnsafeCheckoutServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to CheckoutServiceServer will @@ -951,6 +1032,13 @@ type UnsafeCheckoutServiceServer interface { } func RegisterCheckoutServiceServer(s grpc.ServiceRegistrar, srv CheckoutServiceServer) { + // If the following call pancis, it indicates UnimplementedCheckoutServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&CheckoutService_ServiceDesc, srv) } @@ -1019,20 +1107,24 @@ func (c *adServiceClient) GetAds(ctx context.Context, in *AdRequest, opts ...grp // AdServiceServer is the server API for AdService service. // All implementations must embed UnimplementedAdServiceServer -// for forward compatibility +// for forward compatibility. type AdServiceServer interface { GetAds(context.Context, *AdRequest) (*AdResponse, error) mustEmbedUnimplementedAdServiceServer() } -// UnimplementedAdServiceServer must be embedded to have forward compatible implementations. -type UnimplementedAdServiceServer struct { -} +// UnimplementedAdServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedAdServiceServer struct{} func (UnimplementedAdServiceServer) GetAds(context.Context, *AdRequest) (*AdResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetAds not implemented") } func (UnimplementedAdServiceServer) mustEmbedUnimplementedAdServiceServer() {} +func (UnimplementedAdServiceServer) testEmbeddedByValue() {} // UnsafeAdServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to AdServiceServer will @@ -1042,6 +1134,13 @@ type UnsafeAdServiceServer interface { } func RegisterAdServiceServer(s grpc.ServiceRegistrar, srv AdServiceServer) { + // If the following call pancis, it indicates UnimplementedAdServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&AdService_ServiceDesc, srv) } @@ -1158,7 +1257,7 @@ func (c *featureFlagServiceClient) DeleteFlag(ctx context.Context, in *DeleteFla // FeatureFlagServiceServer is the server API for FeatureFlagService service. // All implementations must embed UnimplementedFeatureFlagServiceServer -// for forward compatibility +// for forward compatibility. type FeatureFlagServiceServer interface { GetFlag(context.Context, *GetFlagRequest) (*GetFlagResponse, error) CreateFlag(context.Context, *CreateFlagRequest) (*CreateFlagResponse, error) @@ -1168,9 +1267,12 @@ type FeatureFlagServiceServer interface { mustEmbedUnimplementedFeatureFlagServiceServer() } -// UnimplementedFeatureFlagServiceServer must be embedded to have forward compatible implementations. -type UnimplementedFeatureFlagServiceServer struct { -} +// UnimplementedFeatureFlagServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedFeatureFlagServiceServer struct{} func (UnimplementedFeatureFlagServiceServer) GetFlag(context.Context, *GetFlagRequest) (*GetFlagResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFlag not implemented") @@ -1188,6 +1290,7 @@ func (UnimplementedFeatureFlagServiceServer) DeleteFlag(context.Context, *Delete return nil, status.Errorf(codes.Unimplemented, "method DeleteFlag not implemented") } func (UnimplementedFeatureFlagServiceServer) mustEmbedUnimplementedFeatureFlagServiceServer() {} +func (UnimplementedFeatureFlagServiceServer) testEmbeddedByValue() {} // UnsafeFeatureFlagServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to FeatureFlagServiceServer will @@ -1197,6 +1300,13 @@ type UnsafeFeatureFlagServiceServer interface { } func RegisterFeatureFlagServiceServer(s grpc.ServiceRegistrar, srv FeatureFlagServiceServer) { + // If the following call pancis, it indicates UnimplementedFeatureFlagServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&FeatureFlagService_ServiceDesc, srv) } diff --git a/src/checkoutservice/go.mod b/src/checkoutservice/go.mod index 62f7e1a432..9c3c9fdb9c 100644 --- a/src/checkoutservice/go.mod +++ b/src/checkoutservice/go.mod @@ -3,48 +3,49 @@ module github.com/open-telemetry/opentelemetry-demo/src/checkoutservice go 1.22.0 require ( - github.com/IBM/sarama v1.43.2 + github.com/IBM/sarama v1.43.3 github.com/google/uuid v1.6.0 - github.com/open-feature/go-sdk v1.12.0 - github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.2 - github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.1 + github.com/open-feature/go-sdk v1.13.1 + github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 + github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 - go.opentelemetry.io/contrib/instrumentation/runtime v0.52.0 - go.opentelemetry.io/otel v1.27.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 - go.opentelemetry.io/otel/sdk v1.27.0 - go.opentelemetry.io/otel/sdk/metric v1.27.0 - go.opentelemetry.io/otel/trace v1.27.0 - google.golang.org/grpc v1.64.0 - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 - google.golang.org/protobuf v1.34.1 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 + go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 + go.opentelemetry.io/otel v1.32.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 + go.opentelemetry.io/otel/sdk v1.32.0 + go.opentelemetry.io/otel/sdk/metric v1.32.0 + go.opentelemetry.io/otel/trace v1.32.0 + google.golang.org/grpc v1.67.1 + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 + google.golang.org/protobuf v1.35.1 ) require ( - buf.build/gen/go/open-feature/flagd/connectrpc/go v1.16.2-20240215170432-1e611e2999cc.1 // indirect - buf.build/gen/go/open-feature/flagd/grpc/go v1.3.0-20240215170432-1e611e2999cc.3 // indirect - buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.34.1-20240215170432-1e611e2999cc.1 // indirect - connectrpc.com/connect v1.16.2 // indirect - connectrpc.com/otelconnect v0.7.0 // indirect + buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1 // indirect + buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1 // indirect + buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1 // indirect + connectrpc.com/connect v1.17.0 // indirect + connectrpc.com/otelconnect v0.7.1 // indirect github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/diegoholiveira/jsonlogic/v3 v3.5.3 // indirect - github.com/eapache/go-resiliency v1.6.0 // indirect + github.com/eapache/go-resiliency v1.7.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect github.com/eapache/queue v1.1.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/zapr v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect @@ -55,39 +56,40 @@ require ( github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.17.8 // indirect + github.com/klauspost/compress v1.17.9 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/open-feature/flagd-schemas v0.2.9-0.20240408192555-ea4f119d2bd7 // indirect - github.com/open-feature/flagd/core v0.9.2 // indirect + github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 // indirect + github.com/open-feature/flagd/core v0.10.4 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/twmb/murmur3 v1.1.8 // indirect + github.com/x448/float16 v0.8.4 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/proto/otlp v1.2.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.23.0 // indirect + golang.org/x/crypto v0.28.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect - golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/sys v0.20.0 // indirect - golang.org/x/text v0.15.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect + golang.org/x/mod v0.21.0 // indirect + golang.org/x/net v0.30.0 // indirect + golang.org/x/sys v0.27.0 // indirect + golang.org/x/text v0.19.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.30.1 // indirect - k8s.io/klog/v2 v2.120.1 // indirect - k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect - sigs.k8s.io/controller-runtime v0.18.3 // indirect + k8s.io/apimachinery v0.31.1 // indirect + k8s.io/klog/v2 v2.130.1 // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect + sigs.k8s.io/controller-runtime v0.19.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect ) diff --git a/src/checkoutservice/go.sum b/src/checkoutservice/go.sum index 7898dbd733..9deed57c58 100644 --- a/src/checkoutservice/go.sum +++ b/src/checkoutservice/go.sum @@ -1,1261 +1,39 @@ -buf.build/gen/go/grpc-ecosystem/grpc-gateway/grpc/go v1.3.0-20220906183531-bc28b723cd77.3/go.mod h1:29GvpVBNnxg/FUQmj+3UobXv2UzXML5kmDPxEethe1U= -buf.build/gen/go/grpc-ecosystem/grpc-gateway/protocolbuffers/go v1.34.0-20220906183531-bc28b723cd77.1/go.mod h1:3yewBse5hcwxPZIq4cng0NlCYYXVQmGC64aJdAd2+S8= -buf.build/gen/go/grpc-ecosystem/grpc-gateway/protocolbuffers/go v1.34.1-20220906183531-bc28b723cd77.1/go.mod h1:gUfBTdJmhwTJHoIaOQjy7xczHhqjkQfXSKs5TY4IsUY= -buf.build/gen/go/open-feature/flagd/connectrpc/go v1.16.2-20240215170432-1e611e2999cc.1 h1:LzKcO153IeqETZE4vW6Wc2ffzfkx3BXYwIX72Khz56U= -buf.build/gen/go/open-feature/flagd/connectrpc/go v1.16.2-20240215170432-1e611e2999cc.1/go.mod h1:CV7JQktehuZgsiW5gEF1dd+LMqxl2kHJjM4bxuhNlz4= -buf.build/gen/go/open-feature/flagd/grpc/go v1.3.0-20240215170432-1e611e2999cc.3 h1:mUh+66sS7hpfksYmcAu+UOqc1wDw4VK3oPOmRY4QVTU= -buf.build/gen/go/open-feature/flagd/grpc/go v1.3.0-20240215170432-1e611e2999cc.3/go.mod h1:iyVT2Ux3voZ+n5j3aJylxePlhFiX4vpStA2P9Rcx5WY= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.34.0-20240215170432-1e611e2999cc.1/go.mod h1:C17h77473QJduq4M88y16OJ1he6h7kYRjjNaFYZrPP8= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.34.1-20240215170432-1e611e2999cc.1 h1:1WqnINfOtc6zoiUEKS/P/TSb8veoptNB3upJ+H8Q4rE= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.34.1-20240215170432-1e611e2999cc.1/go.mod h1:gEUPmagwc+N2TGT2C2u5qKm4w5AIT7GxX/g0xowr8Ww= -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= -cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= -cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= -cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= -cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= -cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= -cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= -cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= -cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= -cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= -cloud.google.com/go v0.110.6/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= -cloud.google.com/go v0.110.7/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= -cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk= -cloud.google.com/go v0.110.9/go.mod h1:rpxevX/0Lqvlbc88b7Sc1SPNdyK1riNBTUU6JXhYNpM= -cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic= -cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= -cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= -cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= -cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68= -cloud.google.com/go/accessapproval v1.7.2/go.mod h1:/gShiq9/kK/h8T/eEn1BTzalDvk0mZxJlhfw0p+Xuc0= -cloud.google.com/go/accessapproval v1.7.3/go.mod h1:4l8+pwIxGTNqSf4T3ds8nLO94NQf0W/KnMNuQ9PbnP8= -cloud.google.com/go/accessapproval v1.7.4/go.mod h1:/aTEh45LzplQgFYdQdwPMR9YdX0UlhBmvB84uAmQKUc= -cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= -cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= -cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= -cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= -cloud.google.com/go/accesscontextmanager v1.8.0/go.mod h1:uI+AI/r1oyWK99NN8cQ3UK76AMelMzgZCvJfsi2c+ps= -cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo= -cloud.google.com/go/accesscontextmanager v1.8.2/go.mod h1:E6/SCRM30elQJ2PKtFMs2YhfJpZSNcJyejhuzoId4Zk= -cloud.google.com/go/accesscontextmanager v1.8.3/go.mod h1:4i/JkF2JiFbhLnnpnfoTX5vRXfhf9ukhU1ANOTALTOQ= -cloud.google.com/go/accesscontextmanager v1.8.4/go.mod h1:ParU+WbMpD34s5JFEnGAnPBYAgUHozaTmDJU7aCU9+M= -cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= -cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= -cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= -cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= -cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= -cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= -cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= -cloud.google.com/go/aiplatform v1.48.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= -cloud.google.com/go/aiplatform v1.50.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4= -cloud.google.com/go/aiplatform v1.51.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4= -cloud.google.com/go/aiplatform v1.51.1/go.mod h1:kY3nIMAVQOK2XDqDPHaOuD9e+FdMA6OOpfBjsvaFSOo= -cloud.google.com/go/aiplatform v1.51.2/go.mod h1:hCqVYB3mY45w99TmetEoe8eCQEwZEp9WHxeZdcv9phw= -cloud.google.com/go/aiplatform v1.52.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU= -cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= -cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= -cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= -cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= -cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= -cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= -cloud.google.com/go/analytics v0.21.3/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= -cloud.google.com/go/analytics v0.21.4/go.mod h1:zZgNCxLCy8b2rKKVfC1YkC2vTrpfZmeRCySM3aUbskA= -cloud.google.com/go/analytics v0.21.5/go.mod h1:BQtOBHWTlJ96axpPPnw5CvGJ6i3Ve/qX2fTxR8qWyr8= -cloud.google.com/go/analytics v0.21.6/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w= -cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= -cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= -cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= -cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA= -cloud.google.com/go/apigateway v1.6.2/go.mod h1:CwMC90nnZElorCW63P2pAYm25AtQrHfuOkbRSHj0bT8= -cloud.google.com/go/apigateway v1.6.3/go.mod h1:k68PXWpEs6BVDTtnLQAyG606Q3mz8pshItwPXjgv44Y= -cloud.google.com/go/apigateway v1.6.4/go.mod h1:0EpJlVGH5HwAN4VF4Iec8TAzGN1aQgbxAWGJsnPCGGY= -cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= -cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= -cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= -cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs= -cloud.google.com/go/apigeeconnect v1.6.2/go.mod h1:s6O0CgXT9RgAxlq3DLXvG8riw8PYYbU/v25jqP3Dy18= -cloud.google.com/go/apigeeconnect v1.6.3/go.mod h1:peG0HFQ0si2bN15M6QSjEW/W7Gy3NYkWGz7pFz13cbo= -cloud.google.com/go/apigeeconnect v1.6.4/go.mod h1:CapQCWZ8TCjnU0d7PobxhpOdVz/OVJ2Hr/Zcuu1xFx0= -cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= -cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= -cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= -cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw= -cloud.google.com/go/apigeeregistry v0.7.2/go.mod h1:9CA2B2+TGsPKtfi3F7/1ncCCsL62NXBRfM6iPoGSM+8= -cloud.google.com/go/apigeeregistry v0.8.1/go.mod h1:MW4ig1N4JZQsXmBSwH4rwpgDonocz7FPBSw6XPGHmYw= -cloud.google.com/go/apigeeregistry v0.8.2/go.mod h1:h4v11TDGdeXJDJvImtgK2AFVvMIgGWjSb0HRnBSjcX8= -cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= -cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= -cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= -cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= -cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= -cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= -cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= -cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= -cloud.google.com/go/appengine v1.8.1/go.mod h1:6NJXGLVhZCN9aQ/AEDvmfzKEfoYBlfB80/BHiKVputY= -cloud.google.com/go/appengine v1.8.2/go.mod h1:WMeJV9oZ51pvclqFN2PqHoGnys7rK0rz6s3Mp6yMvDo= -cloud.google.com/go/appengine v1.8.3/go.mod h1:2oUPZ1LVZ5EXi+AF1ihNAF+S8JrzQ3till5m9VQkrsk= -cloud.google.com/go/appengine v1.8.4/go.mod h1:TZ24v+wXBujtkK77CXCpjZbnuTvsFNT41MUaZ28D6vg= -cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= -cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= -cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= -cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= -cloud.google.com/go/area120 v0.8.1/go.mod h1:BVfZpGpB7KFVNxPiQBuHkX6Ed0rS51xIgmGyjrAfzsg= -cloud.google.com/go/area120 v0.8.2/go.mod h1:a5qfo+x77SRLXnCynFWPUZhnZGeSgvQ+Y0v1kSItkh4= -cloud.google.com/go/area120 v0.8.3/go.mod h1:5zj6pMzVTH+SVHljdSKC35sriR/CVvQZzG/Icdyriw0= -cloud.google.com/go/area120 v0.8.4/go.mod h1:jfawXjxf29wyBXr48+W+GyX/f8fflxp642D/bb9v68M= -cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= -cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= -cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= -cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= -cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= -cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= -cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= -cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= -cloud.google.com/go/artifactregistry v1.14.1/go.mod h1:nxVdG19jTaSTu7yA7+VbWL346r3rIdkZ142BSQqhn5E= -cloud.google.com/go/artifactregistry v1.14.2/go.mod h1:Xk+QbsKEb0ElmyeMfdHAey41B+qBq3q5R5f5xD4XT3U= -cloud.google.com/go/artifactregistry v1.14.3/go.mod h1:A2/E9GXnsyXl7GUvQ/2CjHA+mVRoWAXC0brg2os+kNI= -cloud.google.com/go/artifactregistry v1.14.4/go.mod h1:SJJcZTMv6ce0LDMUnihCN7WSrI+kBSFV0KIKo8S8aYU= -cloud.google.com/go/artifactregistry v1.14.6/go.mod h1:np9LSFotNWHcjnOgh8UVK0RFPCTUGbO0ve3384xyHfE= -cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= -cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= -cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= -cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= -cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= -cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= -cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= -cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= -cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi03hd+WTQ= -cloud.google.com/go/asset v1.15.0/go.mod h1:tpKafV6mEut3+vN9ScGvCHXHj7FALFVta+okxFECHcg= -cloud.google.com/go/asset v1.15.1/go.mod h1:yX/amTvFWRpp5rcFq6XbCxzKT8RJUam1UoboE179jU4= -cloud.google.com/go/asset v1.15.2/go.mod h1:B6H5tclkXvXz7PD22qCA2TDxSVQfasa3iDlM89O2NXs= -cloud.google.com/go/asset v1.15.3/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= -cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= -cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= -cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= -cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= -cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= -cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= -cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0= -cloud.google.com/go/assuredworkloads v1.11.2/go.mod h1:O1dfr+oZJMlE6mw0Bp0P1KZSlj5SghMBvTpZqIcUAW4= -cloud.google.com/go/assuredworkloads v1.11.3/go.mod h1:vEjfTKYyRUaIeA0bsGJceFV2JKpVRgyG2op3jfa59Zs= -cloud.google.com/go/assuredworkloads v1.11.4/go.mod h1:4pwwGNwy1RP0m+y12ef3Q/8PaiWrIDQ6nD2E8kvWI9U= -cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= -cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= -cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= -cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= -cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= -cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE= -cloud.google.com/go/automl v1.13.2/go.mod h1:gNY/fUmDEN40sP8amAX3MaXkxcqPIn7F1UIIPZpy4Mg= -cloud.google.com/go/automl v1.13.3/go.mod h1:Y8KwvyAZFOsMAPqUCfNu1AyclbC6ivCUF/MTwORymyY= -cloud.google.com/go/automl v1.13.4/go.mod h1:ULqwX/OLZ4hBVfKQaMtxMSTlPx0GqGbWN8uA/1EqCP8= -cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= -cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= -cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= -cloud.google.com/go/baremetalsolution v1.1.1/go.mod h1:D1AV6xwOksJMV4OSlWHtWuFNZZYujJknMAP4Qa27QIA= -cloud.google.com/go/baremetalsolution v1.2.0/go.mod h1:68wi9AwPYkEWIUT4SvSGS9UJwKzNpshjHsH4lzk8iOw= -cloud.google.com/go/baremetalsolution v1.2.1/go.mod h1:3qKpKIw12RPXStwQXcbhfxVj1dqQGEvcmA+SX/mUR88= -cloud.google.com/go/baremetalsolution v1.2.2/go.mod h1:O5V6Uu1vzVelYahKfwEWRMaS3AbCkeYHy3145s1FkhM= -cloud.google.com/go/baremetalsolution v1.2.3/go.mod h1:/UAQ5xG3faDdy180rCUv47e0jvpp3BFxT+Cl0PFjw5g= -cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= -cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= -cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= -cloud.google.com/go/batch v1.3.1/go.mod h1:VguXeQKXIYaeeIYbuozUmBR13AfL4SJP7IltNPS+A4A= -cloud.google.com/go/batch v1.4.1/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk= -cloud.google.com/go/batch v1.5.0/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk= -cloud.google.com/go/batch v1.5.1/go.mod h1:RpBuIYLkQu8+CWDk3dFD/t/jOCGuUpkpX+Y0n1Xccs8= -cloud.google.com/go/batch v1.6.1/go.mod h1:urdpD13zPe6YOK+6iZs/8/x2VBRofvblLpx0t57vM98= -cloud.google.com/go/batch v1.6.3/go.mod h1:J64gD4vsNSA2O5TtDB5AAux3nJ9iV8U3ilg3JDBYejU= -cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= -cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= -cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= -cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= -cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= -cloud.google.com/go/beyondcorp v1.0.0/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= -cloud.google.com/go/beyondcorp v1.0.1/go.mod h1:zl/rWWAFVeV+kx+X2Javly7o1EIQThU4WlkynffL/lk= -cloud.google.com/go/beyondcorp v1.0.2/go.mod h1:m8cpG7caD+5su+1eZr+TSvF6r21NdLJk4f9u4SP2Ntc= -cloud.google.com/go/beyondcorp v1.0.3/go.mod h1:HcBvnEd7eYr+HGDd5ZbuVmBYX019C6CEXBonXbCVwJo= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= -cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= -cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= -cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= -cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= -cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= -cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= -cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= -cloud.google.com/go/bigquery v1.53.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= -cloud.google.com/go/bigquery v1.55.0/go.mod h1:9Y5I3PN9kQWuid6183JFhOGOW3GcirA5LpsKCUn+2ec= -cloud.google.com/go/bigquery v1.56.0/go.mod h1:KDcsploXTEY7XT3fDQzMUZlpQLHzE4itubHrnmhUrZA= -cloud.google.com/go/bigquery v1.57.1/go.mod h1:iYzC0tGVWt1jqSzBHqCr3lrRn0u13E8e+AqowBsDgug= -cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= -cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= -cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= -cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= -cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= -cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= -cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA= -cloud.google.com/go/billing v1.17.0/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64= -cloud.google.com/go/billing v1.17.1/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64= -cloud.google.com/go/billing v1.17.2/go.mod h1:u/AdV/3wr3xoRBk5xvUzYMS1IawOAPwQMuHgHMdljDg= -cloud.google.com/go/billing v1.17.3/go.mod h1:z83AkoZ7mZwBGT3yTnt6rSGI1OOsHSIi6a5M3mJ8NaU= -cloud.google.com/go/billing v1.17.4/go.mod h1:5DOYQStCxquGprqfuid/7haD7th74kyMBHkjO/OvDtk= -cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= -cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= -cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= -cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= -cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= -cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U= -cloud.google.com/go/binaryauthorization v1.7.0/go.mod h1:Zn+S6QqTMn6odcMU1zDZCJxPjU2tZPV1oDl45lWY154= -cloud.google.com/go/binaryauthorization v1.7.1/go.mod h1:GTAyfRWYgcbsP3NJogpV3yeunbUIjx2T9xVeYovtURE= -cloud.google.com/go/binaryauthorization v1.7.2/go.mod h1:kFK5fQtxEp97m92ziy+hbu+uKocka1qRRL8MVJIgjv0= -cloud.google.com/go/binaryauthorization v1.7.3/go.mod h1:VQ/nUGRKhrStlGr+8GMS8f6/vznYLkdK5vaKfdCIpvU= -cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= -cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= -cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= -cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI= -cloud.google.com/go/certificatemanager v1.7.2/go.mod h1:15SYTDQMd00kdoW0+XY5d9e+JbOPjp24AvF48D8BbcQ= -cloud.google.com/go/certificatemanager v1.7.3/go.mod h1:T/sZYuC30PTag0TLo28VedIRIj1KPGcOQzjWAptHa00= -cloud.google.com/go/certificatemanager v1.7.4/go.mod h1:FHAylPe/6IIKuaRmHbjbdLhGhVQ+CWHSD5Jq0k4+cCE= -cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= -cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= -cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= -cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= -cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc= -cloud.google.com/go/channel v1.17.0/go.mod h1:RpbhJsGi/lXWAUM1eF4IbQGbsfVlg2o8Iiy2/YLfVT0= -cloud.google.com/go/channel v1.17.1/go.mod h1:xqfzcOZAcP4b/hUDH0GkGg1Sd5to6di1HOJn/pi5uBQ= -cloud.google.com/go/channel v1.17.2/go.mod h1:aT2LhnftnyfQceFql5I/mP8mIbiiJS4lWqgXA815zMk= -cloud.google.com/go/channel v1.17.3/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE= -cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= -cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= -cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= -cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= -cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= -cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= -cloud.google.com/go/cloudbuild v1.13.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= -cloud.google.com/go/cloudbuild v1.14.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= -cloud.google.com/go/cloudbuild v1.14.1/go.mod h1:K7wGc/3zfvmYWOWwYTgF/d/UVJhS4pu+HAy7PL7mCsU= -cloud.google.com/go/cloudbuild v1.14.2/go.mod h1:Bn6RO0mBYk8Vlrt+8NLrru7WXlQ9/RDWz2uo5KG1/sg= -cloud.google.com/go/cloudbuild v1.14.3/go.mod h1:eIXYWmRt3UtggLnFGx4JvXcMj4kShhVzGndL1LwleEM= -cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= -cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= -cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= -cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI= -cloud.google.com/go/clouddms v1.7.0/go.mod h1:MW1dC6SOtI/tPNCciTsXtsGNEM0i0OccykPvv3hiYeM= -cloud.google.com/go/clouddms v1.7.1/go.mod h1:o4SR8U95+P7gZ/TX+YbJxehOCsM+fe6/brlrFquiszk= -cloud.google.com/go/clouddms v1.7.2/go.mod h1:Rk32TmWmHo64XqDvW7jgkFQet1tUKNVzs7oajtJT3jU= -cloud.google.com/go/clouddms v1.7.3/go.mod h1:fkN2HQQNUYInAU3NQ3vRLkV2iWs8lIdmBKOx4nrL6Hc= -cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= -cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= -cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= -cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= -cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= -cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= -cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= -cloud.google.com/go/cloudtasks v1.12.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= -cloud.google.com/go/cloudtasks v1.12.2/go.mod h1:A7nYkjNlW2gUoROg1kvJrQGhJP/38UaWwsnuBDOBVUk= -cloud.google.com/go/cloudtasks v1.12.3/go.mod h1:GPVXhIOSGEaR+3xT4Fp72ScI+HjHffSS4B8+BaBB5Ys= -cloud.google.com/go/cloudtasks v1.12.4/go.mod h1:BEPu0Gtt2dU6FxZHNqqNdGqIG86qyWKBPGnsb7udGY0= -cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= -cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= -cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= -cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= -cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= -cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= -cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= -cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= -cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= -cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= -cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= -cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= -cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= -cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= -cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI= -cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= -cloud.google.com/go/compute v1.21.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= -cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= -cloud.google.com/go/compute v1.23.1/go.mod h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3Xp1ixncW78= -cloud.google.com/go/compute v1.23.2/go.mod h1:JJ0atRC0J/oWYiiVBmsSsrRnh92DhZPG4hFDcR04Rns= -cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= -cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= -cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= -cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= -cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= -cloud.google.com/go/contactcenterinsights v1.9.1/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= -cloud.google.com/go/contactcenterinsights v1.10.0/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= -cloud.google.com/go/contactcenterinsights v1.11.0/go.mod h1:hutBdImE4XNZ1NV4vbPJKSFOnQruhC5Lj9bZqWMTKiU= -cloud.google.com/go/contactcenterinsights v1.11.1/go.mod h1:FeNP3Kg8iteKM80lMwSk3zZZKVxr+PGnAId6soKuXwE= -cloud.google.com/go/contactcenterinsights v1.11.2/go.mod h1:A9PIR5ov5cRcd28KlDbmmXE8Aay+Gccer2h4wzkYFso= -cloud.google.com/go/contactcenterinsights v1.11.3/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis= -cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= -cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= -cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= -cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= -cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= -cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= -cloud.google.com/go/container v1.24.0/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= -cloud.google.com/go/container v1.26.0/go.mod h1:YJCmRet6+6jnYYRS000T6k0D0xUXQgBSaJ7VwI8FBj4= -cloud.google.com/go/container v1.26.1/go.mod h1:5smONjPRUxeEpDG7bMKWfDL4sauswqEtnBK1/KKpR04= -cloud.google.com/go/container v1.26.2/go.mod h1:YlO84xCt5xupVbLaMY4s3XNE79MUJ+49VmkInr6HvF4= -cloud.google.com/go/container v1.27.1/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4= -cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= -cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= -cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= -cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= -cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0= -cloud.google.com/go/containeranalysis v0.11.0/go.mod h1:4n2e99ZwpGxpNcz+YsFT1dfOHPQFGcAC8FN2M2/ne/U= -cloud.google.com/go/containeranalysis v0.11.1/go.mod h1:rYlUOM7nem1OJMKwE1SadufX0JP3wnXj844EtZAwWLY= -cloud.google.com/go/containeranalysis v0.11.2/go.mod h1:xibioGBC1MD2j4reTyV1xY1/MvKaz+fyM9ENWhmIeP8= -cloud.google.com/go/containeranalysis v0.11.3/go.mod h1:kMeST7yWFQMGjiG9K7Eov+fPNQcGhb8mXj/UcTiWw9U= -cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= -cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= -cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= -cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= -cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= -cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= -cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= -cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= -cloud.google.com/go/datacatalog v1.14.0/go.mod h1:h0PrGtlihoutNMp/uvwhawLQ9+c63Kz65UFqh49Yo+E= -cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= -cloud.google.com/go/datacatalog v1.16.0/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= -cloud.google.com/go/datacatalog v1.17.1/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE= -cloud.google.com/go/datacatalog v1.18.0/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE= -cloud.google.com/go/datacatalog v1.18.1/go.mod h1:TzAWaz+ON1tkNr4MOcak8EBHX7wIRX/gZKM+yTVsv+A= -cloud.google.com/go/datacatalog v1.18.2/go.mod h1:SPVgWW2WEMuWHA+fHodYjmxPiMqcOiWfhc9OD5msigk= -cloud.google.com/go/datacatalog v1.18.3/go.mod h1:5FR6ZIF8RZrtml0VUao22FxhdjkoG+a0866rEnObryM= -cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= -cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= -cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= -cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw= -cloud.google.com/go/dataflow v0.9.2/go.mod h1:vBfdBZ/ejlTaYIGB3zB4T08UshH70vbtZeMD+urnUSo= -cloud.google.com/go/dataflow v0.9.3/go.mod h1:HI4kMVjcHGTs3jTHW/kv3501YW+eloiJSLxkJa/vqFE= -cloud.google.com/go/dataflow v0.9.4/go.mod h1:4G8vAkHYCSzU8b/kmsoR2lWyHJD85oMJPHMtan40K8w= -cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= -cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= -cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= -cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= -cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= -cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M= -cloud.google.com/go/dataform v0.8.2/go.mod h1:X9RIqDs6NbGPLR80tnYoPNiO1w0wenKTb8PxxlhTMKM= -cloud.google.com/go/dataform v0.8.3/go.mod h1:8nI/tvv5Fso0drO3pEjtowz58lodx8MVkdV2q0aPlqg= -cloud.google.com/go/dataform v0.9.1/go.mod h1:pWTg+zGQ7i16pyn0bS1ruqIE91SdL2FDMvEYu/8oQxs= -cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= -cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= -cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= -cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI= -cloud.google.com/go/datafusion v1.7.2/go.mod h1:62K2NEC6DRlpNmI43WHMWf9Vg/YvN6QVi8EVwifElI0= -cloud.google.com/go/datafusion v1.7.3/go.mod h1:eoLt1uFXKGBq48jy9LZ+Is8EAVLnmn50lNncLzwYokE= -cloud.google.com/go/datafusion v1.7.4/go.mod h1:BBs78WTOLYkT4GVZIXQCZT3GFpkpDN4aBY4NDX/jVlM= -cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= -cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= -cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= -cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY= -cloud.google.com/go/datalabeling v0.8.2/go.mod h1:cyDvGHuJWu9U/cLDA7d8sb9a0tWLEletStu2sTmg3BE= -cloud.google.com/go/datalabeling v0.8.3/go.mod h1:tvPhpGyS/V7lqjmb3V0TaDdGvhzgR1JoW7G2bpi2UTI= -cloud.google.com/go/datalabeling v0.8.4/go.mod h1:Z1z3E6LHtffBGrNUkKwbwbDxTiXEApLzIgmymj8A3S8= -cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= -cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= -cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= -cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= -cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= -cloud.google.com/go/dataplex v1.9.0/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= -cloud.google.com/go/dataplex v1.9.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= -cloud.google.com/go/dataplex v1.10.1/go.mod h1:1MzmBv8FvjYfc7vDdxhnLFNskikkB+3vl475/XdCDhs= -cloud.google.com/go/dataplex v1.10.2/go.mod h1:xdC8URdTrCrZMW6keY779ZT1cTOfV8KEPNsw+LTRT1Y= -cloud.google.com/go/dataplex v1.11.1/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= -cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= -cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= -cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= -cloud.google.com/go/dataproc/v2 v2.0.1/go.mod h1:7Ez3KRHdFGcfY7GcevBbvozX+zyWGcwLJvvAMwCaoZ4= -cloud.google.com/go/dataproc/v2 v2.2.0/go.mod h1:lZR7AQtwZPvmINx5J87DSOOpTfof9LVZju6/Qo4lmcY= -cloud.google.com/go/dataproc/v2 v2.2.1/go.mod h1:QdAJLaBjh+l4PVlVZcmrmhGccosY/omC1qwfQ61Zv/o= -cloud.google.com/go/dataproc/v2 v2.2.2/go.mod h1:aocQywVmQVF4i8CL740rNI/ZRpsaaC1Wh2++BJ7HEJ4= -cloud.google.com/go/dataproc/v2 v2.2.3/go.mod h1:G5R6GBc9r36SXv/RtZIVfB8SipI+xVn0bX5SxUzVYbY= -cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= -cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= -cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= -cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8= -cloud.google.com/go/dataqna v0.8.2/go.mod h1:KNEqgx8TTmUipnQsScOoDpq/VlXVptUqVMZnt30WAPs= -cloud.google.com/go/dataqna v0.8.3/go.mod h1:wXNBW2uvc9e7Gl5k8adyAMnLush1KVV6lZUhB+rqNu4= -cloud.google.com/go/dataqna v0.8.4/go.mod h1:mySRKjKg5Lz784P6sCov3p1QD+RZQONRMRjzGNcFd0c= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= -cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= -cloud.google.com/go/datastore v1.12.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= -cloud.google.com/go/datastore v1.12.1/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= -cloud.google.com/go/datastore v1.13.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= -cloud.google.com/go/datastore v1.14.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= -cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= -cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= -cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= -cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= -cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= -cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= -cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= -cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= -cloud.google.com/go/datastream v1.10.0/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= -cloud.google.com/go/datastream v1.10.1/go.mod h1:7ngSYwnw95YFyTd5tOGBxHlOZiL+OtpjheqU7t2/s/c= -cloud.google.com/go/datastream v1.10.2/go.mod h1:W42TFgKAs/om6x/CdXX5E4oiAsKlH+e8MTGy81zdYt0= -cloud.google.com/go/datastream v1.10.3/go.mod h1:YR0USzgjhqA/Id0Ycu1VvZe8hEWwrkjuXrGbzeDOSEA= -cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= -cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= -cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= -cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= -cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= -cloud.google.com/go/deploy v1.13.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= -cloud.google.com/go/deploy v1.13.1/go.mod h1:8jeadyLkH9qu9xgO3hVWw8jVr29N1mnW42gRJT8GY6g= -cloud.google.com/go/deploy v1.14.1/go.mod h1:N8S0b+aIHSEeSr5ORVoC0+/mOPUysVt8ae4QkZYolAw= -cloud.google.com/go/deploy v1.14.2/go.mod h1:e5XOUI5D+YGldyLNZ21wbp9S8otJbBE4i88PtO9x/2g= -cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= -cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= -cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= -cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= -cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= -cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= -cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= -cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= -cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= -cloud.google.com/go/dialogflow v1.40.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= -cloud.google.com/go/dialogflow v1.43.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M= -cloud.google.com/go/dialogflow v1.44.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M= -cloud.google.com/go/dialogflow v1.44.1/go.mod h1:n/h+/N2ouKOO+rbe/ZnI186xImpqvCVj2DdsWS/0EAk= -cloud.google.com/go/dialogflow v1.44.2/go.mod h1:QzFYndeJhpVPElnFkUXxdlptx0wPnBWLCBT9BvtC3/c= -cloud.google.com/go/dialogflow v1.44.3/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ= -cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= -cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= -cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= -cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI= -cloud.google.com/go/dlp v1.10.2/go.mod h1:ZbdKIhcnyhILgccwVDzkwqybthh7+MplGC3kZVZsIOQ= -cloud.google.com/go/dlp v1.10.3/go.mod h1:iUaTc/ln8I+QT6Ai5vmuwfw8fqTk2kaz0FvCwhLCom0= -cloud.google.com/go/dlp v1.11.1/go.mod h1:/PA2EnioBeXTL/0hInwgj0rfsQb3lpE3R8XUJxqUNKI= -cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= -cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= -cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= -cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= -cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= -cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= -cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= -cloud.google.com/go/documentai v1.22.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= -cloud.google.com/go/documentai v1.22.1/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc= -cloud.google.com/go/documentai v1.23.0/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc= -cloud.google.com/go/documentai v1.23.2/go.mod h1:Q/wcRT+qnuXOpjAkvOV4A+IeQl04q2/ReT7SSbytLSo= -cloud.google.com/go/documentai v1.23.4/go.mod h1:4MYAaEMnADPN1LPN5xboDR5QVB6AgsaxgFdJhitlE2Y= -cloud.google.com/go/documentai v1.23.5/go.mod h1:ghzBsyVTiVdkfKaUCum/9bGBEyBjDO4GfooEcYKhN+g= -cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= -cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= -cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= -cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE= -cloud.google.com/go/domains v0.9.2/go.mod h1:3YvXGYzZG1Temjbk7EyGCuGGiXHJwVNmwIf+E/cUp5I= -cloud.google.com/go/domains v0.9.3/go.mod h1:29k66YNDLDY9LCFKpGFeh6Nj9r62ZKm5EsUJxAl84KU= -cloud.google.com/go/domains v0.9.4/go.mod h1:27jmJGShuXYdUNjyDG0SodTfT5RwLi7xmH334Gvi3fY= -cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= -cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= -cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= -cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= -cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk= -cloud.google.com/go/edgecontainer v1.1.2/go.mod h1:wQRjIzqxEs9e9wrtle4hQPSR1Y51kqN75dgF7UllZZ4= -cloud.google.com/go/edgecontainer v1.1.3/go.mod h1:Ll2DtIABzEfaxaVSbwj3QHFaOOovlDFiWVDu349jSsA= -cloud.google.com/go/edgecontainer v1.1.4/go.mod h1:AvFdVuZuVGdgaE5YvlL1faAoa1ndRR/5XhXZvPBHbsE= -cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= -cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= -cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= -cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= -cloud.google.com/go/essentialcontacts v1.6.2/go.mod h1:T2tB6tX+TRak7i88Fb2N9Ok3PvY3UNbUsMag9/BARh4= -cloud.google.com/go/essentialcontacts v1.6.3/go.mod h1:yiPCD7f2TkP82oJEFXFTou8Jl8L6LBRPeBEkTaO0Ggo= -cloud.google.com/go/essentialcontacts v1.6.4/go.mod h1:iju5Vy3d9tJUg0PYMd1nHhjV7xoCXaOAVabrwLaPBEM= -cloud.google.com/go/essentialcontacts v1.6.5/go.mod h1:jjYbPzw0x+yglXC890l6ECJWdYeZ5dlYACTFL0U/VuM= -cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= -cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= -cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= -cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= -cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= -cloud.google.com/go/eventarc v1.13.0/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= -cloud.google.com/go/eventarc v1.13.1/go.mod h1:EqBxmGHFrruIara4FUQ3RHlgfCn7yo1HYsu2Hpt/C3Y= -cloud.google.com/go/eventarc v1.13.2/go.mod h1:X9A80ShVu19fb4e5sc/OLV7mpFUKZMwfJFeeWhcIObM= -cloud.google.com/go/eventarc v1.13.3/go.mod h1:RWH10IAZIRcj1s/vClXkBgMHwh59ts7hSWcqD3kaclg= -cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= -cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= -cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= -cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= -cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4= -cloud.google.com/go/filestore v1.7.2/go.mod h1:TYOlyJs25f/omgj+vY7/tIG/E7BX369triSPzE4LdgE= -cloud.google.com/go/filestore v1.7.3/go.mod h1:Qp8WaEERR3cSkxToxFPHh/b8AACkSut+4qlCjAmKTV0= -cloud.google.com/go/filestore v1.7.4/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI= -cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= -cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= -cloud.google.com/go/firestore v1.12.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= -cloud.google.com/go/firestore v1.13.0/go.mod h1:QojqqOh8IntInDUSTAh0c8ZsPYAr68Ma8c5DWOy8xb8= -cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ= -cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= -cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= -cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= -cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= -cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= -cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= -cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= -cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE= -cloud.google.com/go/functions v1.15.2/go.mod h1:CHAjtcR6OU4XF2HuiVeriEdELNcnvRZSk1Q8RMqy4lE= -cloud.google.com/go/functions v1.15.3/go.mod h1:r/AMHwBheapkkySEhiZYLDBwVJCdlRwsm4ieJu35/Ug= -cloud.google.com/go/functions v1.15.4/go.mod h1:CAsTc3VlRMVvx+XqXxKqVevguqJpnVip4DdonFsX28I= -cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= -cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= -cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= -cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= -cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= -cloud.google.com/go/gaming v1.10.1/go.mod h1:XQQvtfP8Rb9Rxnxm5wFVpAp9zCQkJi2bLIb7iHGwB3s= -cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= -cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= -cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= -cloud.google.com/go/gkebackup v1.3.0/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU= -cloud.google.com/go/gkebackup v1.3.1/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU= -cloud.google.com/go/gkebackup v1.3.2/go.mod h1:OMZbXzEJloyXMC7gqdSB+EOEQ1AKcpGYvO3s1ec5ixk= -cloud.google.com/go/gkebackup v1.3.3/go.mod h1:eMk7/wVV5P22KBakhQnJxWSVftL1p4VBFLpv0kIft7I= -cloud.google.com/go/gkebackup v1.3.4/go.mod h1:gLVlbM8h/nHIs09ns1qx3q3eaXcGSELgNu1DWXYz1HI= -cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= -cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= -cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= -cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw= -cloud.google.com/go/gkeconnect v0.8.2/go.mod h1:6nAVhwchBJYgQCXD2pHBFQNiJNyAd/wyxljpaa6ZPrY= -cloud.google.com/go/gkeconnect v0.8.3/go.mod h1:i9GDTrfzBSUZGCe98qSu1B8YB8qfapT57PenIb820Jo= -cloud.google.com/go/gkeconnect v0.8.4/go.mod h1:84hZz4UMlDCKl8ifVW8layK4WHlMAFeq8vbzjU0yJkw= -cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= -cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= -cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= -cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= -cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY= -cloud.google.com/go/gkehub v0.14.2/go.mod h1:iyjYH23XzAxSdhrbmfoQdePnlMj2EWcvnR+tHdBQsCY= -cloud.google.com/go/gkehub v0.14.3/go.mod h1:jAl6WafkHHW18qgq7kqcrXYzN08hXeK/Va3utN8VKg8= -cloud.google.com/go/gkehub v0.14.4/go.mod h1:Xispfu2MqnnFt8rV/2/3o73SK1snL8s9dYJ9G2oQMfc= -cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= -cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= -cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= -cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= -cloud.google.com/go/gkemulticloud v1.0.0/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= -cloud.google.com/go/gkemulticloud v1.0.1/go.mod h1:AcrGoin6VLKT/fwZEYuqvVominLriQBCKmbjtnbMjG8= -cloud.google.com/go/gkemulticloud v1.0.2/go.mod h1:+ee5VXxKb3H1l4LZAcgWB/rvI16VTNTrInWxDjAGsGo= -cloud.google.com/go/gkemulticloud v1.0.3/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= -cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= -cloud.google.com/go/grafeas v0.3.0/go.mod h1:P7hgN24EyONOTMyeJH6DxG4zD7fwiYa5Q6GUgyFSOU8= -cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= -cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= -cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= -cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY= -cloud.google.com/go/gsuiteaddons v1.6.2/go.mod h1:K65m9XSgs8hTF3X9nNTPi8IQueljSdYo9F+Mi+s4MyU= -cloud.google.com/go/gsuiteaddons v1.6.3/go.mod h1:sCFJkZoMrLZT3JTb8uJqgKPNshH2tfXeCwTFRebTq48= -cloud.google.com/go/gsuiteaddons v1.6.4/go.mod h1:rxtstw7Fx22uLOXBpsvb9DUbC+fiXs7rF4U29KHM/pE= -cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= -cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= -cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= -cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= -cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= -cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= -cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= -cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/iam v1.0.1/go.mod h1:yR3tmSL8BcZB4bxByRv2jkSIahVmCtfKZwLYGBalRE8= -cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= -cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= -cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= -cloud.google.com/go/iam v1.1.3/go.mod h1:3khUlaBXfPKKe7huYgEpDn6FtgRyMEqbkvBxrQyY5SE= -cloud.google.com/go/iam v1.1.4/go.mod h1:l/rg8l1AaA+VFMho/HYx2Vv6xinPSLMF8qfhRPIZ0L8= -cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= -cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= -cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= -cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= -cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= -cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= -cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ= -cloud.google.com/go/iap v1.9.0/go.mod h1:01OFxd1R+NFrg78S+hoPV5PxEzv22HXaNqUUlmNHFuY= -cloud.google.com/go/iap v1.9.1/go.mod h1:SIAkY7cGMLohLSdBR25BuIxO+I4fXJiL06IBL7cy/5Q= -cloud.google.com/go/iap v1.9.2/go.mod h1:GwDTOs047PPSnwRD0Us5FKf4WDRcVvHg1q9WVkKBhdI= -cloud.google.com/go/iap v1.9.3/go.mod h1:DTdutSZBqkkOm2HEOTBzhZxh2mwwxshfD/h3yofAiCw= -cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= -cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= -cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= -cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw= -cloud.google.com/go/ids v1.4.2/go.mod h1:3vw8DX6YddRu9BncxuzMyWn0g8+ooUjI2gslJ7FH3vk= -cloud.google.com/go/ids v1.4.3/go.mod h1:9CXPqI3GedjmkjbMWCUhMZ2P2N7TUMzAkVXYEH2orYU= -cloud.google.com/go/ids v1.4.4/go.mod h1:z+WUc2eEl6S/1aZWzwtVNWoSZslgzPxAboS0lZX0HjI= -cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= -cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= -cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= -cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= -cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk= -cloud.google.com/go/iot v1.7.2/go.mod h1:q+0P5zr1wRFpw7/MOgDXrG/HVA+l+cSwdObffkrpnSg= -cloud.google.com/go/iot v1.7.3/go.mod h1:t8itFchkol4VgNbHnIq9lXoOOtHNR3uAACQMYbN9N4I= -cloud.google.com/go/iot v1.7.4/go.mod h1:3TWqDVvsddYBG++nHSZmluoCAVGr1hAcabbWZNKEZLk= -cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= -cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= -cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= -cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= -cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= -cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= -cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= -cloud.google.com/go/kms v1.11.0/go.mod h1:hwdiYC0xjnWsKQQCQQmIQnS9asjYVSK6jtXm+zFqXLM= -cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= -cloud.google.com/go/kms v1.15.0/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= -cloud.google.com/go/kms v1.15.2/go.mod h1:3hopT4+7ooWRCjc2DxgnpESFxhIraaI2IpAVUEhbT/w= -cloud.google.com/go/kms v1.15.3/go.mod h1:AJdXqHxS2GlPyduM99s9iGqi2nwbviBbhV/hdmt4iOQ= -cloud.google.com/go/kms v1.15.4/go.mod h1:L3Sdj6QTHK8dfwK5D1JLsAyELsNMnd3tAIwGS4ltKpc= -cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= -cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= -cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= -cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= -cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= -cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= -cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0= -cloud.google.com/go/language v1.11.0/go.mod h1:uDx+pFDdAKTY8ehpWbiXyQdz8tDSYLJbQcXsCkjYyvQ= -cloud.google.com/go/language v1.11.1/go.mod h1:Xyid9MG9WOX3utvDbpX7j3tXDmmDooMyMDqgUVpH17U= -cloud.google.com/go/language v1.12.1/go.mod h1:zQhalE2QlQIxbKIZt54IASBzmZpN/aDASea5zl1l+J4= -cloud.google.com/go/language v1.12.2/go.mod h1:9idWapzr/JKXBBQ4lWqVX/hcadxB194ry20m/bTrhWc= -cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= -cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= -cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= -cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc= -cloud.google.com/go/lifesciences v0.9.2/go.mod h1:QHEOO4tDzcSAzeJg7s2qwnLM2ji8IRpQl4p6m5Z9yTA= -cloud.google.com/go/lifesciences v0.9.3/go.mod h1:gNGBOJV80IWZdkd+xz4GQj4mbqaz737SCLHn2aRhQKM= -cloud.google.com/go/lifesciences v0.9.4/go.mod h1:bhm64duKhMi7s9jR9WYJYvjAFJwRqNj+Nia7hF0Z7JA= -cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= -cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= -cloud.google.com/go/logging v1.8.1/go.mod h1:TJjR+SimHwuC8MZ9cjByQulAMgni+RkXeI3wwctHJEI= -cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= -cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= -cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= -cloud.google.com/go/longrunning v0.4.2/go.mod h1:OHrnaYyLUV6oqwh0xiS7e5sLQhP1m0QU9R+WhGDMgIQ= -cloud.google.com/go/longrunning v0.5.0/go.mod h1:0JNuqRShmscVAhIACGtskSAWtqtOoPkwP0YF1oVEchc= -cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= -cloud.google.com/go/longrunning v0.5.2/go.mod h1:nqo6DQbNV2pXhGDbDMoN2bWz68MjZUzqv2YttZiveCs= -cloud.google.com/go/longrunning v0.5.3/go.mod h1:y/0ga59EYu58J6SHmmQOvekvND2qODbu8ywBBW7EK7Y= -cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= -cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= -cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= -cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= -cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak= -cloud.google.com/go/managedidentities v1.6.2/go.mod h1:5c2VG66eCa0WIq6IylRk3TBW83l161zkFvCj28X7jn8= -cloud.google.com/go/managedidentities v1.6.3/go.mod h1:tewiat9WLyFN0Fi7q1fDD5+0N4VUoL0SCX0OTCthZq4= -cloud.google.com/go/managedidentities v1.6.4/go.mod h1:WgyaECfHmF00t/1Uk8Oun3CQ2PGUtjc3e9Alh79wyiM= -cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= -cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= -cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= -cloud.google.com/go/maps v1.3.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s= -cloud.google.com/go/maps v1.4.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s= -cloud.google.com/go/maps v1.4.1/go.mod h1:BxSa0BnW1g2U2gNdbq5zikLlHUuHW0GFWh7sgML2kIY= -cloud.google.com/go/maps v1.5.1/go.mod h1:NPMZw1LJwQZYCfz4y+EIw+SI+24A4bpdFJqdKVr0lt4= -cloud.google.com/go/maps v1.6.1/go.mod h1:4+buOHhYXFBp58Zj/K+Lc1rCmJssxxF4pJ5CJnhdz18= -cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= -cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= -cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= -cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig= -cloud.google.com/go/mediatranslation v0.8.2/go.mod h1:c9pUaDRLkgHRx3irYE5ZC8tfXGrMYwNZdmDqKMSfFp8= -cloud.google.com/go/mediatranslation v0.8.3/go.mod h1:F9OnXTy336rteOEywtY7FOqCk+J43o2RF638hkOQl4Y= -cloud.google.com/go/mediatranslation v0.8.4/go.mod h1:9WstgtNVAdN53m6TQa5GjIjLqKQPXe74hwSCxUP6nj4= -cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= -cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= -cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= -cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= -cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= -cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA= -cloud.google.com/go/memcache v1.10.2/go.mod h1:f9ZzJHLBrmd4BkguIAa/l/Vle6uTHzHokdnzSWOdQ6A= -cloud.google.com/go/memcache v1.10.3/go.mod h1:6z89A41MT2DVAW0P4iIRdu5cmRTsbsFn4cyiIx8gbwo= -cloud.google.com/go/memcache v1.10.4/go.mod h1:v/d8PuC8d1gD6Yn5+I3INzLR01IDn0N4Ym56RgikSI0= -cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= -cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= -cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= -cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= -cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= -cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= -cloud.google.com/go/metastore v1.12.0/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= -cloud.google.com/go/metastore v1.13.0/go.mod h1:URDhpG6XLeh5K+Glq0NOt74OfrPKTwS62gEPZzb5SOk= -cloud.google.com/go/metastore v1.13.1/go.mod h1:IbF62JLxuZmhItCppcIfzBBfUFq0DIB9HPDoLgWrVOU= -cloud.google.com/go/metastore v1.13.2/go.mod h1:KS59dD+unBji/kFebVp8XU/quNSyo8b6N6tPGspKszA= -cloud.google.com/go/metastore v1.13.3/go.mod h1:K+wdjXdtkdk7AQg4+sXS8bRrQa9gcOr+foOMF2tqINE= -cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= -cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= -cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= -cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= -cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM= -cloud.google.com/go/monitoring v1.16.0/go.mod h1:Ptp15HgAyM1fNICAojDMoNc/wUmn67mLHQfyqbw+poY= -cloud.google.com/go/monitoring v1.16.1/go.mod h1:6HsxddR+3y9j+o/cMJH6q/KJ/CBTvM/38L/1m7bTRJ4= -cloud.google.com/go/monitoring v1.16.2/go.mod h1:B44KGwi4ZCF8Rk/5n+FWeispDXoKSk9oss2QNlXJBgc= -cloud.google.com/go/monitoring v1.16.3/go.mod h1:KwSsX5+8PnXv5NJnICZzW2R8pWTis8ypC4zmdRD63Tw= -cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= -cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= -cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= -cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= -cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= -cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= -cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E= -cloud.google.com/go/networkconnectivity v1.13.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk= -cloud.google.com/go/networkconnectivity v1.14.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk= -cloud.google.com/go/networkconnectivity v1.14.1/go.mod h1:LyGPXR742uQcDxZ/wv4EI0Vu5N6NKJ77ZYVnDe69Zug= -cloud.google.com/go/networkconnectivity v1.14.2/go.mod h1:5UFlwIisZylSkGG1AdwK/WZUaoz12PKu6wODwIbFzJo= -cloud.google.com/go/networkconnectivity v1.14.3/go.mod h1:4aoeFdrJpYEXNvrnfyD5kIzs8YtHg945Og4koAjHQek= -cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= -cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= -cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= -cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0= -cloud.google.com/go/networkmanagement v1.9.0/go.mod h1:UTUaEU9YwbCAhhz3jEOHr+2/K/MrBk2XxOLS89LQzFw= -cloud.google.com/go/networkmanagement v1.9.1/go.mod h1:CCSYgrQQvW73EJawO2QamemYcOb57LvrDdDU51F0mcI= -cloud.google.com/go/networkmanagement v1.9.2/go.mod h1:iDGvGzAoYRghhp4j2Cji7sF899GnfGQcQRQwgVOWnDw= -cloud.google.com/go/networkmanagement v1.9.3/go.mod h1:y7WMO1bRLaP5h3Obm4tey+NquUvB93Co1oh4wpL+XcU= -cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= -cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= -cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= -cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= -cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ= -cloud.google.com/go/networksecurity v0.9.2/go.mod h1:jG0SeAttWzPMUILEHDUvFYdQTl8L/E/KC8iZDj85lEI= -cloud.google.com/go/networksecurity v0.9.3/go.mod h1:l+C0ynM6P+KV9YjOnx+kk5IZqMSLccdBqW6GUoF4p/0= -cloud.google.com/go/networksecurity v0.9.4/go.mod h1:E9CeMZ2zDsNBkr8axKSYm8XyTqNhiCHf1JO/Vb8mD1w= -cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= -cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= -cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= -cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= -cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= -cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= -cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8= -cloud.google.com/go/notebooks v1.10.0/go.mod h1:SOPYMZnttHxqot0SGSFSkRrwE29eqnKPBJFqgWmiK2k= -cloud.google.com/go/notebooks v1.10.1/go.mod h1:5PdJc2SgAybE76kFQCWrTfJolCOUQXF97e+gteUUA6A= -cloud.google.com/go/notebooks v1.11.1/go.mod h1:V2Zkv8wX9kDCGRJqYoI+bQAaoVeE5kSiz4yYHd2yJwQ= -cloud.google.com/go/notebooks v1.11.2/go.mod h1:z0tlHI/lREXC8BS2mIsUeR3agM1AkgLiS+Isov3SS70= -cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= -cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= -cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= -cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk= -cloud.google.com/go/optimization v1.5.0/go.mod h1:evo1OvTxeBRBu6ydPlrIRizKY/LJKo/drDMMRKqGEUU= -cloud.google.com/go/optimization v1.5.1/go.mod h1:NC0gnUD5MWVAF7XLdoYVPmYYVth93Q6BUzqAq3ZwtV8= -cloud.google.com/go/optimization v1.6.1/go.mod h1:hH2RYPTTM9e9zOiTaYPTiGPcGdNZVnBSBxjIAJzUkqo= -cloud.google.com/go/optimization v1.6.2/go.mod h1:mWNZ7B9/EyMCcwNl1frUGEuY6CPijSkz88Fz2vwKPOY= -cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= -cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= -cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= -cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8= -cloud.google.com/go/orchestration v1.8.2/go.mod h1:T1cP+6WyTmh6LSZzeUhvGf0uZVmJyTx7t8z7Vg87+A0= -cloud.google.com/go/orchestration v1.8.3/go.mod h1:xhgWAYqlbYjlz2ftbFghdyqENYW+JXuhBx9KsjMoGHs= -cloud.google.com/go/orchestration v1.8.4/go.mod h1:d0lywZSVYtIoSZXb0iFjv9SaL13PGyVOKDxqGxEf/qI= -cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= -cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= -cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= -cloud.google.com/go/orgpolicy v1.11.0/go.mod h1:2RK748+FtVvnfuynxBzdnyu7sygtoZa1za/0ZfpOs1M= -cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE= -cloud.google.com/go/orgpolicy v1.11.2/go.mod h1:biRDpNwfyytYnmCRWZWxrKF22Nkz9eNVj9zyaBdpm1o= -cloud.google.com/go/orgpolicy v1.11.3/go.mod h1:oKAtJ/gkMjum5icv2aujkP4CxROxPXsBbYGCDbPO8MM= -cloud.google.com/go/orgpolicy v1.11.4/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI= -cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= -cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= -cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= -cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= -cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= -cloud.google.com/go/osconfig v1.12.0/go.mod h1:8f/PaYzoS3JMVfdfTubkowZYGmAhUCjjwnjqWI7NVBc= -cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE= -cloud.google.com/go/osconfig v1.12.2/go.mod h1:eh9GPaMZpI6mEJEuhEjUJmaxvQ3gav+fFEJon1Y8Iw0= -cloud.google.com/go/osconfig v1.12.3/go.mod h1:L/fPS8LL6bEYUi1au832WtMnPeQNT94Zo3FwwV1/xGM= -cloud.google.com/go/osconfig v1.12.4/go.mod h1:B1qEwJ/jzqSRslvdOCI8Kdnp0gSng0xW4LOnIebQomA= -cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= -cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= -cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= -cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= -cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= -cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs= -cloud.google.com/go/oslogin v1.11.0/go.mod h1:8GMTJs4X2nOAUVJiPGqIWVcDaF0eniEto3xlOxaboXE= -cloud.google.com/go/oslogin v1.11.1/go.mod h1:OhD2icArCVNUxKqtK0mcSmKL7lgr0LVlQz+v9s1ujTg= -cloud.google.com/go/oslogin v1.12.1/go.mod h1:VfwTeFJGbnakxAY236eN8fsnglLiVXndlbcNomY4iZU= -cloud.google.com/go/oslogin v1.12.2/go.mod h1:CQ3V8Jvw4Qo4WRhNPF0o+HAM4DiLuE27Ul9CX9g2QdY= -cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= -cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= -cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= -cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I= -cloud.google.com/go/phishingprotection v0.8.2/go.mod h1:LhJ91uyVHEYKSKcMGhOa14zMMWfbEdxG032oT6ECbC8= -cloud.google.com/go/phishingprotection v0.8.3/go.mod h1:3B01yO7T2Ra/TMojifn8EoGd4G9jts/6cIO0DgDY9J8= -cloud.google.com/go/phishingprotection v0.8.4/go.mod h1:6b3kNPAc2AQ6jZfFHioZKg9MQNybDg4ixFd4RPZZ2nE= -cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= -cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= -cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= -cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= -cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0= -cloud.google.com/go/policytroubleshooter v1.8.0/go.mod h1:tmn5Ir5EToWe384EuboTcVQT7nTag2+DuH3uHmKd1HU= -cloud.google.com/go/policytroubleshooter v1.9.0/go.mod h1:+E2Lga7TycpeSTj2FsH4oXxTnrbHJGRlKhVZBLGgU64= -cloud.google.com/go/policytroubleshooter v1.9.1/go.mod h1:MYI8i0bCrL8cW+VHN1PoiBTyNZTstCg2WUw2eVC4c4U= -cloud.google.com/go/policytroubleshooter v1.10.1/go.mod h1:5C0rhT3TDZVxAu8813bwmTvd57Phbl8mr9F4ipOsxEs= -cloud.google.com/go/policytroubleshooter v1.10.2/go.mod h1:m4uF3f6LseVEnMV6nknlN2vYGRb+75ylQwJdnOXfnv0= -cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= -cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= -cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= -cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= -cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA= -cloud.google.com/go/privatecatalog v0.9.2/go.mod h1:RMA4ATa8IXfzvjrhhK8J6H4wwcztab+oZph3c6WmtFc= -cloud.google.com/go/privatecatalog v0.9.3/go.mod h1:K5pn2GrVmOPjXz3T26mzwXLcKivfIJ9R5N79AFCF9UE= -cloud.google.com/go/privatecatalog v0.9.4/go.mod h1:SOjm93f+5hp/U3PqMZAHTtBtluqLygrDrVO8X8tYtG0= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= -cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= -cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= -cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= -cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= -cloud.google.com/go/pubsub v1.33.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= -cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= -cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= -cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= -cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0= -cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= -cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= -cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= -cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= -cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= -cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= -cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= -cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= -cloud.google.com/go/recaptchaenterprise/v2 v2.7.2/go.mod h1:kR0KjsJS7Jt1YSyWFkseQ756D45kaYNTlDPPaRAvDBU= -cloud.google.com/go/recaptchaenterprise/v2 v2.8.0/go.mod h1:QuE8EdU9dEnesG8/kG3XuJyNsjEqMlMzg3v3scCJ46c= -cloud.google.com/go/recaptchaenterprise/v2 v2.8.1/go.mod h1:JZYZJOeZjgSSTGP4uz7NlQ4/d1w5hGmksVgM0lbEij0= -cloud.google.com/go/recaptchaenterprise/v2 v2.8.2/go.mod h1:kpaDBOpkwD4G0GVMzG1W6Doy1tFFC97XAV3xy+Rd/pw= -cloud.google.com/go/recaptchaenterprise/v2 v2.8.3/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w= -cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= -cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= -cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= -cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE= -cloud.google.com/go/recommendationengine v0.8.2/go.mod h1:QIybYHPK58qir9CV2ix/re/M//Ty10OxjnnhWdaKS1Y= -cloud.google.com/go/recommendationengine v0.8.3/go.mod h1:m3b0RZV02BnODE9FeSvGv1qibFo8g0OnmB/RMwYy4V8= -cloud.google.com/go/recommendationengine v0.8.4/go.mod h1:GEteCf1PATl5v5ZsQ60sTClUE0phbWmo3rQ1Js8louU= -cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= -cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= -cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= -cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= -cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= -cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA= -cloud.google.com/go/recommender v1.11.0/go.mod h1:kPiRQhPyTJ9kyXPCG6u/dlPLbYfFlkwHNRwdzPVAoII= -cloud.google.com/go/recommender v1.11.1/go.mod h1:sGwFFAyI57v2Hc5LbIj+lTwXipGu9NW015rkaEM5B18= -cloud.google.com/go/recommender v1.11.2/go.mod h1:AeoJuzOvFR/emIcXdVFkspVXVTYpliRCmKNYDnyBv6Y= -cloud.google.com/go/recommender v1.11.3/go.mod h1:+FJosKKJSId1MBFeJ/TTyoGQZiEelQQIZMKYYD8ruK4= -cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= -cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= -cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= -cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= -cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= -cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg= -cloud.google.com/go/redis v1.13.2/go.mod h1:0Hg7pCMXS9uz02q+LoEVl5dNHUkIQv+C/3L76fandSA= -cloud.google.com/go/redis v1.13.3/go.mod h1:vbUpCKUAZSYzFcWKmICnYgRAhTFg9r+djWqFxDYXi4U= -cloud.google.com/go/redis v1.14.1/go.mod h1:MbmBxN8bEnQI4doZPC1BzADU4HGocHBk2de3SbgOkqs= -cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= -cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= -cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= -cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= -cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= -cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8= -cloud.google.com/go/resourcemanager v1.9.2/go.mod h1:OujkBg1UZg5lX2yIyMo5Vz9O5hf7XQOSV7WxqxxMtQE= -cloud.google.com/go/resourcemanager v1.9.3/go.mod h1:IqrY+g0ZgLsihcfcmqSe+RKp1hzjXwG904B92AwBz6U= -cloud.google.com/go/resourcemanager v1.9.4/go.mod h1:N1dhP9RFvo3lUfwtfLWVxfUWq8+KUQ+XLlHLH3BoFJ0= -cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= -cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= -cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= -cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw= -cloud.google.com/go/resourcesettings v1.6.2/go.mod h1:mJIEDd9MobzunWMeniaMp6tzg4I2GvD3TTmPkc8vBXk= -cloud.google.com/go/resourcesettings v1.6.3/go.mod h1:pno5D+7oDYkMWZ5BpPsb4SO0ewg3IXcmmrUZaMJrFic= -cloud.google.com/go/resourcesettings v1.6.4/go.mod h1:pYTTkWdv2lmQcjsthbZLNBP4QW140cs7wqA3DuqErVI= -cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= -cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= -cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= -cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= -cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= -cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE= -cloud.google.com/go/retail v1.14.2/go.mod h1:W7rrNRChAEChX336QF7bnMxbsjugcOCPU44i5kbLiL8= -cloud.google.com/go/retail v1.14.3/go.mod h1:Omz2akDHeSlfCq8ArPKiBxlnRpKEBjUH386JYFLUvXo= -cloud.google.com/go/retail v1.14.4/go.mod h1:l/N7cMtY78yRnJqp5JW8emy7MB1nz8E4t2yfOmklYfg= -cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= -cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= -cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= -cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= -cloud.google.com/go/run v1.2.0/go.mod h1:36V1IlDzQ0XxbQjUx6IYbw8H3TJnWvhii963WW3B/bo= -cloud.google.com/go/run v1.3.0/go.mod h1:S/osX/4jIPZGg+ssuqh6GNgg7syixKe3YnprwehzHKU= -cloud.google.com/go/run v1.3.1/go.mod h1:cymddtZOzdwLIAsmS6s+Asl4JoXIDm/K1cpZTxV4Q5s= -cloud.google.com/go/run v1.3.2/go.mod h1:SIhmqArbjdU/D9M6JoHaAqnAMKLFtXaVdNeq04NjnVE= -cloud.google.com/go/run v1.3.3/go.mod h1:WSM5pGyJ7cfYyYbONVQBN4buz42zFqwG67Q3ch07iK4= -cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= -cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= -cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= -cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= -cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= -cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= -cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo= -cloud.google.com/go/scheduler v1.10.2/go.mod h1:O3jX6HRH5eKCA3FutMw375XHZJudNIKVonSCHv7ropY= -cloud.google.com/go/scheduler v1.10.3/go.mod h1:8ANskEM33+sIbpJ+R4xRfw/jzOG+ZFE8WVLy7/yGvbc= -cloud.google.com/go/scheduler v1.10.4/go.mod h1:MTuXcrJC9tqOHhixdbHDFSIuh7xZF2IysiINDuiq6NI= -cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= -cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= -cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= -cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= -cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw= -cloud.google.com/go/secretmanager v1.11.2/go.mod h1:MQm4t3deoSub7+WNwiC4/tRYgDBHJgJPvswqQVB1Vss= -cloud.google.com/go/secretmanager v1.11.3/go.mod h1:0bA2o6FabmShrEy328i67aV+65XoUFFSmVeLBn/51jI= -cloud.google.com/go/secretmanager v1.11.4/go.mod h1:wreJlbS9Zdq21lMzWmJ0XhWW2ZxgPeahsqeV/vZoJ3w= -cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= -cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= -cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= -cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= -cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= -cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= -cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= -cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA= -cloud.google.com/go/security v1.15.2/go.mod h1:2GVE/v1oixIRHDaClVbHuPcZwAqFM28mXuAKCfMgYIg= -cloud.google.com/go/security v1.15.3/go.mod h1:gQ/7Q2JYUZZgOzqKtw9McShH+MjNvtDpL40J1cT+vBs= -cloud.google.com/go/security v1.15.4/go.mod h1:oN7C2uIZKhxCLiAAijKUCuHLZbIt/ghYEo8MqwD/Ty4= -cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= -cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= -cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= -cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= -cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= -cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= -cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ= -cloud.google.com/go/securitycenter v1.23.1/go.mod h1:w2HV3Mv/yKhbXKwOCu2i8bCuLtNP1IMHuiYQn4HJq5s= -cloud.google.com/go/securitycenter v1.24.1/go.mod h1:3h9IdjjHhVMXdQnmqzVnM7b0wMn/1O/U20eWVpMpZjI= -cloud.google.com/go/securitycenter v1.24.2/go.mod h1:l1XejOngggzqwr4Fa2Cn+iWZGf+aBLTXtB/vXjy5vXM= -cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= -cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= -cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= -cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= -cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= -cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= -cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= -cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= -cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= -cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= -cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= -cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= -cloud.google.com/go/servicedirectory v1.11.0/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= -cloud.google.com/go/servicedirectory v1.11.1/go.mod h1:tJywXimEWzNzw9FvtNjsQxxJ3/41jseeILgwU/QLrGI= -cloud.google.com/go/servicedirectory v1.11.2/go.mod h1:KD9hCLhncWRV5jJphwIpugKwM5bn1x0GyVVD4NO8mGg= -cloud.google.com/go/servicedirectory v1.11.3/go.mod h1:LV+cHkomRLr67YoQy3Xq2tUXBGOs5z5bPofdq7qtiAw= -cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= -cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= -cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= -cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= -cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= -cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= -cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= -cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= -cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= -cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= -cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= -cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g= -cloud.google.com/go/shell v1.7.2/go.mod h1:KqRPKwBV0UyLickMn0+BY1qIyE98kKyI216sH/TuHmc= -cloud.google.com/go/shell v1.7.3/go.mod h1:cTTEz/JdaBsQAeTQ3B6HHldZudFoYBOqjteev07FbIc= -cloud.google.com/go/shell v1.7.4/go.mod h1:yLeXB8eKLxw0dpEmXQ/FjriYrBijNsONpwnWsdPqlKM= -cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= -cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= -cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= -cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI= -cloud.google.com/go/spanner v1.49.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM= -cloud.google.com/go/spanner v1.50.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM= -cloud.google.com/go/spanner v1.51.0/go.mod h1:c5KNo5LQ1X5tJwma9rSQZsXNBDNvj4/n8BVc3LNahq0= -cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= -cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= -cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= -cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= -cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= -cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= -cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= -cloud.google.com/go/speech v1.19.0/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= -cloud.google.com/go/speech v1.19.1/go.mod h1:WcuaWz/3hOlzPFOVo9DUsblMIHwxP589y6ZMtaG+iAA= -cloud.google.com/go/speech v1.19.2/go.mod h1:2OYFfj+Ch5LWjsaSINuCZsre/789zlcCI3SY4oAi2oI= -cloud.google.com/go/speech v1.20.1/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= -cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= -cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= -cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= -cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= -cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= -cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= -cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= -cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= -cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA= -cloud.google.com/go/storagetransfer v1.10.1/go.mod h1:rS7Sy0BtPviWYTTJVWCSV4QrbBitgPeuK4/FKa4IdLs= -cloud.google.com/go/storagetransfer v1.10.2/go.mod h1:meIhYQup5rg9juQJdyppnA/WLQCOguxtk1pr3/vBWzA= -cloud.google.com/go/storagetransfer v1.10.3/go.mod h1:Up8LY2p6X68SZ+WToswpQbQHnJpOty/ACcMafuey8gc= -cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= -cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= -cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= -cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= -cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= -cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24= -cloud.google.com/go/talent v1.6.3/go.mod h1:xoDO97Qd4AK43rGjJvyBHMskiEf3KulgYzcH6YWOVoo= -cloud.google.com/go/talent v1.6.4/go.mod h1:QsWvi5eKeh6gG2DlBkpMaFYZYrYUnIpo34f6/V5QykY= -cloud.google.com/go/talent v1.6.5/go.mod h1:Mf5cma696HmE+P2BWJ/ZwYqeJXEeU0UqjHFXVLadEDI= -cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= -cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= -cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= -cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0hCZBwXYqucgSk= -cloud.google.com/go/texttospeech v1.7.2/go.mod h1:VYPT6aTOEl3herQjFHYErTlSZJ4vB00Q2ZTmuVgluD4= -cloud.google.com/go/texttospeech v1.7.3/go.mod h1:Av/zpkcgWfXlDLRYob17lqMstGZ3GqlvJXqKMp2u8so= -cloud.google.com/go/texttospeech v1.7.4/go.mod h1:vgv0002WvR4liGuSd5BJbWy4nDn5Ozco0uJymY5+U74= -cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= -cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= -cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= -cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E= -cloud.google.com/go/tpu v1.6.2/go.mod h1:NXh3NDwt71TsPZdtGWgAG5ThDfGd32X1mJ2cMaRlVgU= -cloud.google.com/go/tpu v1.6.3/go.mod h1:lxiueqfVMlSToZY1151IaZqp89ELPSrk+3HIQ5HRkbY= -cloud.google.com/go/tpu v1.6.4/go.mod h1:NAm9q3Rq2wIlGnOhpYICNI7+bpBebMJbh0yyp3aNw1Y= -cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= -cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= -cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= -cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= -cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk= -cloud.google.com/go/trace v1.10.2/go.mod h1:NPXemMi6MToRFcSxRl2uDnu/qAlAQ3oULUphcHGh1vA= -cloud.google.com/go/trace v1.10.3/go.mod h1:Ke1bgfc73RV3wUFml+uQp7EsDw4dGaETLxB7Iq/r4CY= -cloud.google.com/go/trace v1.10.4/go.mod h1:Nso99EDIK8Mj5/zmB+iGr9dosS/bzWCJ8wGmE6TXNWY= -cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= -cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= -cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= -cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= -cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= -cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= -cloud.google.com/go/translate v1.8.2/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= -cloud.google.com/go/translate v1.9.0/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= -cloud.google.com/go/translate v1.9.1/go.mod h1:TWIgDZknq2+JD4iRcojgeDtqGEp154HN/uL6hMvylS8= -cloud.google.com/go/translate v1.9.2/go.mod h1:E3Tc6rUTsQkVrXW6avbUhKJSr7ZE3j7zNmqzXKHqRrY= -cloud.google.com/go/translate v1.9.3/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0= -cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= -cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= -cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= -cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= -cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= -cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= -cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= -cloud.google.com/go/video v1.19.0/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= -cloud.google.com/go/video v1.20.0/go.mod h1:U3G3FTnsvAGqglq9LxgqzOiBc/Nt8zis8S+850N2DUM= -cloud.google.com/go/video v1.20.1/go.mod h1:3gJS+iDprnj8SY6pe0SwLeC5BUW80NjhwX7INWEuWGU= -cloud.google.com/go/video v1.20.2/go.mod h1:lrixr5JeKNThsgfM9gqtwb6Okuqzfo4VrY2xynaViTA= -cloud.google.com/go/video v1.20.3/go.mod h1:TnH/mNZKVHeNtpamsSPygSR0iHtvrR/cW1/GDjN5+GU= -cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= -cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= -cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= -cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= -cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= -cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo= -cloud.google.com/go/videointelligence v1.11.2/go.mod h1:ocfIGYtIVmIcWk1DsSGOoDiXca4vaZQII1C85qtoplc= -cloud.google.com/go/videointelligence v1.11.3/go.mod h1:tf0NUaGTjU1iS2KEkGWvO5hRHeCkFK3nPo0/cOZhZAo= -cloud.google.com/go/videointelligence v1.11.4/go.mod h1:kPBMAYsTPFiQxMLmmjpcZUMklJp3nC9+ipJJtprccD8= -cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= -cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= -cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= -cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= -cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= -cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= -cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= -cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU= -cloud.google.com/go/vision/v2 v2.7.3/go.mod h1:V0IcLCY7W+hpMKXK1JYE0LV5llEqVmj+UJChjvA1WsM= -cloud.google.com/go/vision/v2 v2.7.4/go.mod h1:ynDKnsDN/0RtqkKxQZ2iatv3Dm9O+HfRb5djl7l4Vvw= -cloud.google.com/go/vision/v2 v2.7.5/go.mod h1:GcviprJLFfK9OLf0z8Gm6lQb6ZFUulvpZws+mm6yPLM= -cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= -cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= -cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= -cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= -cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro= -cloud.google.com/go/vmmigration v1.7.2/go.mod h1:iA2hVj22sm2LLYXGPT1pB63mXHhrH1m/ruux9TwWLd8= -cloud.google.com/go/vmmigration v1.7.3/go.mod h1:ZCQC7cENwmSWlwyTrZcWivchn78YnFniEQYRWQ65tBo= -cloud.google.com/go/vmmigration v1.7.4/go.mod h1:yBXCmiLaB99hEl/G9ZooNx2GyzgsjKnw5fWcINRgD70= -cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= -cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= -cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= -cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= -cloud.google.com/go/vmwareengine v1.0.0/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= -cloud.google.com/go/vmwareengine v1.0.1/go.mod h1:aT3Xsm5sNx0QShk1Jc1B8OddrxAScYLwzVoaiXfdzzk= -cloud.google.com/go/vmwareengine v1.0.2/go.mod h1:xMSNjIk8/itYrz1JA8nV3Ajg4L4n3N+ugP8JKzk3OaA= -cloud.google.com/go/vmwareengine v1.0.3/go.mod h1:QSpdZ1stlbfKtyt6Iu19M6XRxjmXO+vb5a/R6Fvy2y4= -cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= -cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= -cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= -cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs= -cloud.google.com/go/vpcaccess v1.7.2/go.mod h1:mmg/MnRHv+3e8FJUjeSibVFvQF1cCy2MsFaFqxeY1HU= -cloud.google.com/go/vpcaccess v1.7.3/go.mod h1:YX4skyfW3NC8vI3Fk+EegJnlYFatA+dXK4o236EUCUc= -cloud.google.com/go/vpcaccess v1.7.4/go.mod h1:lA0KTvhtEOb/VOdnH/gwPuOzGgM+CWsmGu6bb4IoMKk= -cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= -cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= -cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= -cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= -cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= -cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc= -cloud.google.com/go/webrisk v1.9.2/go.mod h1:pY9kfDgAqxUpDBOrG4w8deLfhvJmejKB0qd/5uQIPBc= -cloud.google.com/go/webrisk v1.9.3/go.mod h1:RUYXe9X/wBDXhVilss7EDLW9ZNa06aowPuinUOPCXH8= -cloud.google.com/go/webrisk v1.9.4/go.mod h1:w7m4Ib4C+OseSr2GL66m0zMBywdrVNTDKsdEsfMl7X0= -cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= -cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= -cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= -cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg= -cloud.google.com/go/websecurityscanner v1.6.2/go.mod h1:7YgjuU5tun7Eg2kpKgGnDuEOXWIrh8x8lWrJT4zfmas= -cloud.google.com/go/websecurityscanner v1.6.3/go.mod h1:x9XANObUFR+83Cya3g/B9M/yoHVqzxPnFtgF8yYGAXw= -cloud.google.com/go/websecurityscanner v1.6.4/go.mod h1:mUiyMQ+dGpPPRkHgknIZeCzSHJ45+fY4F52nZFDHm2o= -cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= -cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= -cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= -cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= -cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g= -cloud.google.com/go/workflows v1.12.0/go.mod h1:PYhSk2b6DhZ508tj8HXKaBh+OFe+xdl0dHF/tJdzPQM= -cloud.google.com/go/workflows v1.12.1/go.mod h1:5A95OhD/edtOhQd/O741NSfIMezNTbCwLM1P1tBRGHM= -cloud.google.com/go/workflows v1.12.2/go.mod h1:+OmBIgNqYJPVggnMo9nqmizW0qEXHhmnAzK/CnBqsHc= -cloud.google.com/go/workflows v1.12.3/go.mod h1:fmOUeeqEwPzIU81foMjTRQIdwQHADi/vEr1cx9R1m5g= -connectrpc.com/connect v1.16.2 h1:ybd6y+ls7GOlb7Bh5C8+ghA6SvCBajHwxssO2CGFjqE= -connectrpc.com/connect v1.16.2/go.mod h1:n2kgwskMHXC+lVqb18wngEpF95ldBHXjZYJussz5FRc= -connectrpc.com/otelconnect v0.7.0 h1:ZH55ZZtcJOTKWWLy3qmL4Pam4RzRWBJFOqTPyAqCXkY= -connectrpc.com/otelconnect v0.7.0/go.mod h1:Bt2ivBymHZHqxvo4HkJ0EwHuUzQN6k2l0oH+mp/8nwc= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= -git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/IBM/sarama v1.43.2 h1:HABeEqRUh32z8yzY2hGB/j8mHSzC/HA9zlEjqFNCzSw= -github.com/IBM/sarama v1.43.2/go.mod h1:Kyo4WkF24Z+1nz7xeVUFWIuKVV8RS3wM8mkvPKMdXFQ= -github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= -github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= -github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= -github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= -github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= -github.com/apache/arrow/go/v12 v12.0.0/go.mod h1:d+tV/eHZZ7Dz7RPrFKtPK02tpr+c9/PEd/zm8mDS9Vg= -github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1 h1:dU3vvR6d5iVwHBVQVS14ci+i29+4lLT8HjYktYSTPF8= +buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1/go.mod h1:jKw7gioqYsWaHUKr5Ja6MiadsXcrGJxQ86gucJ0luUA= +buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1 h1:18ZObecoJfRbNQDeuW0PoBR829Mw8FrPrmWIbbaA5hs= +buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1/go.mod h1:WA65xyBj+VxPfJ3a+EqdZtWGeNdwqiaQO1sriHaNL1Y= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1 h1:z4CfAMlT5uylpjQ9XXdLTSzBRl+clmUN7rt44VmJhLo= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1/go.mod h1:y7yb/W0yMTBxf0mX+07jFy6Lxu/0L65A8p06MNrGyeo= +connectrpc.com/connect v1.17.0 h1:W0ZqMhtVzn9Zhn2yATuUokDLO5N+gIuBWMOnsQrfmZk= +connectrpc.com/connect v1.17.0/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8= +connectrpc.com/otelconnect v0.7.1 h1:scO5pOb0i4yUE66CnNrHeK1x51yq0bE0ehPg6WvzXJY= +connectrpc.com/otelconnect v0.7.1/go.mod h1:dh3bFgHBTb2bkqGCeVVOtHJreSns7uu9wwL2Tbz17ms= +github.com/IBM/sarama v1.43.3 h1:Yj6L2IaNvb2mRBop39N7mmJAHBVY3dTPncr3qGVkxPA= +github.com/IBM/sarama v1.43.3/go.mod h1:FVIRaLrhK3Cla/9FfRF5X9Zua2KpS3SYIXxhac1H+FQ= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df h1:GSoSVRLoBaFpOOds6QyY1L8AX7uoY+Ln3BHc22W40X0= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df/go.mod h1:hiVxq5OP2bUGBRNS3Z/bt/reCLFNbdcST6gISi1fiOM= -github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230428030218-4003588d1b74/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/diegoholiveira/jsonlogic/v3 v3.5.3 h1:CPyZQ3fOgiIDZ1yWzPGUpyht5tYTOnRoN913c0mkXZw= github.com/diegoholiveira/jsonlogic/v3 v3.5.3/go.mod h1:3nnfWovrlZq2rTpucrJ2KMIS8TMf6IoFneofmeqk/qk= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/eapache/go-resiliency v1.6.0 h1:CqGDTLtpwuWKn6Nj3uNUdflaq+/kIPsg0gfNzHton30= -github.com/eapache/go-resiliency v1.6.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho= +github.com/eapache/go-resiliency v1.7.0 h1:n3NRTnBn5N0Cbi/IeOHuQn9s2UwVUH7Ga0ZWcP+9JTA= +github.com/eapache/go-resiliency v1.7.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho= github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 h1:Oy0F4ALJ04o5Qqpdz8XLIpNA3WM/iSIXqxtqo7UGVws= github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3/go.mod h1:YvSRo5mw33fLEx1+DlK6L2VV43tJt5Eyel9n9XBcR+0= github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= -github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= -github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= -github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= -github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= -github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= -github.com/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= -github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= -github.com/envoyproxy/protoc-gen-validate v1.0.1/go.mod h1:0vj8bNkYbSTNS2PIyH87KZaeN4x9zpL9Qt8fQC7d+vs= -github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= -github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= -github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= -github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= -github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= -github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -1263,142 +41,28 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= -github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= -github.com/go-task/slim-sprig v2.20.0+incompatible h1:4Xh3bDzO29j4TWNOI+24ubc0vbVFMg2PMnXKxK54/CA= -github.com/go-task/slim-sprig v2.20.0+incompatible/go.mod h1:N/mhXZITr/EQAOErEHciKvO1bFei2Lld2Ym6h96pdy0= -github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= -github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-pkcs11 v0.2.0/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= -github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= -github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= -github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= -github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.2.4/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.2.5/go.mod h1:RxW0N9901Cko1VOCW3SXCpWP+mlIEkk2tP7jnHy9a3w= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= -github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= -github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= -github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= -github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= -github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= -github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= -github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= -github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= -github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -1407,17 +71,8 @@ github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9 github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= -github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= -github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= @@ -1432,116 +87,64 @@ github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZ github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= -github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= -github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= -github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= -github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8= -github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= -github.com/onsi/gomega v1.32.0 h1:JRYU78fJ1LPxlckP6Txi/EYqJvjtMrDC04/MM5XRHPk= -github.com/onsi/gomega v1.32.0/go.mod h1:a4x4gW6Pz2yK1MAmvluYme5lvYTn61afQ2ETw/8n4Lg= -github.com/open-feature/flagd-schemas v0.2.9-0.20240408192555-ea4f119d2bd7 h1:oP+BH8RiNEmSWTffKEXz2ciwen7wbvyX0fESx0aoJ80= -github.com/open-feature/flagd-schemas v0.2.9-0.20240408192555-ea4f119d2bd7/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= -github.com/open-feature/flagd/core v0.9.2 h1:PiT+EelwcXS6CRoHW4vGuIc19EgpRRNx+7zEeTKOEds= -github.com/open-feature/flagd/core v0.9.2/go.mod h1:o0qe6BmW+u0Qf/dlP3cuG2RdtYmjk//1M8GmFQrS2Lg= -github.com/open-feature/go-sdk v1.12.0 h1:V0MAG3lC9o7Pmq0gxlqtKpoasDTm3to9vuvZKyUhhPk= -github.com/open-feature/go-sdk v1.12.0/go.mod h1:UDNuwVrwY5FRHIluVRYzvxuS3nBkhjE6o4tlwFuHxiI= -github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.2 h1:yEtv4aMY5KTvp/HNsbAZXZdJoZnQyPB+ahd+uW7vrBA= -github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.2/go.mod h1:fH4U4H5xwSQd8VkIiMsFsZ6U8isfRyg2QW8E1O5tv6E= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.1 h1:srxsMTsEW5FAS025ga1YzzFqOspuu5Bg+tkDgzxtfZk= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.1/go.mod h1:3lSJDWZsnPRkitNnJviKXbgKhTIoyae25NUVQnGc3/Y= -github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= -github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= -github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= -github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= +github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 h1:5zbNHqcZAc9jlhSrC0onuVL2RPpvYcDaNvW2wOZBfUY= +github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= +github.com/open-feature/flagd/core v0.10.4 h1:3MVpDG7KigvKG9HzrK2yYKwAY2VeUbaghPWmh1MNmKg= +github.com/open-feature/flagd/core v0.10.4/go.mod h1:adkYaazGgCUg6z023rKBzSN8cN3Yamuh8h+3qxK7Yk8= +github.com/open-feature/go-sdk v1.13.1 h1:RJbS70eyi7Jd3Zm5bFnaahNKNDXn+RAVnctpGu+uPis= +github.com/open-feature/go-sdk v1.13.1/go.mod h1:O8r4mhgeRIsjJ0ZBXlnE0BtbT/79W44gQceR7K8KYgo= +github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= +github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 h1:Kzt0WkUtrLeFgJn2wkGhBVJZTOBVFGwXGuGs27uM9KQ= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3/go.mod h1:lZnG8SjETq2kyHvOInmdqTuofg53GNbY6YupgwP4LTA= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= -github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -1549,914 +152,139 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 h1:vS1Ao/R55RNV4O7TA2Qopok8yN+X0LIP6RVWLFkprck= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0/go.mod h1:BMsdeOxN04K0L5FNUBfjFdvwWGNe/rkmSwH4Aelu/X0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= -go.opentelemetry.io/contrib/instrumentation/runtime v0.52.0 h1:UaQVCH34fQsyDjlgS0L070Kjs9uCrLKoQfzn2Nl7XTY= -go.opentelemetry.io/contrib/instrumentation/runtime v0.52.0/go.mod h1:Ks4aHdMgu1vAfEY0cIBHcGx2l1S0+PwFm2BE/HRzqSk= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0 h1:bFgvUr3/O4PHj3VQcFEuYKvRZJX1SJDQ+11JXuSB3/w= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0/go.mod h1:xJntEd2KL6Qdg5lwp97HMLQDVeAhrYxmzFseAMDPQ8I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 h1:R9DE4kQ4k+YtfLI2ULwX82VtNQ2J8yZmA7ZIF/D+7Mc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0/go.mod h1:OQFyQVrDlbe+R7xrEyDr/2Wr67Ol0hRUgsfA+V5A95s= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= -go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= +go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 h1:kJB5wMVorwre8QzEodzTAbzm9FOOah0zvG+V4abNlEE= +go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0/go.mod h1:Nup4TgnOyEJWmVq9sf/ASH3ZJiAXwWHd5xZCHG7Sg9M= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 h1:FZ6ei8GFW7kyPYdxJaV2rgI6M+4tvZzhYsQ2wgyVC08= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0/go.mod h1:MdEu/mC6j3D+tTEfvI15b5Ci2Fn7NneJ71YMoiS3tpI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= +go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= +go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= -go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= +go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= +go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= -golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= +golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= -golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= -golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= -golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= -golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= -golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= -golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= -golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= -golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= -golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= -golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= -golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= -golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= -golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= -golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= -golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= -gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= -gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= -google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= -google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= -google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= -google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= -google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= -google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= -google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= -google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= -google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= -google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= -google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= -google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= -google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= -google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= -google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= -google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= -google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= -google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= -google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= -google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= -google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= -google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= -google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= -google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= -google.golang.org/api v0.118.0/go.mod h1:76TtD3vkgmZ66zZzp72bUUklpmQmKlhh6sYtIjYK+5E= -google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= -google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4= -google.golang.org/api v0.125.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= -google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= -google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= -google.golang.org/api v0.139.0/go.mod h1:CVagp6Eekz9CjGZ718Z+sloknzkDJE7Vc1Ckj9+viBk= -google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= -google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= -google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= -google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= -google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= -google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= -google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= -google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= -google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= -google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= -google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= -google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= -google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= -google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= -google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= -google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= -google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= -google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= -google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= -google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= -google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= -google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= -google.golang.org/genproto v0.0.0-20230629202037-9506855d4529/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= -google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= -google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0= -google.golang.org/genproto v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:0ggbjUrZYpy1q+ANUS30SEoGZ53cdfwtbuG7Ptgy108= -google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8= -google.golang.org/genproto v0.0.0-20230821184602-ccc8af3d0e93/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= -google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= -google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= -google.golang.org/genproto v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:CCviP9RmpZ1mxVr8MUjCnSiY09IbAXZxhLE6EhHIdPU= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= -google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI= -google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405/go.mod h1:3WDQMjmJk36UQhjQ89emUzb1mdaHcPeeAh4SCBKznB4= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:mPBs5jNgx2GuQGvFwUvVKqtn6HsUw9nP64BedgvqEsQ= -google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= -google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= -google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q= -google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= -google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= -google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= -google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870= -google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405/go.mod h1:oT32Z4o8Zv2xPQTg0pbVaPr0MPOH6f14RgXt7zfIpwg= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= -google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= -google.golang.org/genproto/googleapis/bytestream v0.0.0-20230807174057-1744710a1577/go.mod h1:NjCQG/D8JandXxM57PZbAJL1DCNL6EypA0vPPwfsc7c= -google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230629202037-9506855d4529/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:8mL13HKkDa+IuJ8yruA3ci0q+0vsUz4m//+ottjwS5o= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5/go.mod h1:zBEcrKX2ZOcEkHWxBPAIvYUWOKKMIhYcmNiUIu2ji3I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230920183334-c177e329c48b/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= -google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= -google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= -google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= -google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= -google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= -google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= -google.golang.org/grpc v1.61.2/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= -google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 h1:9SxA29VM43MF5Z9dQu694wmY5t8E/Gxr7s+RSxiIDmc= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0/go.mod h1:yZOK5zhQMiALmuweVdIVoQPa6eIJyXn2B9g5dJDhqX4= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg= +google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:wp2WsuBYj6j8wUdo3ToZsdxxixbvQNAHqVJrTgi5E5M= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -k8s.io/api v0.30.1 h1:kCm/6mADMdbAxmIh0LBjS54nQBE+U4KmbCfIkF5CpJY= -k8s.io/api v0.30.1/go.mod h1:ddbN2C0+0DIiPntan/bye3SW3PdwLa11/0yqwvuRrJM= -k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U= -k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= -k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak= -k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v3 v3.37.0/go.mod h1:vtL+3mdHx/wcj3iEGz84rQa8vEqR6XM84v5Lcvfph20= -modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0= -modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= -modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= -modernc.org/ccgo/v3 v3.0.0-20220904174949-82d86e1b6d56/go.mod h1:YSXjPL62P2AMSxBphRHPn7IkzhVHqkvOnRKAKh+W6ZI= -modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= -modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= -modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= -modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= -modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8/go.mod h1:fUB3Vn0nVPReA+7IG7yZDfjv1TMWjhQP8gCxrFAtL5g= -modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= -modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= -modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= -modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= -modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= -modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= -modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= -modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= -modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= -modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= -modernc.org/libc v1.17.4/go.mod h1:WNg2ZH56rDEwdropAJeZPQkXmDwh+JCA1s/htl6r2fA= -modernc.org/libc v1.18.0/go.mod h1:vj6zehR5bfc98ipowQOM2nIDUZnVew/wNC/2tOGS+q0= -modernc.org/libc v1.20.3/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0= -modernc.org/libc v1.21.4/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI= -modernc.org/libc v1.22.2/go.mod h1:uvQavJ1pZ0hIoC/jfqNoMLURIMhKzINIWypNM17puug= -modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= -modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= -modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/memory v1.3.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/memory v1.4.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= -modernc.org/sqlite v1.18.2/go.mod h1:kvrTLEWgxUcHa2GfHBQtanR1H9ht3hTJNtKpzH9k1u0= -modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= -modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= -modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= -modernc.org/tcl v1.13.2/go.mod h1:7CLiGIPo1M8Rv1Mitpv5akc2+8fxUd2y2UzC/MfMzy0= -modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/controller-runtime v0.18.3 h1:B5Wmmo8WMWK7izei+2LlXLVDGzMwAHBNLX68lwtlSR4= -sigs.k8s.io/controller-runtime v0.18.3/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg= +k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= +k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= +k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= +k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.19.0 h1:nWVM7aq+Il2ABxwiCizrVDSlmDcshi9llbaFbC0ji/Q= +sigs.k8s.io/controller-runtime v0.19.0/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= diff --git a/src/productcatalogservice/genproto/oteldemo/demo.pb.go b/src/productcatalogservice/genproto/oteldemo/demo.pb.go index 4bb4ddb33c..cb5b7c2f38 100644 --- a/src/productcatalogservice/genproto/oteldemo/demo.pb.go +++ b/src/productcatalogservice/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 +// protoc-gen-go v1.35.1 // protoc v4.24.4 // source: demo.proto @@ -45,11 +45,9 @@ type CartItem struct { func (x *CartItem) Reset() { *x = CartItem{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CartItem) String() string { @@ -60,7 +58,7 @@ func (*CartItem) ProtoMessage() {} func (x *CartItem) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -100,11 +98,9 @@ type AddItemRequest struct { func (x *AddItemRequest) Reset() { *x = AddItemRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AddItemRequest) String() string { @@ -115,7 +111,7 @@ func (*AddItemRequest) ProtoMessage() {} func (x *AddItemRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -154,11 +150,9 @@ type EmptyCartRequest struct { func (x *EmptyCartRequest) Reset() { *x = EmptyCartRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EmptyCartRequest) String() string { @@ -169,7 +163,7 @@ func (*EmptyCartRequest) ProtoMessage() {} func (x *EmptyCartRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -201,11 +195,9 @@ type GetCartRequest struct { func (x *GetCartRequest) Reset() { *x = GetCartRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCartRequest) String() string { @@ -216,7 +208,7 @@ func (*GetCartRequest) ProtoMessage() {} func (x *GetCartRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -249,11 +241,9 @@ type Cart struct { func (x *Cart) Reset() { *x = Cart{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Cart) String() string { @@ -264,7 +254,7 @@ func (*Cart) ProtoMessage() {} func (x *Cart) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -301,11 +291,9 @@ type Empty struct { func (x *Empty) Reset() { *x = Empty{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Empty) String() string { @@ -316,7 +304,7 @@ func (*Empty) ProtoMessage() {} func (x *Empty) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -342,11 +330,9 @@ type ListRecommendationsRequest struct { func (x *ListRecommendationsRequest) Reset() { *x = ListRecommendationsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListRecommendationsRequest) String() string { @@ -357,7 +343,7 @@ func (*ListRecommendationsRequest) ProtoMessage() {} func (x *ListRecommendationsRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -396,11 +382,9 @@ type ListRecommendationsResponse struct { func (x *ListRecommendationsResponse) Reset() { *x = ListRecommendationsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListRecommendationsResponse) String() string { @@ -411,7 +395,7 @@ func (*ListRecommendationsResponse) ProtoMessage() {} func (x *ListRecommendationsResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -450,11 +434,9 @@ type Product struct { func (x *Product) Reset() { *x = Product{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Product) String() string { @@ -465,7 +447,7 @@ func (*Product) ProtoMessage() {} func (x *Product) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -532,11 +514,9 @@ type ListProductsResponse struct { func (x *ListProductsResponse) Reset() { *x = ListProductsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListProductsResponse) String() string { @@ -547,7 +527,7 @@ func (*ListProductsResponse) ProtoMessage() {} func (x *ListProductsResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -579,11 +559,9 @@ type GetProductRequest struct { func (x *GetProductRequest) Reset() { *x = GetProductRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetProductRequest) String() string { @@ -594,7 +572,7 @@ func (*GetProductRequest) ProtoMessage() {} func (x *GetProductRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -626,11 +604,9 @@ type SearchProductsRequest struct { func (x *SearchProductsRequest) Reset() { *x = SearchProductsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchProductsRequest) String() string { @@ -641,7 +617,7 @@ func (*SearchProductsRequest) ProtoMessage() {} func (x *SearchProductsRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -673,11 +649,9 @@ type SearchProductsResponse struct { func (x *SearchProductsResponse) Reset() { *x = SearchProductsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchProductsResponse) String() string { @@ -688,7 +662,7 @@ func (*SearchProductsResponse) ProtoMessage() {} func (x *SearchProductsResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -721,11 +695,9 @@ type GetQuoteRequest struct { func (x *GetQuoteRequest) Reset() { *x = GetQuoteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetQuoteRequest) String() string { @@ -736,7 +708,7 @@ func (*GetQuoteRequest) ProtoMessage() {} func (x *GetQuoteRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -775,11 +747,9 @@ type GetQuoteResponse struct { func (x *GetQuoteResponse) Reset() { *x = GetQuoteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetQuoteResponse) String() string { @@ -790,7 +760,7 @@ func (*GetQuoteResponse) ProtoMessage() {} func (x *GetQuoteResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -823,11 +793,9 @@ type ShipOrderRequest struct { func (x *ShipOrderRequest) Reset() { *x = ShipOrderRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShipOrderRequest) String() string { @@ -838,7 +806,7 @@ func (*ShipOrderRequest) ProtoMessage() {} func (x *ShipOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -877,11 +845,9 @@ type ShipOrderResponse struct { func (x *ShipOrderResponse) Reset() { *x = ShipOrderResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShipOrderResponse) String() string { @@ -892,7 +858,7 @@ func (*ShipOrderResponse) ProtoMessage() {} func (x *ShipOrderResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -928,11 +894,9 @@ type Address struct { func (x *Address) Reset() { *x = Address{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Address) String() string { @@ -943,7 +907,7 @@ func (*Address) ProtoMessage() {} func (x *Address) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1015,11 +979,9 @@ type Money struct { func (x *Money) Reset() { *x = Money{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Money) String() string { @@ -1030,7 +992,7 @@ func (*Money) ProtoMessage() {} func (x *Money) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1077,11 +1039,9 @@ type GetSupportedCurrenciesResponse struct { func (x *GetSupportedCurrenciesResponse) Reset() { *x = GetSupportedCurrenciesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSupportedCurrenciesResponse) String() string { @@ -1092,7 +1052,7 @@ func (*GetSupportedCurrenciesResponse) ProtoMessage() {} func (x *GetSupportedCurrenciesResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1126,11 +1086,9 @@ type CurrencyConversionRequest struct { func (x *CurrencyConversionRequest) Reset() { *x = CurrencyConversionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CurrencyConversionRequest) String() string { @@ -1141,7 +1099,7 @@ func (*CurrencyConversionRequest) ProtoMessage() {} func (x *CurrencyConversionRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1183,11 +1141,9 @@ type CreditCardInfo struct { func (x *CreditCardInfo) Reset() { *x = CreditCardInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreditCardInfo) String() string { @@ -1198,7 +1154,7 @@ func (*CreditCardInfo) ProtoMessage() {} func (x *CreditCardInfo) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1252,11 +1208,9 @@ type ChargeRequest struct { func (x *ChargeRequest) Reset() { *x = ChargeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChargeRequest) String() string { @@ -1267,7 +1221,7 @@ func (*ChargeRequest) ProtoMessage() {} func (x *ChargeRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1306,11 +1260,9 @@ type ChargeResponse struct { func (x *ChargeResponse) Reset() { *x = ChargeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChargeResponse) String() string { @@ -1321,7 +1273,7 @@ func (*ChargeResponse) ProtoMessage() {} func (x *ChargeResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1354,11 +1306,9 @@ type OrderItem struct { func (x *OrderItem) Reset() { *x = OrderItem{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *OrderItem) String() string { @@ -1369,7 +1319,7 @@ func (*OrderItem) ProtoMessage() {} func (x *OrderItem) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1412,11 +1362,9 @@ type OrderResult struct { func (x *OrderResult) Reset() { *x = OrderResult{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *OrderResult) String() string { @@ -1427,7 +1375,7 @@ func (*OrderResult) ProtoMessage() {} func (x *OrderResult) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1488,11 +1436,9 @@ type SendOrderConfirmationRequest struct { func (x *SendOrderConfirmationRequest) Reset() { *x = SendOrderConfirmationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SendOrderConfirmationRequest) String() string { @@ -1503,7 +1449,7 @@ func (*SendOrderConfirmationRequest) ProtoMessage() {} func (x *SendOrderConfirmationRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1546,11 +1492,9 @@ type PlaceOrderRequest struct { func (x *PlaceOrderRequest) Reset() { *x = PlaceOrderRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PlaceOrderRequest) String() string { @@ -1561,7 +1505,7 @@ func (*PlaceOrderRequest) ProtoMessage() {} func (x *PlaceOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1621,11 +1565,9 @@ type PlaceOrderResponse struct { func (x *PlaceOrderResponse) Reset() { *x = PlaceOrderResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PlaceOrderResponse) String() string { @@ -1636,7 +1578,7 @@ func (*PlaceOrderResponse) ProtoMessage() {} func (x *PlaceOrderResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1669,11 +1611,9 @@ type AdRequest struct { func (x *AdRequest) Reset() { *x = AdRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AdRequest) String() string { @@ -1684,7 +1624,7 @@ func (*AdRequest) ProtoMessage() {} func (x *AdRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1716,11 +1656,9 @@ type AdResponse struct { func (x *AdResponse) Reset() { *x = AdResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AdResponse) String() string { @@ -1731,7 +1669,7 @@ func (*AdResponse) ProtoMessage() {} func (x *AdResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1766,11 +1704,9 @@ type Ad struct { func (x *Ad) Reset() { *x = Ad{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Ad) String() string { @@ -1781,7 +1717,7 @@ func (*Ad) ProtoMessage() {} func (x *Ad) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1822,11 +1758,9 @@ type Flag struct { func (x *Flag) Reset() { *x = Flag{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Flag) String() string { @@ -1837,7 +1771,7 @@ func (*Flag) ProtoMessage() {} func (x *Flag) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1883,11 +1817,9 @@ type GetFlagRequest struct { func (x *GetFlagRequest) Reset() { *x = GetFlagRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetFlagRequest) String() string { @@ -1898,7 +1830,7 @@ func (*GetFlagRequest) ProtoMessage() {} func (x *GetFlagRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1930,11 +1862,9 @@ type GetFlagResponse struct { func (x *GetFlagResponse) Reset() { *x = GetFlagResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetFlagResponse) String() string { @@ -1945,7 +1875,7 @@ func (*GetFlagResponse) ProtoMessage() {} func (x *GetFlagResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1979,11 +1909,9 @@ type CreateFlagRequest struct { func (x *CreateFlagRequest) Reset() { *x = CreateFlagRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateFlagRequest) String() string { @@ -1994,7 +1922,7 @@ func (*CreateFlagRequest) ProtoMessage() {} func (x *CreateFlagRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2040,11 +1968,9 @@ type CreateFlagResponse struct { func (x *CreateFlagResponse) Reset() { *x = CreateFlagResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateFlagResponse) String() string { @@ -2055,7 +1981,7 @@ func (*CreateFlagResponse) ProtoMessage() {} func (x *CreateFlagResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2088,11 +2014,9 @@ type UpdateFlagRequest struct { func (x *UpdateFlagRequest) Reset() { *x = UpdateFlagRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateFlagRequest) String() string { @@ -2103,7 +2027,7 @@ func (*UpdateFlagRequest) ProtoMessage() {} func (x *UpdateFlagRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2140,11 +2064,9 @@ type UpdateFlagResponse struct { func (x *UpdateFlagResponse) Reset() { *x = UpdateFlagResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateFlagResponse) String() string { @@ -2155,7 +2077,7 @@ func (*UpdateFlagResponse) ProtoMessage() {} func (x *UpdateFlagResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2178,11 +2100,9 @@ type ListFlagsRequest struct { func (x *ListFlagsRequest) Reset() { *x = ListFlagsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListFlagsRequest) String() string { @@ -2193,7 +2113,7 @@ func (*ListFlagsRequest) ProtoMessage() {} func (x *ListFlagsRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2218,11 +2138,9 @@ type ListFlagsResponse struct { func (x *ListFlagsResponse) Reset() { *x = ListFlagsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListFlagsResponse) String() string { @@ -2233,7 +2151,7 @@ func (*ListFlagsResponse) ProtoMessage() {} func (x *ListFlagsResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2265,11 +2183,9 @@ type DeleteFlagRequest struct { func (x *DeleteFlagRequest) Reset() { *x = DeleteFlagRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteFlagRequest) String() string { @@ -2280,7 +2196,7 @@ func (*DeleteFlagRequest) ProtoMessage() {} func (x *DeleteFlagRequest) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2310,11 +2226,9 @@ type DeleteFlagResponse struct { func (x *DeleteFlagResponse) Reset() { *x = DeleteFlagResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_demo_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_demo_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteFlagResponse) String() string { @@ -2325,7 +2239,7 @@ func (*DeleteFlagResponse) ProtoMessage() {} func (x *DeleteFlagResponse) ProtoReflect() protoreflect.Message { mi := &file_demo_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2680,7 +2594,7 @@ func file_demo_proto_rawDescGZIP() []byte { } var file_demo_proto_msgTypes = make([]protoimpl.MessageInfo, 43) -var file_demo_proto_goTypes = []interface{}{ +var file_demo_proto_goTypes = []any{ (*CartItem)(nil), // 0: oteldemo.CartItem (*AddItemRequest)(nil), // 1: oteldemo.AddItemRequest (*EmptyCartRequest)(nil), // 2: oteldemo.EmptyCartRequest @@ -2804,524 +2718,6 @@ func file_demo_proto_init() { if File_demo_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_demo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CartItem); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddItemRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EmptyCartRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCartRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Cart); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Empty); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRecommendationsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRecommendationsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Product); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListProductsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProductRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchProductsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchProductsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetQuoteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetQuoteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShipOrderRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShipOrderResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Address); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Money); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSupportedCurrenciesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CurrencyConversionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreditCardInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChargeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChargeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderItem); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendOrderConfirmationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PlaceOrderRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PlaceOrderResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AdRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AdResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Ad); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Flag); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFlagRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFlagResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateFlagRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateFlagResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateFlagRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateFlagResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListFlagsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListFlagsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteFlagRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_demo_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteFlagResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/src/productcatalogservice/genproto/oteldemo/demo_grpc.pb.go b/src/productcatalogservice/genproto/oteldemo/demo_grpc.pb.go index b4478e6d21..ab3c2ae2f3 100644 --- a/src/productcatalogservice/genproto/oteldemo/demo_grpc.pb.go +++ b/src/productcatalogservice/genproto/oteldemo/demo_grpc.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.4.0 +// - protoc-gen-go-grpc v1.5.1 // - protoc v4.24.4 // source: demo.proto @@ -29,8 +29,8 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.62.0 or later. -const _ = grpc.SupportPackageIsVersion8 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 const ( CartService_AddItem_FullMethodName = "/oteldemo.CartService/AddItem" @@ -87,7 +87,7 @@ func (c *cartServiceClient) EmptyCart(ctx context.Context, in *EmptyCartRequest, // CartServiceServer is the server API for CartService service. // All implementations must embed UnimplementedCartServiceServer -// for forward compatibility +// for forward compatibility. type CartServiceServer interface { AddItem(context.Context, *AddItemRequest) (*Empty, error) GetCart(context.Context, *GetCartRequest) (*Cart, error) @@ -95,9 +95,12 @@ type CartServiceServer interface { mustEmbedUnimplementedCartServiceServer() } -// UnimplementedCartServiceServer must be embedded to have forward compatible implementations. -type UnimplementedCartServiceServer struct { -} +// UnimplementedCartServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedCartServiceServer struct{} func (UnimplementedCartServiceServer) AddItem(context.Context, *AddItemRequest) (*Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method AddItem not implemented") @@ -109,6 +112,7 @@ func (UnimplementedCartServiceServer) EmptyCart(context.Context, *EmptyCartReque return nil, status.Errorf(codes.Unimplemented, "method EmptyCart not implemented") } func (UnimplementedCartServiceServer) mustEmbedUnimplementedCartServiceServer() {} +func (UnimplementedCartServiceServer) testEmbeddedByValue() {} // UnsafeCartServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to CartServiceServer will @@ -118,6 +122,13 @@ type UnsafeCartServiceServer interface { } func RegisterCartServiceServer(s grpc.ServiceRegistrar, srv CartServiceServer) { + // If the following call pancis, it indicates UnimplementedCartServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&CartService_ServiceDesc, srv) } @@ -230,20 +241,24 @@ func (c *recommendationServiceClient) ListRecommendations(ctx context.Context, i // RecommendationServiceServer is the server API for RecommendationService service. // All implementations must embed UnimplementedRecommendationServiceServer -// for forward compatibility +// for forward compatibility. type RecommendationServiceServer interface { ListRecommendations(context.Context, *ListRecommendationsRequest) (*ListRecommendationsResponse, error) mustEmbedUnimplementedRecommendationServiceServer() } -// UnimplementedRecommendationServiceServer must be embedded to have forward compatible implementations. -type UnimplementedRecommendationServiceServer struct { -} +// UnimplementedRecommendationServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedRecommendationServiceServer struct{} func (UnimplementedRecommendationServiceServer) ListRecommendations(context.Context, *ListRecommendationsRequest) (*ListRecommendationsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListRecommendations not implemented") } func (UnimplementedRecommendationServiceServer) mustEmbedUnimplementedRecommendationServiceServer() {} +func (UnimplementedRecommendationServiceServer) testEmbeddedByValue() {} // UnsafeRecommendationServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to RecommendationServiceServer will @@ -253,6 +268,13 @@ type UnsafeRecommendationServiceServer interface { } func RegisterRecommendationServiceServer(s grpc.ServiceRegistrar, srv RecommendationServiceServer) { + // If the following call pancis, it indicates UnimplementedRecommendationServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&RecommendationService_ServiceDesc, srv) } @@ -345,7 +367,7 @@ func (c *productCatalogServiceClient) SearchProducts(ctx context.Context, in *Se // ProductCatalogServiceServer is the server API for ProductCatalogService service. // All implementations must embed UnimplementedProductCatalogServiceServer -// for forward compatibility +// for forward compatibility. type ProductCatalogServiceServer interface { ListProducts(context.Context, *Empty) (*ListProductsResponse, error) GetProduct(context.Context, *GetProductRequest) (*Product, error) @@ -353,9 +375,12 @@ type ProductCatalogServiceServer interface { mustEmbedUnimplementedProductCatalogServiceServer() } -// UnimplementedProductCatalogServiceServer must be embedded to have forward compatible implementations. -type UnimplementedProductCatalogServiceServer struct { -} +// UnimplementedProductCatalogServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedProductCatalogServiceServer struct{} func (UnimplementedProductCatalogServiceServer) ListProducts(context.Context, *Empty) (*ListProductsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListProducts not implemented") @@ -367,6 +392,7 @@ func (UnimplementedProductCatalogServiceServer) SearchProducts(context.Context, return nil, status.Errorf(codes.Unimplemented, "method SearchProducts not implemented") } func (UnimplementedProductCatalogServiceServer) mustEmbedUnimplementedProductCatalogServiceServer() {} +func (UnimplementedProductCatalogServiceServer) testEmbeddedByValue() {} // UnsafeProductCatalogServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ProductCatalogServiceServer will @@ -376,6 +402,13 @@ type UnsafeProductCatalogServiceServer interface { } func RegisterProductCatalogServiceServer(s grpc.ServiceRegistrar, srv ProductCatalogServiceServer) { + // If the following call pancis, it indicates UnimplementedProductCatalogServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&ProductCatalogService_ServiceDesc, srv) } @@ -500,16 +533,19 @@ func (c *shippingServiceClient) ShipOrder(ctx context.Context, in *ShipOrderRequ // ShippingServiceServer is the server API for ShippingService service. // All implementations must embed UnimplementedShippingServiceServer -// for forward compatibility +// for forward compatibility. type ShippingServiceServer interface { GetQuote(context.Context, *GetQuoteRequest) (*GetQuoteResponse, error) ShipOrder(context.Context, *ShipOrderRequest) (*ShipOrderResponse, error) mustEmbedUnimplementedShippingServiceServer() } -// UnimplementedShippingServiceServer must be embedded to have forward compatible implementations. -type UnimplementedShippingServiceServer struct { -} +// UnimplementedShippingServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedShippingServiceServer struct{} func (UnimplementedShippingServiceServer) GetQuote(context.Context, *GetQuoteRequest) (*GetQuoteResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetQuote not implemented") @@ -518,6 +554,7 @@ func (UnimplementedShippingServiceServer) ShipOrder(context.Context, *ShipOrderR return nil, status.Errorf(codes.Unimplemented, "method ShipOrder not implemented") } func (UnimplementedShippingServiceServer) mustEmbedUnimplementedShippingServiceServer() {} +func (UnimplementedShippingServiceServer) testEmbeddedByValue() {} // UnsafeShippingServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ShippingServiceServer will @@ -527,6 +564,13 @@ type UnsafeShippingServiceServer interface { } func RegisterShippingServiceServer(s grpc.ServiceRegistrar, srv ShippingServiceServer) { + // If the following call pancis, it indicates UnimplementedShippingServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&ShippingService_ServiceDesc, srv) } @@ -629,16 +673,19 @@ func (c *currencyServiceClient) Convert(ctx context.Context, in *CurrencyConvers // CurrencyServiceServer is the server API for CurrencyService service. // All implementations must embed UnimplementedCurrencyServiceServer -// for forward compatibility +// for forward compatibility. type CurrencyServiceServer interface { GetSupportedCurrencies(context.Context, *Empty) (*GetSupportedCurrenciesResponse, error) Convert(context.Context, *CurrencyConversionRequest) (*Money, error) mustEmbedUnimplementedCurrencyServiceServer() } -// UnimplementedCurrencyServiceServer must be embedded to have forward compatible implementations. -type UnimplementedCurrencyServiceServer struct { -} +// UnimplementedCurrencyServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedCurrencyServiceServer struct{} func (UnimplementedCurrencyServiceServer) GetSupportedCurrencies(context.Context, *Empty) (*GetSupportedCurrenciesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetSupportedCurrencies not implemented") @@ -647,6 +694,7 @@ func (UnimplementedCurrencyServiceServer) Convert(context.Context, *CurrencyConv return nil, status.Errorf(codes.Unimplemented, "method Convert not implemented") } func (UnimplementedCurrencyServiceServer) mustEmbedUnimplementedCurrencyServiceServer() {} +func (UnimplementedCurrencyServiceServer) testEmbeddedByValue() {} // UnsafeCurrencyServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to CurrencyServiceServer will @@ -656,6 +704,13 @@ type UnsafeCurrencyServiceServer interface { } func RegisterCurrencyServiceServer(s grpc.ServiceRegistrar, srv CurrencyServiceServer) { + // If the following call pancis, it indicates UnimplementedCurrencyServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&CurrencyService_ServiceDesc, srv) } @@ -746,20 +801,24 @@ func (c *paymentServiceClient) Charge(ctx context.Context, in *ChargeRequest, op // PaymentServiceServer is the server API for PaymentService service. // All implementations must embed UnimplementedPaymentServiceServer -// for forward compatibility +// for forward compatibility. type PaymentServiceServer interface { Charge(context.Context, *ChargeRequest) (*ChargeResponse, error) mustEmbedUnimplementedPaymentServiceServer() } -// UnimplementedPaymentServiceServer must be embedded to have forward compatible implementations. -type UnimplementedPaymentServiceServer struct { -} +// UnimplementedPaymentServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedPaymentServiceServer struct{} func (UnimplementedPaymentServiceServer) Charge(context.Context, *ChargeRequest) (*ChargeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Charge not implemented") } func (UnimplementedPaymentServiceServer) mustEmbedUnimplementedPaymentServiceServer() {} +func (UnimplementedPaymentServiceServer) testEmbeddedByValue() {} // UnsafePaymentServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to PaymentServiceServer will @@ -769,6 +828,13 @@ type UnsafePaymentServiceServer interface { } func RegisterPaymentServiceServer(s grpc.ServiceRegistrar, srv PaymentServiceServer) { + // If the following call pancis, it indicates UnimplementedPaymentServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&PaymentService_ServiceDesc, srv) } @@ -837,20 +903,24 @@ func (c *emailServiceClient) SendOrderConfirmation(ctx context.Context, in *Send // EmailServiceServer is the server API for EmailService service. // All implementations must embed UnimplementedEmailServiceServer -// for forward compatibility +// for forward compatibility. type EmailServiceServer interface { SendOrderConfirmation(context.Context, *SendOrderConfirmationRequest) (*Empty, error) mustEmbedUnimplementedEmailServiceServer() } -// UnimplementedEmailServiceServer must be embedded to have forward compatible implementations. -type UnimplementedEmailServiceServer struct { -} +// UnimplementedEmailServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedEmailServiceServer struct{} func (UnimplementedEmailServiceServer) SendOrderConfirmation(context.Context, *SendOrderConfirmationRequest) (*Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method SendOrderConfirmation not implemented") } func (UnimplementedEmailServiceServer) mustEmbedUnimplementedEmailServiceServer() {} +func (UnimplementedEmailServiceServer) testEmbeddedByValue() {} // UnsafeEmailServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to EmailServiceServer will @@ -860,6 +930,13 @@ type UnsafeEmailServiceServer interface { } func RegisterEmailServiceServer(s grpc.ServiceRegistrar, srv EmailServiceServer) { + // If the following call pancis, it indicates UnimplementedEmailServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&EmailService_ServiceDesc, srv) } @@ -928,20 +1005,24 @@ func (c *checkoutServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRe // CheckoutServiceServer is the server API for CheckoutService service. // All implementations must embed UnimplementedCheckoutServiceServer -// for forward compatibility +// for forward compatibility. type CheckoutServiceServer interface { PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error) mustEmbedUnimplementedCheckoutServiceServer() } -// UnimplementedCheckoutServiceServer must be embedded to have forward compatible implementations. -type UnimplementedCheckoutServiceServer struct { -} +// UnimplementedCheckoutServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedCheckoutServiceServer struct{} func (UnimplementedCheckoutServiceServer) PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PlaceOrder not implemented") } func (UnimplementedCheckoutServiceServer) mustEmbedUnimplementedCheckoutServiceServer() {} +func (UnimplementedCheckoutServiceServer) testEmbeddedByValue() {} // UnsafeCheckoutServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to CheckoutServiceServer will @@ -951,6 +1032,13 @@ type UnsafeCheckoutServiceServer interface { } func RegisterCheckoutServiceServer(s grpc.ServiceRegistrar, srv CheckoutServiceServer) { + // If the following call pancis, it indicates UnimplementedCheckoutServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&CheckoutService_ServiceDesc, srv) } @@ -1019,20 +1107,24 @@ func (c *adServiceClient) GetAds(ctx context.Context, in *AdRequest, opts ...grp // AdServiceServer is the server API for AdService service. // All implementations must embed UnimplementedAdServiceServer -// for forward compatibility +// for forward compatibility. type AdServiceServer interface { GetAds(context.Context, *AdRequest) (*AdResponse, error) mustEmbedUnimplementedAdServiceServer() } -// UnimplementedAdServiceServer must be embedded to have forward compatible implementations. -type UnimplementedAdServiceServer struct { -} +// UnimplementedAdServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedAdServiceServer struct{} func (UnimplementedAdServiceServer) GetAds(context.Context, *AdRequest) (*AdResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetAds not implemented") } func (UnimplementedAdServiceServer) mustEmbedUnimplementedAdServiceServer() {} +func (UnimplementedAdServiceServer) testEmbeddedByValue() {} // UnsafeAdServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to AdServiceServer will @@ -1042,6 +1134,13 @@ type UnsafeAdServiceServer interface { } func RegisterAdServiceServer(s grpc.ServiceRegistrar, srv AdServiceServer) { + // If the following call pancis, it indicates UnimplementedAdServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&AdService_ServiceDesc, srv) } @@ -1158,7 +1257,7 @@ func (c *featureFlagServiceClient) DeleteFlag(ctx context.Context, in *DeleteFla // FeatureFlagServiceServer is the server API for FeatureFlagService service. // All implementations must embed UnimplementedFeatureFlagServiceServer -// for forward compatibility +// for forward compatibility. type FeatureFlagServiceServer interface { GetFlag(context.Context, *GetFlagRequest) (*GetFlagResponse, error) CreateFlag(context.Context, *CreateFlagRequest) (*CreateFlagResponse, error) @@ -1168,9 +1267,12 @@ type FeatureFlagServiceServer interface { mustEmbedUnimplementedFeatureFlagServiceServer() } -// UnimplementedFeatureFlagServiceServer must be embedded to have forward compatible implementations. -type UnimplementedFeatureFlagServiceServer struct { -} +// UnimplementedFeatureFlagServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedFeatureFlagServiceServer struct{} func (UnimplementedFeatureFlagServiceServer) GetFlag(context.Context, *GetFlagRequest) (*GetFlagResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFlag not implemented") @@ -1188,6 +1290,7 @@ func (UnimplementedFeatureFlagServiceServer) DeleteFlag(context.Context, *Delete return nil, status.Errorf(codes.Unimplemented, "method DeleteFlag not implemented") } func (UnimplementedFeatureFlagServiceServer) mustEmbedUnimplementedFeatureFlagServiceServer() {} +func (UnimplementedFeatureFlagServiceServer) testEmbeddedByValue() {} // UnsafeFeatureFlagServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to FeatureFlagServiceServer will @@ -1197,6 +1300,13 @@ type UnsafeFeatureFlagServiceServer interface { } func RegisterFeatureFlagServiceServer(s grpc.ServiceRegistrar, srv FeatureFlagServiceServer) { + // If the following call pancis, it indicates UnimplementedFeatureFlagServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&FeatureFlagService_ServiceDesc, srv) } diff --git a/src/productcatalogservice/go.mod b/src/productcatalogservice/go.mod index 35aaf0a697..d5dd29ab82 100644 --- a/src/productcatalogservice/go.mod +++ b/src/productcatalogservice/go.mod @@ -3,70 +3,73 @@ module github.com/opentelemetry/opentelemetry-demo/src/productcatalogservice go 1.22.0 require ( - github.com/open-feature/go-sdk v1.12.0 - github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.2 - github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.1 + github.com/open-feature/go-sdk v1.13.1 + github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 + github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 - go.opentelemetry.io/contrib/instrumentation/runtime v0.52.0 - go.opentelemetry.io/otel v1.27.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 - go.opentelemetry.io/otel/sdk v1.27.0 - go.opentelemetry.io/otel/sdk/metric v1.27.0 - go.opentelemetry.io/otel/trace v1.27.0 - google.golang.org/grpc v1.64.0 - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 - google.golang.org/protobuf v1.34.1 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 + go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 + go.opentelemetry.io/otel v1.32.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 + go.opentelemetry.io/otel/sdk v1.32.0 + go.opentelemetry.io/otel/sdk/metric v1.32.0 + go.opentelemetry.io/otel/trace v1.32.0 + google.golang.org/grpc v1.67.1 + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 + google.golang.org/protobuf v1.35.1 ) require ( - buf.build/gen/go/open-feature/flagd/connectrpc/go v1.16.2-20240215170432-1e611e2999cc.1 // indirect - buf.build/gen/go/open-feature/flagd/grpc/go v1.3.0-20240215170432-1e611e2999cc.3 // indirect - buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.34.1-20240215170432-1e611e2999cc.1 // indirect - connectrpc.com/connect v1.16.2 // indirect - connectrpc.com/otelconnect v0.7.0 // indirect + buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1 // indirect + buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1 // indirect + buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1 // indirect + connectrpc.com/connect v1.17.0 // indirect + connectrpc.com/otelconnect v0.7.1 // indirect github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/diegoholiveira/jsonlogic/v3 v3.5.3 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/zapr v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/open-feature/flagd-schemas v0.2.9-0.20240408192555-ea4f119d2bd7 // indirect - github.com/open-feature/flagd/core v0.9.2 // indirect + github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 // indirect + github.com/open-feature/flagd/core v0.10.4 // indirect github.com/twmb/murmur3 v1.1.8 // indirect + github.com/x448/float16 v0.8.4 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/proto/otlp v1.2.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect - golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/sys v0.20.0 // indirect - golang.org/x/text v0.15.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect + golang.org/x/mod v0.21.0 // indirect + golang.org/x/net v0.30.0 // indirect + golang.org/x/sys v0.27.0 // indirect + golang.org/x/text v0.19.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.30.1 // indirect - k8s.io/klog/v2 v2.120.1 // indirect - k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect - sigs.k8s.io/controller-runtime v0.18.3 // indirect + k8s.io/apimachinery v0.31.1 // indirect + k8s.io/klog/v2 v2.130.1 // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect + sigs.k8s.io/controller-runtime v0.19.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect ) diff --git a/src/productcatalogservice/go.sum b/src/productcatalogservice/go.sum index 38ab689920..301c2b892f 100644 --- a/src/productcatalogservice/go.sum +++ b/src/productcatalogservice/go.sum @@ -1,1249 +1,27 @@ -buf.build/gen/go/grpc-ecosystem/grpc-gateway/grpc/go v1.3.0-20220906183531-bc28b723cd77.3/go.mod h1:29GvpVBNnxg/FUQmj+3UobXv2UzXML5kmDPxEethe1U= -buf.build/gen/go/grpc-ecosystem/grpc-gateway/protocolbuffers/go v1.34.0-20220906183531-bc28b723cd77.1/go.mod h1:3yewBse5hcwxPZIq4cng0NlCYYXVQmGC64aJdAd2+S8= -buf.build/gen/go/grpc-ecosystem/grpc-gateway/protocolbuffers/go v1.34.1-20220906183531-bc28b723cd77.1/go.mod h1:gUfBTdJmhwTJHoIaOQjy7xczHhqjkQfXSKs5TY4IsUY= -buf.build/gen/go/open-feature/flagd/connectrpc/go v1.16.2-20240215170432-1e611e2999cc.1 h1:LzKcO153IeqETZE4vW6Wc2ffzfkx3BXYwIX72Khz56U= -buf.build/gen/go/open-feature/flagd/connectrpc/go v1.16.2-20240215170432-1e611e2999cc.1/go.mod h1:CV7JQktehuZgsiW5gEF1dd+LMqxl2kHJjM4bxuhNlz4= -buf.build/gen/go/open-feature/flagd/grpc/go v1.3.0-20240215170432-1e611e2999cc.3 h1:mUh+66sS7hpfksYmcAu+UOqc1wDw4VK3oPOmRY4QVTU= -buf.build/gen/go/open-feature/flagd/grpc/go v1.3.0-20240215170432-1e611e2999cc.3/go.mod h1:iyVT2Ux3voZ+n5j3aJylxePlhFiX4vpStA2P9Rcx5WY= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.34.0-20240215170432-1e611e2999cc.1/go.mod h1:C17h77473QJduq4M88y16OJ1he6h7kYRjjNaFYZrPP8= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.34.1-20240215170432-1e611e2999cc.1 h1:1WqnINfOtc6zoiUEKS/P/TSb8veoptNB3upJ+H8Q4rE= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.34.1-20240215170432-1e611e2999cc.1/go.mod h1:gEUPmagwc+N2TGT2C2u5qKm4w5AIT7GxX/g0xowr8Ww= -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= -cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= -cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= -cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= -cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= -cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= -cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= -cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= -cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= -cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= -cloud.google.com/go v0.110.6/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= -cloud.google.com/go v0.110.7/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= -cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk= -cloud.google.com/go v0.110.9/go.mod h1:rpxevX/0Lqvlbc88b7Sc1SPNdyK1riNBTUU6JXhYNpM= -cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic= -cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= -cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= -cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= -cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68= -cloud.google.com/go/accessapproval v1.7.2/go.mod h1:/gShiq9/kK/h8T/eEn1BTzalDvk0mZxJlhfw0p+Xuc0= -cloud.google.com/go/accessapproval v1.7.3/go.mod h1:4l8+pwIxGTNqSf4T3ds8nLO94NQf0W/KnMNuQ9PbnP8= -cloud.google.com/go/accessapproval v1.7.4/go.mod h1:/aTEh45LzplQgFYdQdwPMR9YdX0UlhBmvB84uAmQKUc= -cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= -cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= -cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= -cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= -cloud.google.com/go/accesscontextmanager v1.8.0/go.mod h1:uI+AI/r1oyWK99NN8cQ3UK76AMelMzgZCvJfsi2c+ps= -cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo= -cloud.google.com/go/accesscontextmanager v1.8.2/go.mod h1:E6/SCRM30elQJ2PKtFMs2YhfJpZSNcJyejhuzoId4Zk= -cloud.google.com/go/accesscontextmanager v1.8.3/go.mod h1:4i/JkF2JiFbhLnnpnfoTX5vRXfhf9ukhU1ANOTALTOQ= -cloud.google.com/go/accesscontextmanager v1.8.4/go.mod h1:ParU+WbMpD34s5JFEnGAnPBYAgUHozaTmDJU7aCU9+M= -cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= -cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= -cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= -cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= -cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= -cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= -cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= -cloud.google.com/go/aiplatform v1.48.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= -cloud.google.com/go/aiplatform v1.50.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4= -cloud.google.com/go/aiplatform v1.51.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4= -cloud.google.com/go/aiplatform v1.51.1/go.mod h1:kY3nIMAVQOK2XDqDPHaOuD9e+FdMA6OOpfBjsvaFSOo= -cloud.google.com/go/aiplatform v1.51.2/go.mod h1:hCqVYB3mY45w99TmetEoe8eCQEwZEp9WHxeZdcv9phw= -cloud.google.com/go/aiplatform v1.52.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU= -cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= -cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= -cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= -cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= -cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= -cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= -cloud.google.com/go/analytics v0.21.3/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= -cloud.google.com/go/analytics v0.21.4/go.mod h1:zZgNCxLCy8b2rKKVfC1YkC2vTrpfZmeRCySM3aUbskA= -cloud.google.com/go/analytics v0.21.5/go.mod h1:BQtOBHWTlJ96axpPPnw5CvGJ6i3Ve/qX2fTxR8qWyr8= -cloud.google.com/go/analytics v0.21.6/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w= -cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= -cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= -cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= -cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA= -cloud.google.com/go/apigateway v1.6.2/go.mod h1:CwMC90nnZElorCW63P2pAYm25AtQrHfuOkbRSHj0bT8= -cloud.google.com/go/apigateway v1.6.3/go.mod h1:k68PXWpEs6BVDTtnLQAyG606Q3mz8pshItwPXjgv44Y= -cloud.google.com/go/apigateway v1.6.4/go.mod h1:0EpJlVGH5HwAN4VF4Iec8TAzGN1aQgbxAWGJsnPCGGY= -cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= -cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= -cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= -cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs= -cloud.google.com/go/apigeeconnect v1.6.2/go.mod h1:s6O0CgXT9RgAxlq3DLXvG8riw8PYYbU/v25jqP3Dy18= -cloud.google.com/go/apigeeconnect v1.6.3/go.mod h1:peG0HFQ0si2bN15M6QSjEW/W7Gy3NYkWGz7pFz13cbo= -cloud.google.com/go/apigeeconnect v1.6.4/go.mod h1:CapQCWZ8TCjnU0d7PobxhpOdVz/OVJ2Hr/Zcuu1xFx0= -cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= -cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= -cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= -cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw= -cloud.google.com/go/apigeeregistry v0.7.2/go.mod h1:9CA2B2+TGsPKtfi3F7/1ncCCsL62NXBRfM6iPoGSM+8= -cloud.google.com/go/apigeeregistry v0.8.1/go.mod h1:MW4ig1N4JZQsXmBSwH4rwpgDonocz7FPBSw6XPGHmYw= -cloud.google.com/go/apigeeregistry v0.8.2/go.mod h1:h4v11TDGdeXJDJvImtgK2AFVvMIgGWjSb0HRnBSjcX8= -cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= -cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= -cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= -cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= -cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= -cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= -cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= -cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= -cloud.google.com/go/appengine v1.8.1/go.mod h1:6NJXGLVhZCN9aQ/AEDvmfzKEfoYBlfB80/BHiKVputY= -cloud.google.com/go/appengine v1.8.2/go.mod h1:WMeJV9oZ51pvclqFN2PqHoGnys7rK0rz6s3Mp6yMvDo= -cloud.google.com/go/appengine v1.8.3/go.mod h1:2oUPZ1LVZ5EXi+AF1ihNAF+S8JrzQ3till5m9VQkrsk= -cloud.google.com/go/appengine v1.8.4/go.mod h1:TZ24v+wXBujtkK77CXCpjZbnuTvsFNT41MUaZ28D6vg= -cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= -cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= -cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= -cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= -cloud.google.com/go/area120 v0.8.1/go.mod h1:BVfZpGpB7KFVNxPiQBuHkX6Ed0rS51xIgmGyjrAfzsg= -cloud.google.com/go/area120 v0.8.2/go.mod h1:a5qfo+x77SRLXnCynFWPUZhnZGeSgvQ+Y0v1kSItkh4= -cloud.google.com/go/area120 v0.8.3/go.mod h1:5zj6pMzVTH+SVHljdSKC35sriR/CVvQZzG/Icdyriw0= -cloud.google.com/go/area120 v0.8.4/go.mod h1:jfawXjxf29wyBXr48+W+GyX/f8fflxp642D/bb9v68M= -cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= -cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= -cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= -cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= -cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= -cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= -cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= -cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= -cloud.google.com/go/artifactregistry v1.14.1/go.mod h1:nxVdG19jTaSTu7yA7+VbWL346r3rIdkZ142BSQqhn5E= -cloud.google.com/go/artifactregistry v1.14.2/go.mod h1:Xk+QbsKEb0ElmyeMfdHAey41B+qBq3q5R5f5xD4XT3U= -cloud.google.com/go/artifactregistry v1.14.3/go.mod h1:A2/E9GXnsyXl7GUvQ/2CjHA+mVRoWAXC0brg2os+kNI= -cloud.google.com/go/artifactregistry v1.14.4/go.mod h1:SJJcZTMv6ce0LDMUnihCN7WSrI+kBSFV0KIKo8S8aYU= -cloud.google.com/go/artifactregistry v1.14.6/go.mod h1:np9LSFotNWHcjnOgh8UVK0RFPCTUGbO0ve3384xyHfE= -cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= -cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= -cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= -cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= -cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= -cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= -cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= -cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= -cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi03hd+WTQ= -cloud.google.com/go/asset v1.15.0/go.mod h1:tpKafV6mEut3+vN9ScGvCHXHj7FALFVta+okxFECHcg= -cloud.google.com/go/asset v1.15.1/go.mod h1:yX/amTvFWRpp5rcFq6XbCxzKT8RJUam1UoboE179jU4= -cloud.google.com/go/asset v1.15.2/go.mod h1:B6H5tclkXvXz7PD22qCA2TDxSVQfasa3iDlM89O2NXs= -cloud.google.com/go/asset v1.15.3/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= -cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= -cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= -cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= -cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= -cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= -cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= -cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0= -cloud.google.com/go/assuredworkloads v1.11.2/go.mod h1:O1dfr+oZJMlE6mw0Bp0P1KZSlj5SghMBvTpZqIcUAW4= -cloud.google.com/go/assuredworkloads v1.11.3/go.mod h1:vEjfTKYyRUaIeA0bsGJceFV2JKpVRgyG2op3jfa59Zs= -cloud.google.com/go/assuredworkloads v1.11.4/go.mod h1:4pwwGNwy1RP0m+y12ef3Q/8PaiWrIDQ6nD2E8kvWI9U= -cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= -cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= -cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= -cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= -cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= -cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE= -cloud.google.com/go/automl v1.13.2/go.mod h1:gNY/fUmDEN40sP8amAX3MaXkxcqPIn7F1UIIPZpy4Mg= -cloud.google.com/go/automl v1.13.3/go.mod h1:Y8KwvyAZFOsMAPqUCfNu1AyclbC6ivCUF/MTwORymyY= -cloud.google.com/go/automl v1.13.4/go.mod h1:ULqwX/OLZ4hBVfKQaMtxMSTlPx0GqGbWN8uA/1EqCP8= -cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= -cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= -cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= -cloud.google.com/go/baremetalsolution v1.1.1/go.mod h1:D1AV6xwOksJMV4OSlWHtWuFNZZYujJknMAP4Qa27QIA= -cloud.google.com/go/baremetalsolution v1.2.0/go.mod h1:68wi9AwPYkEWIUT4SvSGS9UJwKzNpshjHsH4lzk8iOw= -cloud.google.com/go/baremetalsolution v1.2.1/go.mod h1:3qKpKIw12RPXStwQXcbhfxVj1dqQGEvcmA+SX/mUR88= -cloud.google.com/go/baremetalsolution v1.2.2/go.mod h1:O5V6Uu1vzVelYahKfwEWRMaS3AbCkeYHy3145s1FkhM= -cloud.google.com/go/baremetalsolution v1.2.3/go.mod h1:/UAQ5xG3faDdy180rCUv47e0jvpp3BFxT+Cl0PFjw5g= -cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= -cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= -cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= -cloud.google.com/go/batch v1.3.1/go.mod h1:VguXeQKXIYaeeIYbuozUmBR13AfL4SJP7IltNPS+A4A= -cloud.google.com/go/batch v1.4.1/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk= -cloud.google.com/go/batch v1.5.0/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk= -cloud.google.com/go/batch v1.5.1/go.mod h1:RpBuIYLkQu8+CWDk3dFD/t/jOCGuUpkpX+Y0n1Xccs8= -cloud.google.com/go/batch v1.6.1/go.mod h1:urdpD13zPe6YOK+6iZs/8/x2VBRofvblLpx0t57vM98= -cloud.google.com/go/batch v1.6.3/go.mod h1:J64gD4vsNSA2O5TtDB5AAux3nJ9iV8U3ilg3JDBYejU= -cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= -cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= -cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= -cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= -cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= -cloud.google.com/go/beyondcorp v1.0.0/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= -cloud.google.com/go/beyondcorp v1.0.1/go.mod h1:zl/rWWAFVeV+kx+X2Javly7o1EIQThU4WlkynffL/lk= -cloud.google.com/go/beyondcorp v1.0.2/go.mod h1:m8cpG7caD+5su+1eZr+TSvF6r21NdLJk4f9u4SP2Ntc= -cloud.google.com/go/beyondcorp v1.0.3/go.mod h1:HcBvnEd7eYr+HGDd5ZbuVmBYX019C6CEXBonXbCVwJo= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= -cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= -cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= -cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= -cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= -cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= -cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= -cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= -cloud.google.com/go/bigquery v1.53.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= -cloud.google.com/go/bigquery v1.55.0/go.mod h1:9Y5I3PN9kQWuid6183JFhOGOW3GcirA5LpsKCUn+2ec= -cloud.google.com/go/bigquery v1.56.0/go.mod h1:KDcsploXTEY7XT3fDQzMUZlpQLHzE4itubHrnmhUrZA= -cloud.google.com/go/bigquery v1.57.1/go.mod h1:iYzC0tGVWt1jqSzBHqCr3lrRn0u13E8e+AqowBsDgug= -cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= -cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= -cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= -cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= -cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= -cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= -cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA= -cloud.google.com/go/billing v1.17.0/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64= -cloud.google.com/go/billing v1.17.1/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64= -cloud.google.com/go/billing v1.17.2/go.mod h1:u/AdV/3wr3xoRBk5xvUzYMS1IawOAPwQMuHgHMdljDg= -cloud.google.com/go/billing v1.17.3/go.mod h1:z83AkoZ7mZwBGT3yTnt6rSGI1OOsHSIi6a5M3mJ8NaU= -cloud.google.com/go/billing v1.17.4/go.mod h1:5DOYQStCxquGprqfuid/7haD7th74kyMBHkjO/OvDtk= -cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= -cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= -cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= -cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= -cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= -cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U= -cloud.google.com/go/binaryauthorization v1.7.0/go.mod h1:Zn+S6QqTMn6odcMU1zDZCJxPjU2tZPV1oDl45lWY154= -cloud.google.com/go/binaryauthorization v1.7.1/go.mod h1:GTAyfRWYgcbsP3NJogpV3yeunbUIjx2T9xVeYovtURE= -cloud.google.com/go/binaryauthorization v1.7.2/go.mod h1:kFK5fQtxEp97m92ziy+hbu+uKocka1qRRL8MVJIgjv0= -cloud.google.com/go/binaryauthorization v1.7.3/go.mod h1:VQ/nUGRKhrStlGr+8GMS8f6/vznYLkdK5vaKfdCIpvU= -cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= -cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= -cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= -cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI= -cloud.google.com/go/certificatemanager v1.7.2/go.mod h1:15SYTDQMd00kdoW0+XY5d9e+JbOPjp24AvF48D8BbcQ= -cloud.google.com/go/certificatemanager v1.7.3/go.mod h1:T/sZYuC30PTag0TLo28VedIRIj1KPGcOQzjWAptHa00= -cloud.google.com/go/certificatemanager v1.7.4/go.mod h1:FHAylPe/6IIKuaRmHbjbdLhGhVQ+CWHSD5Jq0k4+cCE= -cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= -cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= -cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= -cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= -cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc= -cloud.google.com/go/channel v1.17.0/go.mod h1:RpbhJsGi/lXWAUM1eF4IbQGbsfVlg2o8Iiy2/YLfVT0= -cloud.google.com/go/channel v1.17.1/go.mod h1:xqfzcOZAcP4b/hUDH0GkGg1Sd5to6di1HOJn/pi5uBQ= -cloud.google.com/go/channel v1.17.2/go.mod h1:aT2LhnftnyfQceFql5I/mP8mIbiiJS4lWqgXA815zMk= -cloud.google.com/go/channel v1.17.3/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE= -cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= -cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= -cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= -cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= -cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= -cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= -cloud.google.com/go/cloudbuild v1.13.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= -cloud.google.com/go/cloudbuild v1.14.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= -cloud.google.com/go/cloudbuild v1.14.1/go.mod h1:K7wGc/3zfvmYWOWwYTgF/d/UVJhS4pu+HAy7PL7mCsU= -cloud.google.com/go/cloudbuild v1.14.2/go.mod h1:Bn6RO0mBYk8Vlrt+8NLrru7WXlQ9/RDWz2uo5KG1/sg= -cloud.google.com/go/cloudbuild v1.14.3/go.mod h1:eIXYWmRt3UtggLnFGx4JvXcMj4kShhVzGndL1LwleEM= -cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= -cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= -cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= -cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI= -cloud.google.com/go/clouddms v1.7.0/go.mod h1:MW1dC6SOtI/tPNCciTsXtsGNEM0i0OccykPvv3hiYeM= -cloud.google.com/go/clouddms v1.7.1/go.mod h1:o4SR8U95+P7gZ/TX+YbJxehOCsM+fe6/brlrFquiszk= -cloud.google.com/go/clouddms v1.7.2/go.mod h1:Rk32TmWmHo64XqDvW7jgkFQet1tUKNVzs7oajtJT3jU= -cloud.google.com/go/clouddms v1.7.3/go.mod h1:fkN2HQQNUYInAU3NQ3vRLkV2iWs8lIdmBKOx4nrL6Hc= -cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= -cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= -cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= -cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= -cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= -cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= -cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= -cloud.google.com/go/cloudtasks v1.12.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= -cloud.google.com/go/cloudtasks v1.12.2/go.mod h1:A7nYkjNlW2gUoROg1kvJrQGhJP/38UaWwsnuBDOBVUk= -cloud.google.com/go/cloudtasks v1.12.3/go.mod h1:GPVXhIOSGEaR+3xT4Fp72ScI+HjHffSS4B8+BaBB5Ys= -cloud.google.com/go/cloudtasks v1.12.4/go.mod h1:BEPu0Gtt2dU6FxZHNqqNdGqIG86qyWKBPGnsb7udGY0= -cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= -cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= -cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= -cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= -cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= -cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= -cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= -cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= -cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= -cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= -cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= -cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= -cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= -cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= -cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI= -cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= -cloud.google.com/go/compute v1.21.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= -cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= -cloud.google.com/go/compute v1.23.1/go.mod h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3Xp1ixncW78= -cloud.google.com/go/compute v1.23.2/go.mod h1:JJ0atRC0J/oWYiiVBmsSsrRnh92DhZPG4hFDcR04Rns= -cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= -cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= -cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= -cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= -cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= -cloud.google.com/go/contactcenterinsights v1.9.1/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= -cloud.google.com/go/contactcenterinsights v1.10.0/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= -cloud.google.com/go/contactcenterinsights v1.11.0/go.mod h1:hutBdImE4XNZ1NV4vbPJKSFOnQruhC5Lj9bZqWMTKiU= -cloud.google.com/go/contactcenterinsights v1.11.1/go.mod h1:FeNP3Kg8iteKM80lMwSk3zZZKVxr+PGnAId6soKuXwE= -cloud.google.com/go/contactcenterinsights v1.11.2/go.mod h1:A9PIR5ov5cRcd28KlDbmmXE8Aay+Gccer2h4wzkYFso= -cloud.google.com/go/contactcenterinsights v1.11.3/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis= -cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= -cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= -cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= -cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= -cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= -cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= -cloud.google.com/go/container v1.24.0/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= -cloud.google.com/go/container v1.26.0/go.mod h1:YJCmRet6+6jnYYRS000T6k0D0xUXQgBSaJ7VwI8FBj4= -cloud.google.com/go/container v1.26.1/go.mod h1:5smONjPRUxeEpDG7bMKWfDL4sauswqEtnBK1/KKpR04= -cloud.google.com/go/container v1.26.2/go.mod h1:YlO84xCt5xupVbLaMY4s3XNE79MUJ+49VmkInr6HvF4= -cloud.google.com/go/container v1.27.1/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4= -cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= -cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= -cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= -cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= -cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0= -cloud.google.com/go/containeranalysis v0.11.0/go.mod h1:4n2e99ZwpGxpNcz+YsFT1dfOHPQFGcAC8FN2M2/ne/U= -cloud.google.com/go/containeranalysis v0.11.1/go.mod h1:rYlUOM7nem1OJMKwE1SadufX0JP3wnXj844EtZAwWLY= -cloud.google.com/go/containeranalysis v0.11.2/go.mod h1:xibioGBC1MD2j4reTyV1xY1/MvKaz+fyM9ENWhmIeP8= -cloud.google.com/go/containeranalysis v0.11.3/go.mod h1:kMeST7yWFQMGjiG9K7Eov+fPNQcGhb8mXj/UcTiWw9U= -cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= -cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= -cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= -cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= -cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= -cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= -cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= -cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= -cloud.google.com/go/datacatalog v1.14.0/go.mod h1:h0PrGtlihoutNMp/uvwhawLQ9+c63Kz65UFqh49Yo+E= -cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= -cloud.google.com/go/datacatalog v1.16.0/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= -cloud.google.com/go/datacatalog v1.17.1/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE= -cloud.google.com/go/datacatalog v1.18.0/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE= -cloud.google.com/go/datacatalog v1.18.1/go.mod h1:TzAWaz+ON1tkNr4MOcak8EBHX7wIRX/gZKM+yTVsv+A= -cloud.google.com/go/datacatalog v1.18.2/go.mod h1:SPVgWW2WEMuWHA+fHodYjmxPiMqcOiWfhc9OD5msigk= -cloud.google.com/go/datacatalog v1.18.3/go.mod h1:5FR6ZIF8RZrtml0VUao22FxhdjkoG+a0866rEnObryM= -cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= -cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= -cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= -cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw= -cloud.google.com/go/dataflow v0.9.2/go.mod h1:vBfdBZ/ejlTaYIGB3zB4T08UshH70vbtZeMD+urnUSo= -cloud.google.com/go/dataflow v0.9.3/go.mod h1:HI4kMVjcHGTs3jTHW/kv3501YW+eloiJSLxkJa/vqFE= -cloud.google.com/go/dataflow v0.9.4/go.mod h1:4G8vAkHYCSzU8b/kmsoR2lWyHJD85oMJPHMtan40K8w= -cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= -cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= -cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= -cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= -cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= -cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M= -cloud.google.com/go/dataform v0.8.2/go.mod h1:X9RIqDs6NbGPLR80tnYoPNiO1w0wenKTb8PxxlhTMKM= -cloud.google.com/go/dataform v0.8.3/go.mod h1:8nI/tvv5Fso0drO3pEjtowz58lodx8MVkdV2q0aPlqg= -cloud.google.com/go/dataform v0.9.1/go.mod h1:pWTg+zGQ7i16pyn0bS1ruqIE91SdL2FDMvEYu/8oQxs= -cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= -cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= -cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= -cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI= -cloud.google.com/go/datafusion v1.7.2/go.mod h1:62K2NEC6DRlpNmI43WHMWf9Vg/YvN6QVi8EVwifElI0= -cloud.google.com/go/datafusion v1.7.3/go.mod h1:eoLt1uFXKGBq48jy9LZ+Is8EAVLnmn50lNncLzwYokE= -cloud.google.com/go/datafusion v1.7.4/go.mod h1:BBs78WTOLYkT4GVZIXQCZT3GFpkpDN4aBY4NDX/jVlM= -cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= -cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= -cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= -cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY= -cloud.google.com/go/datalabeling v0.8.2/go.mod h1:cyDvGHuJWu9U/cLDA7d8sb9a0tWLEletStu2sTmg3BE= -cloud.google.com/go/datalabeling v0.8.3/go.mod h1:tvPhpGyS/V7lqjmb3V0TaDdGvhzgR1JoW7G2bpi2UTI= -cloud.google.com/go/datalabeling v0.8.4/go.mod h1:Z1z3E6LHtffBGrNUkKwbwbDxTiXEApLzIgmymj8A3S8= -cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= -cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= -cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= -cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= -cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= -cloud.google.com/go/dataplex v1.9.0/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= -cloud.google.com/go/dataplex v1.9.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= -cloud.google.com/go/dataplex v1.10.1/go.mod h1:1MzmBv8FvjYfc7vDdxhnLFNskikkB+3vl475/XdCDhs= -cloud.google.com/go/dataplex v1.10.2/go.mod h1:xdC8URdTrCrZMW6keY779ZT1cTOfV8KEPNsw+LTRT1Y= -cloud.google.com/go/dataplex v1.11.1/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= -cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= -cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= -cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= -cloud.google.com/go/dataproc/v2 v2.0.1/go.mod h1:7Ez3KRHdFGcfY7GcevBbvozX+zyWGcwLJvvAMwCaoZ4= -cloud.google.com/go/dataproc/v2 v2.2.0/go.mod h1:lZR7AQtwZPvmINx5J87DSOOpTfof9LVZju6/Qo4lmcY= -cloud.google.com/go/dataproc/v2 v2.2.1/go.mod h1:QdAJLaBjh+l4PVlVZcmrmhGccosY/omC1qwfQ61Zv/o= -cloud.google.com/go/dataproc/v2 v2.2.2/go.mod h1:aocQywVmQVF4i8CL740rNI/ZRpsaaC1Wh2++BJ7HEJ4= -cloud.google.com/go/dataproc/v2 v2.2.3/go.mod h1:G5R6GBc9r36SXv/RtZIVfB8SipI+xVn0bX5SxUzVYbY= -cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= -cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= -cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= -cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8= -cloud.google.com/go/dataqna v0.8.2/go.mod h1:KNEqgx8TTmUipnQsScOoDpq/VlXVptUqVMZnt30WAPs= -cloud.google.com/go/dataqna v0.8.3/go.mod h1:wXNBW2uvc9e7Gl5k8adyAMnLush1KVV6lZUhB+rqNu4= -cloud.google.com/go/dataqna v0.8.4/go.mod h1:mySRKjKg5Lz784P6sCov3p1QD+RZQONRMRjzGNcFd0c= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= -cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= -cloud.google.com/go/datastore v1.12.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= -cloud.google.com/go/datastore v1.12.1/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= -cloud.google.com/go/datastore v1.13.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= -cloud.google.com/go/datastore v1.14.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= -cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= -cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= -cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= -cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= -cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= -cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= -cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= -cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= -cloud.google.com/go/datastream v1.10.0/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= -cloud.google.com/go/datastream v1.10.1/go.mod h1:7ngSYwnw95YFyTd5tOGBxHlOZiL+OtpjheqU7t2/s/c= -cloud.google.com/go/datastream v1.10.2/go.mod h1:W42TFgKAs/om6x/CdXX5E4oiAsKlH+e8MTGy81zdYt0= -cloud.google.com/go/datastream v1.10.3/go.mod h1:YR0USzgjhqA/Id0Ycu1VvZe8hEWwrkjuXrGbzeDOSEA= -cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= -cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= -cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= -cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= -cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= -cloud.google.com/go/deploy v1.13.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= -cloud.google.com/go/deploy v1.13.1/go.mod h1:8jeadyLkH9qu9xgO3hVWw8jVr29N1mnW42gRJT8GY6g= -cloud.google.com/go/deploy v1.14.1/go.mod h1:N8S0b+aIHSEeSr5ORVoC0+/mOPUysVt8ae4QkZYolAw= -cloud.google.com/go/deploy v1.14.2/go.mod h1:e5XOUI5D+YGldyLNZ21wbp9S8otJbBE4i88PtO9x/2g= -cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= -cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= -cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= -cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= -cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= -cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= -cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= -cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= -cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= -cloud.google.com/go/dialogflow v1.40.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= -cloud.google.com/go/dialogflow v1.43.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M= -cloud.google.com/go/dialogflow v1.44.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M= -cloud.google.com/go/dialogflow v1.44.1/go.mod h1:n/h+/N2ouKOO+rbe/ZnI186xImpqvCVj2DdsWS/0EAk= -cloud.google.com/go/dialogflow v1.44.2/go.mod h1:QzFYndeJhpVPElnFkUXxdlptx0wPnBWLCBT9BvtC3/c= -cloud.google.com/go/dialogflow v1.44.3/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ= -cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= -cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= -cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= -cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI= -cloud.google.com/go/dlp v1.10.2/go.mod h1:ZbdKIhcnyhILgccwVDzkwqybthh7+MplGC3kZVZsIOQ= -cloud.google.com/go/dlp v1.10.3/go.mod h1:iUaTc/ln8I+QT6Ai5vmuwfw8fqTk2kaz0FvCwhLCom0= -cloud.google.com/go/dlp v1.11.1/go.mod h1:/PA2EnioBeXTL/0hInwgj0rfsQb3lpE3R8XUJxqUNKI= -cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= -cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= -cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= -cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= -cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= -cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= -cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= -cloud.google.com/go/documentai v1.22.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= -cloud.google.com/go/documentai v1.22.1/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc= -cloud.google.com/go/documentai v1.23.0/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc= -cloud.google.com/go/documentai v1.23.2/go.mod h1:Q/wcRT+qnuXOpjAkvOV4A+IeQl04q2/ReT7SSbytLSo= -cloud.google.com/go/documentai v1.23.4/go.mod h1:4MYAaEMnADPN1LPN5xboDR5QVB6AgsaxgFdJhitlE2Y= -cloud.google.com/go/documentai v1.23.5/go.mod h1:ghzBsyVTiVdkfKaUCum/9bGBEyBjDO4GfooEcYKhN+g= -cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= -cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= -cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= -cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE= -cloud.google.com/go/domains v0.9.2/go.mod h1:3YvXGYzZG1Temjbk7EyGCuGGiXHJwVNmwIf+E/cUp5I= -cloud.google.com/go/domains v0.9.3/go.mod h1:29k66YNDLDY9LCFKpGFeh6Nj9r62ZKm5EsUJxAl84KU= -cloud.google.com/go/domains v0.9.4/go.mod h1:27jmJGShuXYdUNjyDG0SodTfT5RwLi7xmH334Gvi3fY= -cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= -cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= -cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= -cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= -cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk= -cloud.google.com/go/edgecontainer v1.1.2/go.mod h1:wQRjIzqxEs9e9wrtle4hQPSR1Y51kqN75dgF7UllZZ4= -cloud.google.com/go/edgecontainer v1.1.3/go.mod h1:Ll2DtIABzEfaxaVSbwj3QHFaOOovlDFiWVDu349jSsA= -cloud.google.com/go/edgecontainer v1.1.4/go.mod h1:AvFdVuZuVGdgaE5YvlL1faAoa1ndRR/5XhXZvPBHbsE= -cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= -cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= -cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= -cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= -cloud.google.com/go/essentialcontacts v1.6.2/go.mod h1:T2tB6tX+TRak7i88Fb2N9Ok3PvY3UNbUsMag9/BARh4= -cloud.google.com/go/essentialcontacts v1.6.3/go.mod h1:yiPCD7f2TkP82oJEFXFTou8Jl8L6LBRPeBEkTaO0Ggo= -cloud.google.com/go/essentialcontacts v1.6.4/go.mod h1:iju5Vy3d9tJUg0PYMd1nHhjV7xoCXaOAVabrwLaPBEM= -cloud.google.com/go/essentialcontacts v1.6.5/go.mod h1:jjYbPzw0x+yglXC890l6ECJWdYeZ5dlYACTFL0U/VuM= -cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= -cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= -cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= -cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= -cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= -cloud.google.com/go/eventarc v1.13.0/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= -cloud.google.com/go/eventarc v1.13.1/go.mod h1:EqBxmGHFrruIara4FUQ3RHlgfCn7yo1HYsu2Hpt/C3Y= -cloud.google.com/go/eventarc v1.13.2/go.mod h1:X9A80ShVu19fb4e5sc/OLV7mpFUKZMwfJFeeWhcIObM= -cloud.google.com/go/eventarc v1.13.3/go.mod h1:RWH10IAZIRcj1s/vClXkBgMHwh59ts7hSWcqD3kaclg= -cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= -cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= -cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= -cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= -cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4= -cloud.google.com/go/filestore v1.7.2/go.mod h1:TYOlyJs25f/omgj+vY7/tIG/E7BX369triSPzE4LdgE= -cloud.google.com/go/filestore v1.7.3/go.mod h1:Qp8WaEERR3cSkxToxFPHh/b8AACkSut+4qlCjAmKTV0= -cloud.google.com/go/filestore v1.7.4/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI= -cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= -cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= -cloud.google.com/go/firestore v1.12.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= -cloud.google.com/go/firestore v1.13.0/go.mod h1:QojqqOh8IntInDUSTAh0c8ZsPYAr68Ma8c5DWOy8xb8= -cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ= -cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= -cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= -cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= -cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= -cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= -cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= -cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= -cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE= -cloud.google.com/go/functions v1.15.2/go.mod h1:CHAjtcR6OU4XF2HuiVeriEdELNcnvRZSk1Q8RMqy4lE= -cloud.google.com/go/functions v1.15.3/go.mod h1:r/AMHwBheapkkySEhiZYLDBwVJCdlRwsm4ieJu35/Ug= -cloud.google.com/go/functions v1.15.4/go.mod h1:CAsTc3VlRMVvx+XqXxKqVevguqJpnVip4DdonFsX28I= -cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= -cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= -cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= -cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= -cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= -cloud.google.com/go/gaming v1.10.1/go.mod h1:XQQvtfP8Rb9Rxnxm5wFVpAp9zCQkJi2bLIb7iHGwB3s= -cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= -cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= -cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= -cloud.google.com/go/gkebackup v1.3.0/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU= -cloud.google.com/go/gkebackup v1.3.1/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU= -cloud.google.com/go/gkebackup v1.3.2/go.mod h1:OMZbXzEJloyXMC7gqdSB+EOEQ1AKcpGYvO3s1ec5ixk= -cloud.google.com/go/gkebackup v1.3.3/go.mod h1:eMk7/wVV5P22KBakhQnJxWSVftL1p4VBFLpv0kIft7I= -cloud.google.com/go/gkebackup v1.3.4/go.mod h1:gLVlbM8h/nHIs09ns1qx3q3eaXcGSELgNu1DWXYz1HI= -cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= -cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= -cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= -cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw= -cloud.google.com/go/gkeconnect v0.8.2/go.mod h1:6nAVhwchBJYgQCXD2pHBFQNiJNyAd/wyxljpaa6ZPrY= -cloud.google.com/go/gkeconnect v0.8.3/go.mod h1:i9GDTrfzBSUZGCe98qSu1B8YB8qfapT57PenIb820Jo= -cloud.google.com/go/gkeconnect v0.8.4/go.mod h1:84hZz4UMlDCKl8ifVW8layK4WHlMAFeq8vbzjU0yJkw= -cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= -cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= -cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= -cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= -cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY= -cloud.google.com/go/gkehub v0.14.2/go.mod h1:iyjYH23XzAxSdhrbmfoQdePnlMj2EWcvnR+tHdBQsCY= -cloud.google.com/go/gkehub v0.14.3/go.mod h1:jAl6WafkHHW18qgq7kqcrXYzN08hXeK/Va3utN8VKg8= -cloud.google.com/go/gkehub v0.14.4/go.mod h1:Xispfu2MqnnFt8rV/2/3o73SK1snL8s9dYJ9G2oQMfc= -cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= -cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= -cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= -cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= -cloud.google.com/go/gkemulticloud v1.0.0/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= -cloud.google.com/go/gkemulticloud v1.0.1/go.mod h1:AcrGoin6VLKT/fwZEYuqvVominLriQBCKmbjtnbMjG8= -cloud.google.com/go/gkemulticloud v1.0.2/go.mod h1:+ee5VXxKb3H1l4LZAcgWB/rvI16VTNTrInWxDjAGsGo= -cloud.google.com/go/gkemulticloud v1.0.3/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= -cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= -cloud.google.com/go/grafeas v0.3.0/go.mod h1:P7hgN24EyONOTMyeJH6DxG4zD7fwiYa5Q6GUgyFSOU8= -cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= -cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= -cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= -cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY= -cloud.google.com/go/gsuiteaddons v1.6.2/go.mod h1:K65m9XSgs8hTF3X9nNTPi8IQueljSdYo9F+Mi+s4MyU= -cloud.google.com/go/gsuiteaddons v1.6.3/go.mod h1:sCFJkZoMrLZT3JTb8uJqgKPNshH2tfXeCwTFRebTq48= -cloud.google.com/go/gsuiteaddons v1.6.4/go.mod h1:rxtstw7Fx22uLOXBpsvb9DUbC+fiXs7rF4U29KHM/pE= -cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= -cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= -cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= -cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= -cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= -cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= -cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= -cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/iam v1.0.1/go.mod h1:yR3tmSL8BcZB4bxByRv2jkSIahVmCtfKZwLYGBalRE8= -cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= -cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= -cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= -cloud.google.com/go/iam v1.1.3/go.mod h1:3khUlaBXfPKKe7huYgEpDn6FtgRyMEqbkvBxrQyY5SE= -cloud.google.com/go/iam v1.1.4/go.mod h1:l/rg8l1AaA+VFMho/HYx2Vv6xinPSLMF8qfhRPIZ0L8= -cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= -cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= -cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= -cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= -cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= -cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= -cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ= -cloud.google.com/go/iap v1.9.0/go.mod h1:01OFxd1R+NFrg78S+hoPV5PxEzv22HXaNqUUlmNHFuY= -cloud.google.com/go/iap v1.9.1/go.mod h1:SIAkY7cGMLohLSdBR25BuIxO+I4fXJiL06IBL7cy/5Q= -cloud.google.com/go/iap v1.9.2/go.mod h1:GwDTOs047PPSnwRD0Us5FKf4WDRcVvHg1q9WVkKBhdI= -cloud.google.com/go/iap v1.9.3/go.mod h1:DTdutSZBqkkOm2HEOTBzhZxh2mwwxshfD/h3yofAiCw= -cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= -cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= -cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= -cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw= -cloud.google.com/go/ids v1.4.2/go.mod h1:3vw8DX6YddRu9BncxuzMyWn0g8+ooUjI2gslJ7FH3vk= -cloud.google.com/go/ids v1.4.3/go.mod h1:9CXPqI3GedjmkjbMWCUhMZ2P2N7TUMzAkVXYEH2orYU= -cloud.google.com/go/ids v1.4.4/go.mod h1:z+WUc2eEl6S/1aZWzwtVNWoSZslgzPxAboS0lZX0HjI= -cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= -cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= -cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= -cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= -cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk= -cloud.google.com/go/iot v1.7.2/go.mod h1:q+0P5zr1wRFpw7/MOgDXrG/HVA+l+cSwdObffkrpnSg= -cloud.google.com/go/iot v1.7.3/go.mod h1:t8itFchkol4VgNbHnIq9lXoOOtHNR3uAACQMYbN9N4I= -cloud.google.com/go/iot v1.7.4/go.mod h1:3TWqDVvsddYBG++nHSZmluoCAVGr1hAcabbWZNKEZLk= -cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= -cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= -cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= -cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= -cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= -cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= -cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= -cloud.google.com/go/kms v1.11.0/go.mod h1:hwdiYC0xjnWsKQQCQQmIQnS9asjYVSK6jtXm+zFqXLM= -cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= -cloud.google.com/go/kms v1.15.0/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= -cloud.google.com/go/kms v1.15.2/go.mod h1:3hopT4+7ooWRCjc2DxgnpESFxhIraaI2IpAVUEhbT/w= -cloud.google.com/go/kms v1.15.3/go.mod h1:AJdXqHxS2GlPyduM99s9iGqi2nwbviBbhV/hdmt4iOQ= -cloud.google.com/go/kms v1.15.4/go.mod h1:L3Sdj6QTHK8dfwK5D1JLsAyELsNMnd3tAIwGS4ltKpc= -cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= -cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= -cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= -cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= -cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= -cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= -cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0= -cloud.google.com/go/language v1.11.0/go.mod h1:uDx+pFDdAKTY8ehpWbiXyQdz8tDSYLJbQcXsCkjYyvQ= -cloud.google.com/go/language v1.11.1/go.mod h1:Xyid9MG9WOX3utvDbpX7j3tXDmmDooMyMDqgUVpH17U= -cloud.google.com/go/language v1.12.1/go.mod h1:zQhalE2QlQIxbKIZt54IASBzmZpN/aDASea5zl1l+J4= -cloud.google.com/go/language v1.12.2/go.mod h1:9idWapzr/JKXBBQ4lWqVX/hcadxB194ry20m/bTrhWc= -cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= -cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= -cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= -cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc= -cloud.google.com/go/lifesciences v0.9.2/go.mod h1:QHEOO4tDzcSAzeJg7s2qwnLM2ji8IRpQl4p6m5Z9yTA= -cloud.google.com/go/lifesciences v0.9.3/go.mod h1:gNGBOJV80IWZdkd+xz4GQj4mbqaz737SCLHn2aRhQKM= -cloud.google.com/go/lifesciences v0.9.4/go.mod h1:bhm64duKhMi7s9jR9WYJYvjAFJwRqNj+Nia7hF0Z7JA= -cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= -cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= -cloud.google.com/go/logging v1.8.1/go.mod h1:TJjR+SimHwuC8MZ9cjByQulAMgni+RkXeI3wwctHJEI= -cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= -cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= -cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= -cloud.google.com/go/longrunning v0.4.2/go.mod h1:OHrnaYyLUV6oqwh0xiS7e5sLQhP1m0QU9R+WhGDMgIQ= -cloud.google.com/go/longrunning v0.5.0/go.mod h1:0JNuqRShmscVAhIACGtskSAWtqtOoPkwP0YF1oVEchc= -cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= -cloud.google.com/go/longrunning v0.5.2/go.mod h1:nqo6DQbNV2pXhGDbDMoN2bWz68MjZUzqv2YttZiveCs= -cloud.google.com/go/longrunning v0.5.3/go.mod h1:y/0ga59EYu58J6SHmmQOvekvND2qODbu8ywBBW7EK7Y= -cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= -cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= -cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= -cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= -cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak= -cloud.google.com/go/managedidentities v1.6.2/go.mod h1:5c2VG66eCa0WIq6IylRk3TBW83l161zkFvCj28X7jn8= -cloud.google.com/go/managedidentities v1.6.3/go.mod h1:tewiat9WLyFN0Fi7q1fDD5+0N4VUoL0SCX0OTCthZq4= -cloud.google.com/go/managedidentities v1.6.4/go.mod h1:WgyaECfHmF00t/1Uk8Oun3CQ2PGUtjc3e9Alh79wyiM= -cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= -cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= -cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= -cloud.google.com/go/maps v1.3.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s= -cloud.google.com/go/maps v1.4.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s= -cloud.google.com/go/maps v1.4.1/go.mod h1:BxSa0BnW1g2U2gNdbq5zikLlHUuHW0GFWh7sgML2kIY= -cloud.google.com/go/maps v1.5.1/go.mod h1:NPMZw1LJwQZYCfz4y+EIw+SI+24A4bpdFJqdKVr0lt4= -cloud.google.com/go/maps v1.6.1/go.mod h1:4+buOHhYXFBp58Zj/K+Lc1rCmJssxxF4pJ5CJnhdz18= -cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= -cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= -cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= -cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig= -cloud.google.com/go/mediatranslation v0.8.2/go.mod h1:c9pUaDRLkgHRx3irYE5ZC8tfXGrMYwNZdmDqKMSfFp8= -cloud.google.com/go/mediatranslation v0.8.3/go.mod h1:F9OnXTy336rteOEywtY7FOqCk+J43o2RF638hkOQl4Y= -cloud.google.com/go/mediatranslation v0.8.4/go.mod h1:9WstgtNVAdN53m6TQa5GjIjLqKQPXe74hwSCxUP6nj4= -cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= -cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= -cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= -cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= -cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= -cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA= -cloud.google.com/go/memcache v1.10.2/go.mod h1:f9ZzJHLBrmd4BkguIAa/l/Vle6uTHzHokdnzSWOdQ6A= -cloud.google.com/go/memcache v1.10.3/go.mod h1:6z89A41MT2DVAW0P4iIRdu5cmRTsbsFn4cyiIx8gbwo= -cloud.google.com/go/memcache v1.10.4/go.mod h1:v/d8PuC8d1gD6Yn5+I3INzLR01IDn0N4Ym56RgikSI0= -cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= -cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= -cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= -cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= -cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= -cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= -cloud.google.com/go/metastore v1.12.0/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= -cloud.google.com/go/metastore v1.13.0/go.mod h1:URDhpG6XLeh5K+Glq0NOt74OfrPKTwS62gEPZzb5SOk= -cloud.google.com/go/metastore v1.13.1/go.mod h1:IbF62JLxuZmhItCppcIfzBBfUFq0DIB9HPDoLgWrVOU= -cloud.google.com/go/metastore v1.13.2/go.mod h1:KS59dD+unBji/kFebVp8XU/quNSyo8b6N6tPGspKszA= -cloud.google.com/go/metastore v1.13.3/go.mod h1:K+wdjXdtkdk7AQg4+sXS8bRrQa9gcOr+foOMF2tqINE= -cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= -cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= -cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= -cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= -cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM= -cloud.google.com/go/monitoring v1.16.0/go.mod h1:Ptp15HgAyM1fNICAojDMoNc/wUmn67mLHQfyqbw+poY= -cloud.google.com/go/monitoring v1.16.1/go.mod h1:6HsxddR+3y9j+o/cMJH6q/KJ/CBTvM/38L/1m7bTRJ4= -cloud.google.com/go/monitoring v1.16.2/go.mod h1:B44KGwi4ZCF8Rk/5n+FWeispDXoKSk9oss2QNlXJBgc= -cloud.google.com/go/monitoring v1.16.3/go.mod h1:KwSsX5+8PnXv5NJnICZzW2R8pWTis8ypC4zmdRD63Tw= -cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= -cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= -cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= -cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= -cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= -cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= -cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E= -cloud.google.com/go/networkconnectivity v1.13.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk= -cloud.google.com/go/networkconnectivity v1.14.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk= -cloud.google.com/go/networkconnectivity v1.14.1/go.mod h1:LyGPXR742uQcDxZ/wv4EI0Vu5N6NKJ77ZYVnDe69Zug= -cloud.google.com/go/networkconnectivity v1.14.2/go.mod h1:5UFlwIisZylSkGG1AdwK/WZUaoz12PKu6wODwIbFzJo= -cloud.google.com/go/networkconnectivity v1.14.3/go.mod h1:4aoeFdrJpYEXNvrnfyD5kIzs8YtHg945Og4koAjHQek= -cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= -cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= -cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= -cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0= -cloud.google.com/go/networkmanagement v1.9.0/go.mod h1:UTUaEU9YwbCAhhz3jEOHr+2/K/MrBk2XxOLS89LQzFw= -cloud.google.com/go/networkmanagement v1.9.1/go.mod h1:CCSYgrQQvW73EJawO2QamemYcOb57LvrDdDU51F0mcI= -cloud.google.com/go/networkmanagement v1.9.2/go.mod h1:iDGvGzAoYRghhp4j2Cji7sF899GnfGQcQRQwgVOWnDw= -cloud.google.com/go/networkmanagement v1.9.3/go.mod h1:y7WMO1bRLaP5h3Obm4tey+NquUvB93Co1oh4wpL+XcU= -cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= -cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= -cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= -cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= -cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ= -cloud.google.com/go/networksecurity v0.9.2/go.mod h1:jG0SeAttWzPMUILEHDUvFYdQTl8L/E/KC8iZDj85lEI= -cloud.google.com/go/networksecurity v0.9.3/go.mod h1:l+C0ynM6P+KV9YjOnx+kk5IZqMSLccdBqW6GUoF4p/0= -cloud.google.com/go/networksecurity v0.9.4/go.mod h1:E9CeMZ2zDsNBkr8axKSYm8XyTqNhiCHf1JO/Vb8mD1w= -cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= -cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= -cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= -cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= -cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= -cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= -cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8= -cloud.google.com/go/notebooks v1.10.0/go.mod h1:SOPYMZnttHxqot0SGSFSkRrwE29eqnKPBJFqgWmiK2k= -cloud.google.com/go/notebooks v1.10.1/go.mod h1:5PdJc2SgAybE76kFQCWrTfJolCOUQXF97e+gteUUA6A= -cloud.google.com/go/notebooks v1.11.1/go.mod h1:V2Zkv8wX9kDCGRJqYoI+bQAaoVeE5kSiz4yYHd2yJwQ= -cloud.google.com/go/notebooks v1.11.2/go.mod h1:z0tlHI/lREXC8BS2mIsUeR3agM1AkgLiS+Isov3SS70= -cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= -cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= -cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= -cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk= -cloud.google.com/go/optimization v1.5.0/go.mod h1:evo1OvTxeBRBu6ydPlrIRizKY/LJKo/drDMMRKqGEUU= -cloud.google.com/go/optimization v1.5.1/go.mod h1:NC0gnUD5MWVAF7XLdoYVPmYYVth93Q6BUzqAq3ZwtV8= -cloud.google.com/go/optimization v1.6.1/go.mod h1:hH2RYPTTM9e9zOiTaYPTiGPcGdNZVnBSBxjIAJzUkqo= -cloud.google.com/go/optimization v1.6.2/go.mod h1:mWNZ7B9/EyMCcwNl1frUGEuY6CPijSkz88Fz2vwKPOY= -cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= -cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= -cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= -cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8= -cloud.google.com/go/orchestration v1.8.2/go.mod h1:T1cP+6WyTmh6LSZzeUhvGf0uZVmJyTx7t8z7Vg87+A0= -cloud.google.com/go/orchestration v1.8.3/go.mod h1:xhgWAYqlbYjlz2ftbFghdyqENYW+JXuhBx9KsjMoGHs= -cloud.google.com/go/orchestration v1.8.4/go.mod h1:d0lywZSVYtIoSZXb0iFjv9SaL13PGyVOKDxqGxEf/qI= -cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= -cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= -cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= -cloud.google.com/go/orgpolicy v1.11.0/go.mod h1:2RK748+FtVvnfuynxBzdnyu7sygtoZa1za/0ZfpOs1M= -cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE= -cloud.google.com/go/orgpolicy v1.11.2/go.mod h1:biRDpNwfyytYnmCRWZWxrKF22Nkz9eNVj9zyaBdpm1o= -cloud.google.com/go/orgpolicy v1.11.3/go.mod h1:oKAtJ/gkMjum5icv2aujkP4CxROxPXsBbYGCDbPO8MM= -cloud.google.com/go/orgpolicy v1.11.4/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI= -cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= -cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= -cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= -cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= -cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= -cloud.google.com/go/osconfig v1.12.0/go.mod h1:8f/PaYzoS3JMVfdfTubkowZYGmAhUCjjwnjqWI7NVBc= -cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE= -cloud.google.com/go/osconfig v1.12.2/go.mod h1:eh9GPaMZpI6mEJEuhEjUJmaxvQ3gav+fFEJon1Y8Iw0= -cloud.google.com/go/osconfig v1.12.3/go.mod h1:L/fPS8LL6bEYUi1au832WtMnPeQNT94Zo3FwwV1/xGM= -cloud.google.com/go/osconfig v1.12.4/go.mod h1:B1qEwJ/jzqSRslvdOCI8Kdnp0gSng0xW4LOnIebQomA= -cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= -cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= -cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= -cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= -cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= -cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs= -cloud.google.com/go/oslogin v1.11.0/go.mod h1:8GMTJs4X2nOAUVJiPGqIWVcDaF0eniEto3xlOxaboXE= -cloud.google.com/go/oslogin v1.11.1/go.mod h1:OhD2icArCVNUxKqtK0mcSmKL7lgr0LVlQz+v9s1ujTg= -cloud.google.com/go/oslogin v1.12.1/go.mod h1:VfwTeFJGbnakxAY236eN8fsnglLiVXndlbcNomY4iZU= -cloud.google.com/go/oslogin v1.12.2/go.mod h1:CQ3V8Jvw4Qo4WRhNPF0o+HAM4DiLuE27Ul9CX9g2QdY= -cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= -cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= -cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= -cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I= -cloud.google.com/go/phishingprotection v0.8.2/go.mod h1:LhJ91uyVHEYKSKcMGhOa14zMMWfbEdxG032oT6ECbC8= -cloud.google.com/go/phishingprotection v0.8.3/go.mod h1:3B01yO7T2Ra/TMojifn8EoGd4G9jts/6cIO0DgDY9J8= -cloud.google.com/go/phishingprotection v0.8.4/go.mod h1:6b3kNPAc2AQ6jZfFHioZKg9MQNybDg4ixFd4RPZZ2nE= -cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= -cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= -cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= -cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= -cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0= -cloud.google.com/go/policytroubleshooter v1.8.0/go.mod h1:tmn5Ir5EToWe384EuboTcVQT7nTag2+DuH3uHmKd1HU= -cloud.google.com/go/policytroubleshooter v1.9.0/go.mod h1:+E2Lga7TycpeSTj2FsH4oXxTnrbHJGRlKhVZBLGgU64= -cloud.google.com/go/policytroubleshooter v1.9.1/go.mod h1:MYI8i0bCrL8cW+VHN1PoiBTyNZTstCg2WUw2eVC4c4U= -cloud.google.com/go/policytroubleshooter v1.10.1/go.mod h1:5C0rhT3TDZVxAu8813bwmTvd57Phbl8mr9F4ipOsxEs= -cloud.google.com/go/policytroubleshooter v1.10.2/go.mod h1:m4uF3f6LseVEnMV6nknlN2vYGRb+75ylQwJdnOXfnv0= -cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= -cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= -cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= -cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= -cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA= -cloud.google.com/go/privatecatalog v0.9.2/go.mod h1:RMA4ATa8IXfzvjrhhK8J6H4wwcztab+oZph3c6WmtFc= -cloud.google.com/go/privatecatalog v0.9.3/go.mod h1:K5pn2GrVmOPjXz3T26mzwXLcKivfIJ9R5N79AFCF9UE= -cloud.google.com/go/privatecatalog v0.9.4/go.mod h1:SOjm93f+5hp/U3PqMZAHTtBtluqLygrDrVO8X8tYtG0= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= -cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= -cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= -cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= -cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= -cloud.google.com/go/pubsub v1.33.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= -cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= -cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= -cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= -cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0= -cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= -cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= -cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= -cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= -cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= -cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= -cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= -cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= -cloud.google.com/go/recaptchaenterprise/v2 v2.7.2/go.mod h1:kR0KjsJS7Jt1YSyWFkseQ756D45kaYNTlDPPaRAvDBU= -cloud.google.com/go/recaptchaenterprise/v2 v2.8.0/go.mod h1:QuE8EdU9dEnesG8/kG3XuJyNsjEqMlMzg3v3scCJ46c= -cloud.google.com/go/recaptchaenterprise/v2 v2.8.1/go.mod h1:JZYZJOeZjgSSTGP4uz7NlQ4/d1w5hGmksVgM0lbEij0= -cloud.google.com/go/recaptchaenterprise/v2 v2.8.2/go.mod h1:kpaDBOpkwD4G0GVMzG1W6Doy1tFFC97XAV3xy+Rd/pw= -cloud.google.com/go/recaptchaenterprise/v2 v2.8.3/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w= -cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= -cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= -cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= -cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE= -cloud.google.com/go/recommendationengine v0.8.2/go.mod h1:QIybYHPK58qir9CV2ix/re/M//Ty10OxjnnhWdaKS1Y= -cloud.google.com/go/recommendationengine v0.8.3/go.mod h1:m3b0RZV02BnODE9FeSvGv1qibFo8g0OnmB/RMwYy4V8= -cloud.google.com/go/recommendationengine v0.8.4/go.mod h1:GEteCf1PATl5v5ZsQ60sTClUE0phbWmo3rQ1Js8louU= -cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= -cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= -cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= -cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= -cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= -cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA= -cloud.google.com/go/recommender v1.11.0/go.mod h1:kPiRQhPyTJ9kyXPCG6u/dlPLbYfFlkwHNRwdzPVAoII= -cloud.google.com/go/recommender v1.11.1/go.mod h1:sGwFFAyI57v2Hc5LbIj+lTwXipGu9NW015rkaEM5B18= -cloud.google.com/go/recommender v1.11.2/go.mod h1:AeoJuzOvFR/emIcXdVFkspVXVTYpliRCmKNYDnyBv6Y= -cloud.google.com/go/recommender v1.11.3/go.mod h1:+FJosKKJSId1MBFeJ/TTyoGQZiEelQQIZMKYYD8ruK4= -cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= -cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= -cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= -cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= -cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= -cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg= -cloud.google.com/go/redis v1.13.2/go.mod h1:0Hg7pCMXS9uz02q+LoEVl5dNHUkIQv+C/3L76fandSA= -cloud.google.com/go/redis v1.13.3/go.mod h1:vbUpCKUAZSYzFcWKmICnYgRAhTFg9r+djWqFxDYXi4U= -cloud.google.com/go/redis v1.14.1/go.mod h1:MbmBxN8bEnQI4doZPC1BzADU4HGocHBk2de3SbgOkqs= -cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= -cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= -cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= -cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= -cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= -cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8= -cloud.google.com/go/resourcemanager v1.9.2/go.mod h1:OujkBg1UZg5lX2yIyMo5Vz9O5hf7XQOSV7WxqxxMtQE= -cloud.google.com/go/resourcemanager v1.9.3/go.mod h1:IqrY+g0ZgLsihcfcmqSe+RKp1hzjXwG904B92AwBz6U= -cloud.google.com/go/resourcemanager v1.9.4/go.mod h1:N1dhP9RFvo3lUfwtfLWVxfUWq8+KUQ+XLlHLH3BoFJ0= -cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= -cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= -cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= -cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw= -cloud.google.com/go/resourcesettings v1.6.2/go.mod h1:mJIEDd9MobzunWMeniaMp6tzg4I2GvD3TTmPkc8vBXk= -cloud.google.com/go/resourcesettings v1.6.3/go.mod h1:pno5D+7oDYkMWZ5BpPsb4SO0ewg3IXcmmrUZaMJrFic= -cloud.google.com/go/resourcesettings v1.6.4/go.mod h1:pYTTkWdv2lmQcjsthbZLNBP4QW140cs7wqA3DuqErVI= -cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= -cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= -cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= -cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= -cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= -cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE= -cloud.google.com/go/retail v1.14.2/go.mod h1:W7rrNRChAEChX336QF7bnMxbsjugcOCPU44i5kbLiL8= -cloud.google.com/go/retail v1.14.3/go.mod h1:Omz2akDHeSlfCq8ArPKiBxlnRpKEBjUH386JYFLUvXo= -cloud.google.com/go/retail v1.14.4/go.mod h1:l/N7cMtY78yRnJqp5JW8emy7MB1nz8E4t2yfOmklYfg= -cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= -cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= -cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= -cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= -cloud.google.com/go/run v1.2.0/go.mod h1:36V1IlDzQ0XxbQjUx6IYbw8H3TJnWvhii963WW3B/bo= -cloud.google.com/go/run v1.3.0/go.mod h1:S/osX/4jIPZGg+ssuqh6GNgg7syixKe3YnprwehzHKU= -cloud.google.com/go/run v1.3.1/go.mod h1:cymddtZOzdwLIAsmS6s+Asl4JoXIDm/K1cpZTxV4Q5s= -cloud.google.com/go/run v1.3.2/go.mod h1:SIhmqArbjdU/D9M6JoHaAqnAMKLFtXaVdNeq04NjnVE= -cloud.google.com/go/run v1.3.3/go.mod h1:WSM5pGyJ7cfYyYbONVQBN4buz42zFqwG67Q3ch07iK4= -cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= -cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= -cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= -cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= -cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= -cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= -cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo= -cloud.google.com/go/scheduler v1.10.2/go.mod h1:O3jX6HRH5eKCA3FutMw375XHZJudNIKVonSCHv7ropY= -cloud.google.com/go/scheduler v1.10.3/go.mod h1:8ANskEM33+sIbpJ+R4xRfw/jzOG+ZFE8WVLy7/yGvbc= -cloud.google.com/go/scheduler v1.10.4/go.mod h1:MTuXcrJC9tqOHhixdbHDFSIuh7xZF2IysiINDuiq6NI= -cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= -cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= -cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= -cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= -cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw= -cloud.google.com/go/secretmanager v1.11.2/go.mod h1:MQm4t3deoSub7+WNwiC4/tRYgDBHJgJPvswqQVB1Vss= -cloud.google.com/go/secretmanager v1.11.3/go.mod h1:0bA2o6FabmShrEy328i67aV+65XoUFFSmVeLBn/51jI= -cloud.google.com/go/secretmanager v1.11.4/go.mod h1:wreJlbS9Zdq21lMzWmJ0XhWW2ZxgPeahsqeV/vZoJ3w= -cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= -cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= -cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= -cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= -cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= -cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= -cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= -cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA= -cloud.google.com/go/security v1.15.2/go.mod h1:2GVE/v1oixIRHDaClVbHuPcZwAqFM28mXuAKCfMgYIg= -cloud.google.com/go/security v1.15.3/go.mod h1:gQ/7Q2JYUZZgOzqKtw9McShH+MjNvtDpL40J1cT+vBs= -cloud.google.com/go/security v1.15.4/go.mod h1:oN7C2uIZKhxCLiAAijKUCuHLZbIt/ghYEo8MqwD/Ty4= -cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= -cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= -cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= -cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= -cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= -cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= -cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ= -cloud.google.com/go/securitycenter v1.23.1/go.mod h1:w2HV3Mv/yKhbXKwOCu2i8bCuLtNP1IMHuiYQn4HJq5s= -cloud.google.com/go/securitycenter v1.24.1/go.mod h1:3h9IdjjHhVMXdQnmqzVnM7b0wMn/1O/U20eWVpMpZjI= -cloud.google.com/go/securitycenter v1.24.2/go.mod h1:l1XejOngggzqwr4Fa2Cn+iWZGf+aBLTXtB/vXjy5vXM= -cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= -cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= -cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= -cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= -cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= -cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= -cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= -cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= -cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= -cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= -cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= -cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= -cloud.google.com/go/servicedirectory v1.11.0/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= -cloud.google.com/go/servicedirectory v1.11.1/go.mod h1:tJywXimEWzNzw9FvtNjsQxxJ3/41jseeILgwU/QLrGI= -cloud.google.com/go/servicedirectory v1.11.2/go.mod h1:KD9hCLhncWRV5jJphwIpugKwM5bn1x0GyVVD4NO8mGg= -cloud.google.com/go/servicedirectory v1.11.3/go.mod h1:LV+cHkomRLr67YoQy3Xq2tUXBGOs5z5bPofdq7qtiAw= -cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= -cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= -cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= -cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= -cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= -cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= -cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= -cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= -cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= -cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= -cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= -cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g= -cloud.google.com/go/shell v1.7.2/go.mod h1:KqRPKwBV0UyLickMn0+BY1qIyE98kKyI216sH/TuHmc= -cloud.google.com/go/shell v1.7.3/go.mod h1:cTTEz/JdaBsQAeTQ3B6HHldZudFoYBOqjteev07FbIc= -cloud.google.com/go/shell v1.7.4/go.mod h1:yLeXB8eKLxw0dpEmXQ/FjriYrBijNsONpwnWsdPqlKM= -cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= -cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= -cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= -cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI= -cloud.google.com/go/spanner v1.49.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM= -cloud.google.com/go/spanner v1.50.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM= -cloud.google.com/go/spanner v1.51.0/go.mod h1:c5KNo5LQ1X5tJwma9rSQZsXNBDNvj4/n8BVc3LNahq0= -cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= -cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= -cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= -cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= -cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= -cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= -cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= -cloud.google.com/go/speech v1.19.0/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= -cloud.google.com/go/speech v1.19.1/go.mod h1:WcuaWz/3hOlzPFOVo9DUsblMIHwxP589y6ZMtaG+iAA= -cloud.google.com/go/speech v1.19.2/go.mod h1:2OYFfj+Ch5LWjsaSINuCZsre/789zlcCI3SY4oAi2oI= -cloud.google.com/go/speech v1.20.1/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= -cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= -cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= -cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= -cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= -cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= -cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= -cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= -cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= -cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA= -cloud.google.com/go/storagetransfer v1.10.1/go.mod h1:rS7Sy0BtPviWYTTJVWCSV4QrbBitgPeuK4/FKa4IdLs= -cloud.google.com/go/storagetransfer v1.10.2/go.mod h1:meIhYQup5rg9juQJdyppnA/WLQCOguxtk1pr3/vBWzA= -cloud.google.com/go/storagetransfer v1.10.3/go.mod h1:Up8LY2p6X68SZ+WToswpQbQHnJpOty/ACcMafuey8gc= -cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= -cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= -cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= -cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= -cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= -cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24= -cloud.google.com/go/talent v1.6.3/go.mod h1:xoDO97Qd4AK43rGjJvyBHMskiEf3KulgYzcH6YWOVoo= -cloud.google.com/go/talent v1.6.4/go.mod h1:QsWvi5eKeh6gG2DlBkpMaFYZYrYUnIpo34f6/V5QykY= -cloud.google.com/go/talent v1.6.5/go.mod h1:Mf5cma696HmE+P2BWJ/ZwYqeJXEeU0UqjHFXVLadEDI= -cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= -cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= -cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= -cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0hCZBwXYqucgSk= -cloud.google.com/go/texttospeech v1.7.2/go.mod h1:VYPT6aTOEl3herQjFHYErTlSZJ4vB00Q2ZTmuVgluD4= -cloud.google.com/go/texttospeech v1.7.3/go.mod h1:Av/zpkcgWfXlDLRYob17lqMstGZ3GqlvJXqKMp2u8so= -cloud.google.com/go/texttospeech v1.7.4/go.mod h1:vgv0002WvR4liGuSd5BJbWy4nDn5Ozco0uJymY5+U74= -cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= -cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= -cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= -cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E= -cloud.google.com/go/tpu v1.6.2/go.mod h1:NXh3NDwt71TsPZdtGWgAG5ThDfGd32X1mJ2cMaRlVgU= -cloud.google.com/go/tpu v1.6.3/go.mod h1:lxiueqfVMlSToZY1151IaZqp89ELPSrk+3HIQ5HRkbY= -cloud.google.com/go/tpu v1.6.4/go.mod h1:NAm9q3Rq2wIlGnOhpYICNI7+bpBebMJbh0yyp3aNw1Y= -cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= -cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= -cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= -cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= -cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk= -cloud.google.com/go/trace v1.10.2/go.mod h1:NPXemMi6MToRFcSxRl2uDnu/qAlAQ3oULUphcHGh1vA= -cloud.google.com/go/trace v1.10.3/go.mod h1:Ke1bgfc73RV3wUFml+uQp7EsDw4dGaETLxB7Iq/r4CY= -cloud.google.com/go/trace v1.10.4/go.mod h1:Nso99EDIK8Mj5/zmB+iGr9dosS/bzWCJ8wGmE6TXNWY= -cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= -cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= -cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= -cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= -cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= -cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= -cloud.google.com/go/translate v1.8.2/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= -cloud.google.com/go/translate v1.9.0/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= -cloud.google.com/go/translate v1.9.1/go.mod h1:TWIgDZknq2+JD4iRcojgeDtqGEp154HN/uL6hMvylS8= -cloud.google.com/go/translate v1.9.2/go.mod h1:E3Tc6rUTsQkVrXW6avbUhKJSr7ZE3j7zNmqzXKHqRrY= -cloud.google.com/go/translate v1.9.3/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0= -cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= -cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= -cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= -cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= -cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= -cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= -cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= -cloud.google.com/go/video v1.19.0/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= -cloud.google.com/go/video v1.20.0/go.mod h1:U3G3FTnsvAGqglq9LxgqzOiBc/Nt8zis8S+850N2DUM= -cloud.google.com/go/video v1.20.1/go.mod h1:3gJS+iDprnj8SY6pe0SwLeC5BUW80NjhwX7INWEuWGU= -cloud.google.com/go/video v1.20.2/go.mod h1:lrixr5JeKNThsgfM9gqtwb6Okuqzfo4VrY2xynaViTA= -cloud.google.com/go/video v1.20.3/go.mod h1:TnH/mNZKVHeNtpamsSPygSR0iHtvrR/cW1/GDjN5+GU= -cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= -cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= -cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= -cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= -cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= -cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo= -cloud.google.com/go/videointelligence v1.11.2/go.mod h1:ocfIGYtIVmIcWk1DsSGOoDiXca4vaZQII1C85qtoplc= -cloud.google.com/go/videointelligence v1.11.3/go.mod h1:tf0NUaGTjU1iS2KEkGWvO5hRHeCkFK3nPo0/cOZhZAo= -cloud.google.com/go/videointelligence v1.11.4/go.mod h1:kPBMAYsTPFiQxMLmmjpcZUMklJp3nC9+ipJJtprccD8= -cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= -cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= -cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= -cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= -cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= -cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= -cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= -cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU= -cloud.google.com/go/vision/v2 v2.7.3/go.mod h1:V0IcLCY7W+hpMKXK1JYE0LV5llEqVmj+UJChjvA1WsM= -cloud.google.com/go/vision/v2 v2.7.4/go.mod h1:ynDKnsDN/0RtqkKxQZ2iatv3Dm9O+HfRb5djl7l4Vvw= -cloud.google.com/go/vision/v2 v2.7.5/go.mod h1:GcviprJLFfK9OLf0z8Gm6lQb6ZFUulvpZws+mm6yPLM= -cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= -cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= -cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= -cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= -cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro= -cloud.google.com/go/vmmigration v1.7.2/go.mod h1:iA2hVj22sm2LLYXGPT1pB63mXHhrH1m/ruux9TwWLd8= -cloud.google.com/go/vmmigration v1.7.3/go.mod h1:ZCQC7cENwmSWlwyTrZcWivchn78YnFniEQYRWQ65tBo= -cloud.google.com/go/vmmigration v1.7.4/go.mod h1:yBXCmiLaB99hEl/G9ZooNx2GyzgsjKnw5fWcINRgD70= -cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= -cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= -cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= -cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= -cloud.google.com/go/vmwareengine v1.0.0/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= -cloud.google.com/go/vmwareengine v1.0.1/go.mod h1:aT3Xsm5sNx0QShk1Jc1B8OddrxAScYLwzVoaiXfdzzk= -cloud.google.com/go/vmwareengine v1.0.2/go.mod h1:xMSNjIk8/itYrz1JA8nV3Ajg4L4n3N+ugP8JKzk3OaA= -cloud.google.com/go/vmwareengine v1.0.3/go.mod h1:QSpdZ1stlbfKtyt6Iu19M6XRxjmXO+vb5a/R6Fvy2y4= -cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= -cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= -cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= -cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs= -cloud.google.com/go/vpcaccess v1.7.2/go.mod h1:mmg/MnRHv+3e8FJUjeSibVFvQF1cCy2MsFaFqxeY1HU= -cloud.google.com/go/vpcaccess v1.7.3/go.mod h1:YX4skyfW3NC8vI3Fk+EegJnlYFatA+dXK4o236EUCUc= -cloud.google.com/go/vpcaccess v1.7.4/go.mod h1:lA0KTvhtEOb/VOdnH/gwPuOzGgM+CWsmGu6bb4IoMKk= -cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= -cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= -cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= -cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= -cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= -cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc= -cloud.google.com/go/webrisk v1.9.2/go.mod h1:pY9kfDgAqxUpDBOrG4w8deLfhvJmejKB0qd/5uQIPBc= -cloud.google.com/go/webrisk v1.9.3/go.mod h1:RUYXe9X/wBDXhVilss7EDLW9ZNa06aowPuinUOPCXH8= -cloud.google.com/go/webrisk v1.9.4/go.mod h1:w7m4Ib4C+OseSr2GL66m0zMBywdrVNTDKsdEsfMl7X0= -cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= -cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= -cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= -cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg= -cloud.google.com/go/websecurityscanner v1.6.2/go.mod h1:7YgjuU5tun7Eg2kpKgGnDuEOXWIrh8x8lWrJT4zfmas= -cloud.google.com/go/websecurityscanner v1.6.3/go.mod h1:x9XANObUFR+83Cya3g/B9M/yoHVqzxPnFtgF8yYGAXw= -cloud.google.com/go/websecurityscanner v1.6.4/go.mod h1:mUiyMQ+dGpPPRkHgknIZeCzSHJ45+fY4F52nZFDHm2o= -cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= -cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= -cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= -cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= -cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g= -cloud.google.com/go/workflows v1.12.0/go.mod h1:PYhSk2b6DhZ508tj8HXKaBh+OFe+xdl0dHF/tJdzPQM= -cloud.google.com/go/workflows v1.12.1/go.mod h1:5A95OhD/edtOhQd/O741NSfIMezNTbCwLM1P1tBRGHM= -cloud.google.com/go/workflows v1.12.2/go.mod h1:+OmBIgNqYJPVggnMo9nqmizW0qEXHhmnAzK/CnBqsHc= -cloud.google.com/go/workflows v1.12.3/go.mod h1:fmOUeeqEwPzIU81foMjTRQIdwQHADi/vEr1cx9R1m5g= -connectrpc.com/connect v1.16.2 h1:ybd6y+ls7GOlb7Bh5C8+ghA6SvCBajHwxssO2CGFjqE= -connectrpc.com/connect v1.16.2/go.mod h1:n2kgwskMHXC+lVqb18wngEpF95ldBHXjZYJussz5FRc= -connectrpc.com/otelconnect v0.7.0 h1:ZH55ZZtcJOTKWWLy3qmL4Pam4RzRWBJFOqTPyAqCXkY= -connectrpc.com/otelconnect v0.7.0/go.mod h1:Bt2ivBymHZHqxvo4HkJ0EwHuUzQN6k2l0oH+mp/8nwc= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= -git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= -github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= -github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= -github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= -github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= -github.com/apache/arrow/go/v12 v12.0.0/go.mod h1:d+tV/eHZZ7Dz7RPrFKtPK02tpr+c9/PEd/zm8mDS9Vg= -github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1 h1:dU3vvR6d5iVwHBVQVS14ci+i29+4lLT8HjYktYSTPF8= +buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1/go.mod h1:jKw7gioqYsWaHUKr5Ja6MiadsXcrGJxQ86gucJ0luUA= +buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1 h1:18ZObecoJfRbNQDeuW0PoBR829Mw8FrPrmWIbbaA5hs= +buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1/go.mod h1:WA65xyBj+VxPfJ3a+EqdZtWGeNdwqiaQO1sriHaNL1Y= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1 h1:z4CfAMlT5uylpjQ9XXdLTSzBRl+clmUN7rt44VmJhLo= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1/go.mod h1:y7yb/W0yMTBxf0mX+07jFy6Lxu/0L65A8p06MNrGyeo= +connectrpc.com/connect v1.17.0 h1:W0ZqMhtVzn9Zhn2yATuUokDLO5N+gIuBWMOnsQrfmZk= +connectrpc.com/connect v1.17.0/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8= +connectrpc.com/otelconnect v0.7.1 h1:scO5pOb0i4yUE66CnNrHeK1x51yq0bE0ehPg6WvzXJY= +connectrpc.com/otelconnect v0.7.1/go.mod h1:dh3bFgHBTb2bkqGCeVVOtHJreSns7uu9wwL2Tbz17ms= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df h1:GSoSVRLoBaFpOOds6QyY1L8AX7uoY+Ln3BHc22W40X0= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df/go.mod h1:hiVxq5OP2bUGBRNS3Z/bt/reCLFNbdcST6gISi1fiOM= -github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230428030218-4003588d1b74/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/diegoholiveira/jsonlogic/v3 v3.5.3 h1:CPyZQ3fOgiIDZ1yWzPGUpyht5tYTOnRoN913c0mkXZw= github.com/diegoholiveira/jsonlogic/v3 v3.5.3/go.mod h1:3nnfWovrlZq2rTpucrJ2KMIS8TMf6IoFneofmeqk/qk= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= -github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= -github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= -github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= -github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= -github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= -github.com/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= -github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= -github.com/envoyproxy/protoc-gen-validate v1.0.1/go.mod h1:0vj8bNkYbSTNS2PIyH87KZaeN4x9zpL9Qt8fQC7d+vs= -github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= -github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= -github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= -github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= -github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= -github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -1251,256 +29,74 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= -github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= -github.com/go-task/slim-sprig v2.20.0+incompatible h1:4Xh3bDzO29j4TWNOI+24ubc0vbVFMg2PMnXKxK54/CA= -github.com/go-task/slim-sprig v2.20.0+incompatible/go.mod h1:N/mhXZITr/EQAOErEHciKvO1bFei2Lld2Ym6h96pdy0= -github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= -github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-pkcs11 v0.2.0/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= -github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= -github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= -github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= -github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.2.4/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.2.5/go.mod h1:RxW0N9901Cko1VOCW3SXCpWP+mlIEkk2tP7jnHy9a3w= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= -github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= -github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= -github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= -github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= -github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= -github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= -github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= -github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= -github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= -github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= -github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= -github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= -github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= -github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8= -github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= -github.com/onsi/gomega v1.32.0 h1:JRYU78fJ1LPxlckP6Txi/EYqJvjtMrDC04/MM5XRHPk= -github.com/onsi/gomega v1.32.0/go.mod h1:a4x4gW6Pz2yK1MAmvluYme5lvYTn61afQ2ETw/8n4Lg= -github.com/open-feature/flagd-schemas v0.2.9-0.20240408192555-ea4f119d2bd7 h1:oP+BH8RiNEmSWTffKEXz2ciwen7wbvyX0fESx0aoJ80= -github.com/open-feature/flagd-schemas v0.2.9-0.20240408192555-ea4f119d2bd7/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= -github.com/open-feature/flagd/core v0.9.2 h1:PiT+EelwcXS6CRoHW4vGuIc19EgpRRNx+7zEeTKOEds= -github.com/open-feature/flagd/core v0.9.2/go.mod h1:o0qe6BmW+u0Qf/dlP3cuG2RdtYmjk//1M8GmFQrS2Lg= -github.com/open-feature/go-sdk v1.12.0 h1:V0MAG3lC9o7Pmq0gxlqtKpoasDTm3to9vuvZKyUhhPk= -github.com/open-feature/go-sdk v1.12.0/go.mod h1:UDNuwVrwY5FRHIluVRYzvxuS3nBkhjE6o4tlwFuHxiI= -github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.2 h1:yEtv4aMY5KTvp/HNsbAZXZdJoZnQyPB+ahd+uW7vrBA= -github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.2/go.mod h1:fH4U4H5xwSQd8VkIiMsFsZ6U8isfRyg2QW8E1O5tv6E= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.1 h1:srxsMTsEW5FAS025ga1YzzFqOspuu5Bg+tkDgzxtfZk= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.1/go.mod h1:3lSJDWZsnPRkitNnJviKXbgKhTIoyae25NUVQnGc3/Y= -github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= -github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= -github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= -github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= +github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= +github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 h1:5zbNHqcZAc9jlhSrC0onuVL2RPpvYcDaNvW2wOZBfUY= +github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= +github.com/open-feature/flagd/core v0.10.4 h1:3MVpDG7KigvKG9HzrK2yYKwAY2VeUbaghPWmh1MNmKg= +github.com/open-feature/flagd/core v0.10.4/go.mod h1:adkYaazGgCUg6z023rKBzSN8cN3Yamuh8h+3qxK7Yk8= +github.com/open-feature/go-sdk v1.13.1 h1:RJbS70eyi7Jd3Zm5bFnaahNKNDXn+RAVnctpGu+uPis= +github.com/open-feature/go-sdk v1.13.1/go.mod h1:O8r4mhgeRIsjJ0ZBXlnE0BtbT/79W44gQceR7K8KYgo= +github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= +github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 h1:Kzt0WkUtrLeFgJn2wkGhBVJZTOBVFGwXGuGs27uM9KQ= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3/go.mod h1:lZnG8SjETq2kyHvOInmdqTuofg53GNbY6YupgwP4LTA= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= -github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -1508,911 +104,114 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 h1:vS1Ao/R55RNV4O7TA2Qopok8yN+X0LIP6RVWLFkprck= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0/go.mod h1:BMsdeOxN04K0L5FNUBfjFdvwWGNe/rkmSwH4Aelu/X0= -go.opentelemetry.io/contrib/instrumentation/runtime v0.52.0 h1:UaQVCH34fQsyDjlgS0L070Kjs9uCrLKoQfzn2Nl7XTY= -go.opentelemetry.io/contrib/instrumentation/runtime v0.52.0/go.mod h1:Ks4aHdMgu1vAfEY0cIBHcGx2l1S0+PwFm2BE/HRzqSk= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0 h1:bFgvUr3/O4PHj3VQcFEuYKvRZJX1SJDQ+11JXuSB3/w= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0/go.mod h1:xJntEd2KL6Qdg5lwp97HMLQDVeAhrYxmzFseAMDPQ8I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 h1:R9DE4kQ4k+YtfLI2ULwX82VtNQ2J8yZmA7ZIF/D+7Mc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0/go.mod h1:OQFyQVrDlbe+R7xrEyDr/2Wr67Ol0hRUgsfA+V5A95s= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= -go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= +go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 h1:kJB5wMVorwre8QzEodzTAbzm9FOOah0zvG+V4abNlEE= +go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0/go.mod h1:Nup4TgnOyEJWmVq9sf/ASH3ZJiAXwWHd5xZCHG7Sg9M= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 h1:FZ6ei8GFW7kyPYdxJaV2rgI6M+4tvZzhYsQ2wgyVC08= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0/go.mod h1:MdEu/mC6j3D+tTEfvI15b5Ci2Fn7NneJ71YMoiS3tpI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= +go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= +go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= -go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= +go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= +go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= -golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= +golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= -golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= -golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= -golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= -golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= -golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= -golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= -golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= -golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= -golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= -golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= -golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= -golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= -golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= -golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= -golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= -gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= -gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= -google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= -google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= -google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= -google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= -google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= -google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= -google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= -google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= -google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= -google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= -google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= -google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= -google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= -google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= -google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= -google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= -google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= -google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= -google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= -google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= -google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= -google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= -google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= -google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= -google.golang.org/api v0.118.0/go.mod h1:76TtD3vkgmZ66zZzp72bUUklpmQmKlhh6sYtIjYK+5E= -google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= -google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4= -google.golang.org/api v0.125.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= -google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= -google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= -google.golang.org/api v0.139.0/go.mod h1:CVagp6Eekz9CjGZ718Z+sloknzkDJE7Vc1Ckj9+viBk= -google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= -google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= -google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= -google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= -google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= -google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= -google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= -google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= -google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= -google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= -google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= -google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= -google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= -google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= -google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= -google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= -google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= -google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= -google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= -google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= -google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= -google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= -google.golang.org/genproto v0.0.0-20230629202037-9506855d4529/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= -google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= -google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0= -google.golang.org/genproto v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:0ggbjUrZYpy1q+ANUS30SEoGZ53cdfwtbuG7Ptgy108= -google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8= -google.golang.org/genproto v0.0.0-20230821184602-ccc8af3d0e93/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= -google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= -google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= -google.golang.org/genproto v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:CCviP9RmpZ1mxVr8MUjCnSiY09IbAXZxhLE6EhHIdPU= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= -google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI= -google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405/go.mod h1:3WDQMjmJk36UQhjQ89emUzb1mdaHcPeeAh4SCBKznB4= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:mPBs5jNgx2GuQGvFwUvVKqtn6HsUw9nP64BedgvqEsQ= -google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= -google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= -google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q= -google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= -google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= -google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= -google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870= -google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405/go.mod h1:oT32Z4o8Zv2xPQTg0pbVaPr0MPOH6f14RgXt7zfIpwg= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= -google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= -google.golang.org/genproto/googleapis/bytestream v0.0.0-20230807174057-1744710a1577/go.mod h1:NjCQG/D8JandXxM57PZbAJL1DCNL6EypA0vPPwfsc7c= -google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230629202037-9506855d4529/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:8mL13HKkDa+IuJ8yruA3ci0q+0vsUz4m//+ottjwS5o= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5/go.mod h1:zBEcrKX2ZOcEkHWxBPAIvYUWOKKMIhYcmNiUIu2ji3I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230920183334-c177e329c48b/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= -google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= -google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= -google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= -google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= -google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= -google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= -google.golang.org/grpc v1.61.2/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= -google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 h1:9SxA29VM43MF5Z9dQu694wmY5t8E/Gxr7s+RSxiIDmc= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0/go.mod h1:yZOK5zhQMiALmuweVdIVoQPa6eIJyXn2B9g5dJDhqX4= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg= +google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:wp2WsuBYj6j8wUdo3ToZsdxxixbvQNAHqVJrTgi5E5M= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -k8s.io/api v0.30.1 h1:kCm/6mADMdbAxmIh0LBjS54nQBE+U4KmbCfIkF5CpJY= -k8s.io/api v0.30.1/go.mod h1:ddbN2C0+0DIiPntan/bye3SW3PdwLa11/0yqwvuRrJM= -k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U= -k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= -k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak= -k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v3 v3.37.0/go.mod h1:vtL+3mdHx/wcj3iEGz84rQa8vEqR6XM84v5Lcvfph20= -modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0= -modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= -modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= -modernc.org/ccgo/v3 v3.0.0-20220904174949-82d86e1b6d56/go.mod h1:YSXjPL62P2AMSxBphRHPn7IkzhVHqkvOnRKAKh+W6ZI= -modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= -modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= -modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= -modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= -modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8/go.mod h1:fUB3Vn0nVPReA+7IG7yZDfjv1TMWjhQP8gCxrFAtL5g= -modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= -modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= -modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= -modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= -modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= -modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= -modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= -modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= -modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= -modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= -modernc.org/libc v1.17.4/go.mod h1:WNg2ZH56rDEwdropAJeZPQkXmDwh+JCA1s/htl6r2fA= -modernc.org/libc v1.18.0/go.mod h1:vj6zehR5bfc98ipowQOM2nIDUZnVew/wNC/2tOGS+q0= -modernc.org/libc v1.20.3/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0= -modernc.org/libc v1.21.4/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI= -modernc.org/libc v1.22.2/go.mod h1:uvQavJ1pZ0hIoC/jfqNoMLURIMhKzINIWypNM17puug= -modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= -modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= -modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/memory v1.3.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/memory v1.4.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= -modernc.org/sqlite v1.18.2/go.mod h1:kvrTLEWgxUcHa2GfHBQtanR1H9ht3hTJNtKpzH9k1u0= -modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= -modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= -modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= -modernc.org/tcl v1.13.2/go.mod h1:7CLiGIPo1M8Rv1Mitpv5akc2+8fxUd2y2UzC/MfMzy0= -modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/controller-runtime v0.18.3 h1:B5Wmmo8WMWK7izei+2LlXLVDGzMwAHBNLX68lwtlSR4= -sigs.k8s.io/controller-runtime v0.18.3/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg= +k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= +k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= +k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= +k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.19.0 h1:nWVM7aq+Il2ABxwiCizrVDSlmDcshi9llbaFbC0ji/Q= +sigs.k8s.io/controller-runtime v0.19.0/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= From 044de6daa4b8fc1f262940d99964d61deac7216c Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Mon, 2 Dec 2024 12:50:45 +0100 Subject: [PATCH 017/178] Update k8s manifest (#1804) --- kubernetes/opentelemetry-demo.yaml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/kubernetes/opentelemetry-demo.yaml b/kubernetes/opentelemetry-demo.yaml index a5897ad10f..ce6d73a175 100644 --- a/kubernetes/opentelemetry-demo.yaml +++ b/kubernetes/opentelemetry-demo.yaml @@ -9975,7 +9975,7 @@ spec: value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 resources: limits: - memory: 50Mi + memory: 75Mi volumeMounts: - name: config-rw mountPath: /etc/flagd @@ -10004,7 +10004,7 @@ spec: value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 resources: limits: - memory: 150Mi + memory: 75Mi volumeMounts: - mountPath: /app/data name: config-rw @@ -10269,8 +10269,6 @@ spec: value: "4317" - name: OTEL_COLLECTOR_PORT_HTTP value: "4318" - - name: OTEL_SERVICE_NAME - value: frontend-proxy - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 resources: @@ -10487,7 +10485,7 @@ spec: value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 resources: limits: - memory: 1Gi + memory: 1500Mi volumeMounts: volumes: --- From 65e6441eeaf5aaad9bfe166c5d6447b5704a0025 Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Tue, 3 Dec 2024 23:01:24 +0100 Subject: [PATCH 018/178] [accountingservice] fix-build-targetarch (#1805) * accountingservice-fix-build-targetarch * Update src/accountingservice/Dockerfile Co-authored-by: Matt Martyn --------- Co-authored-by: Matt Martyn --- src/accountingservice/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/accountingservice/Dockerfile b/src/accountingservice/Dockerfile index 8524db57cd..9c6bd80ffe 100644 --- a/src/accountingservice/Dockerfile +++ b/src/accountingservice/Dockerfile @@ -15,8 +15,9 @@ RUN dotnet build "./AccountingService.csproj" -r linux-musl-$TARGETARCH -c $BUIL # ----------------------------------------------------------------------------- FROM builder AS publish +ARG TARGETARCH ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./AccountingService.csproj" --use-current-runtime -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false +RUN dotnet publish "./AccountingService.csproj" -r linux-musl-$TARGETARCH --use-current-runtime -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false # ----------------------------------------------------------------------------- From bd13ec932af82585426bc5f8f2e9da0c58ef33aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 08:25:13 +0100 Subject: [PATCH 019/178] build(deps): bump the go-production-dependencies group across 2 directories with 6 updates (#1807) * build(deps): bump the go-production-dependencies group across 2 directories with 6 updates Bumps the go-production-dependencies group with 5 updates in the /src/checkoutservice directory: | Package | From | To | | --- | --- | --- | | [go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.53.0` | `0.57.0` | | [go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.53.0` | `0.57.0` | | [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go) | `1.31.0` | `1.32.0` | | [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go) | `1.31.0` | `1.32.0` | | google.golang.org/protobuf | `1.35.1` | `1.35.2` | Bumps the go-production-dependencies group with 4 updates in the /src/productcatalogservice directory: [go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc](https://github.com/open-telemetry/opentelemetry-go-contrib), [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go), [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go) and google.golang.org/protobuf. Updates `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` from 0.53.0 to 0.57.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.53.0...zpages/v0.57.0) Updates `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` from 0.53.0 to 0.57.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.53.0...zpages/v0.57.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.31.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.31.0...v1.32.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.31.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.31.0...v1.32.0) Updates `google.golang.org/grpc` from 1.67.1 to 1.68.0 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.67.1...v1.68.0) Updates `google.golang.org/protobuf` from 1.35.1 to 1.35.2 Updates `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` from 0.53.0 to 0.57.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.53.0...zpages/v0.57.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.31.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.31.0...v1.32.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.31.0 to 1.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.31.0...v1.32.0) Updates `google.golang.org/grpc` from 1.67.1 to 1.68.0 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.67.1...v1.68.0) Updates `google.golang.org/protobuf` from 1.35.1 to 1.35.2 --- updated-dependencies: - dependency-name: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] * Add updated protos * go mod tidy --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa Co-authored-by: Juliano Costa --- .../genproto/oteldemo/demo.pb.go | 2 +- src/checkoutservice/go.mod | 26 +++++----- src/checkoutservice/go.sum | 50 ++++++++++--------- .../genproto/oteldemo/demo.pb.go | 2 +- src/productcatalogservice/go.mod | 24 +++++---- src/productcatalogservice/go.sum | 46 +++++++++-------- 6 files changed, 79 insertions(+), 71 deletions(-) diff --git a/src/checkoutservice/genproto/oteldemo/demo.pb.go b/src/checkoutservice/genproto/oteldemo/demo.pb.go index cb5b7c2f38..8cb45c9be8 100644 --- a/src/checkoutservice/genproto/oteldemo/demo.pb.go +++ b/src/checkoutservice/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.24.4 // source: demo.proto diff --git a/src/checkoutservice/go.mod b/src/checkoutservice/go.mod index 9c3c9fdb9c..20b412ccb6 100644 --- a/src/checkoutservice/go.mod +++ b/src/checkoutservice/go.mod @@ -1,6 +1,8 @@ module github.com/open-telemetry/opentelemetry-demo/src/checkoutservice -go 1.22.0 +go 1.22.7 + +toolchain go1.22.9 require ( github.com/IBM/sarama v1.43.3 @@ -9,18 +11,18 @@ require ( github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0 go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 go.opentelemetry.io/otel v1.32.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0 go.opentelemetry.io/otel/sdk v1.32.0 go.opentelemetry.io/otel/sdk/metric v1.32.0 go.opentelemetry.io/otel/trace v1.32.0 - google.golang.org/grpc v1.67.1 + google.golang.org/grpc v1.68.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.35.1 + google.golang.org/protobuf v1.35.2 ) require ( @@ -45,7 +47,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect @@ -70,7 +72,7 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -80,9 +82,9 @@ require ( golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/sys v0.27.0 // indirect - golang.org/x/text v0.19.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + golang.org/x/text v0.20.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/src/checkoutservice/go.sum b/src/checkoutservice/go.sum index 9deed57c58..78777f9c9d 100644 --- a/src/checkoutservice/go.sum +++ b/src/checkoutservice/go.sum @@ -47,6 +47,8 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -61,8 +63,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -159,20 +161,20 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 h1:qtFISDHKolvIxzSs0gIaiPUPR0Cucb0F2coHC7ZLdps= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0/go.mod h1:Y+Pop1Q6hCOnETWTW4NROK/q1hv50hM7yDaUTjG8lp8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0 h1:DheMAlT6POBP+gh8RUH19EOTnQIor5QE0uSRPtzCpSw= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0/go.mod h1:wZcGmeVO9nzP67aYSLDqXNWK87EZWhi7JWj1v7ZXf94= go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 h1:kJB5wMVorwre8QzEodzTAbzm9FOOah0zvG+V4abNlEE= go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0/go.mod h1:Nup4TgnOyEJWmVq9sf/ASH3ZJiAXwWHd5xZCHG7Sg9M= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 h1:FZ6ei8GFW7kyPYdxJaV2rgI6M+4tvZzhYsQ2wgyVC08= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0/go.mod h1:MdEu/mC6j3D+tTEfvI15b5Ci2Fn7NneJ71YMoiS3tpI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 h1:IJFEoHiytixx8cMiVAO+GmHR6Frwu+u5Ur8njpFO6Ac= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0/go.mod h1:3rHrKNtLIoS0oZwkY2vxi+oJcwFRWdtUyRII+so45p8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0 h1:9kV11HXBHZAvuPUZxmMWrH8hZn/6UnHX4K0mu36vNsU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0/go.mod h1:JyA0FHXe22E1NeNiHmVp7kFHglnexDQ7uRWDiiJ1hKQ= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= @@ -220,8 +222,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -240,8 +242,8 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= -golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -253,16 +255,16 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:wp2WsuBYj6j8wUdo3ToZsdxxixbvQNAHqVJrTgi5E5M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= -google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= -google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= +google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/src/productcatalogservice/genproto/oteldemo/demo.pb.go b/src/productcatalogservice/genproto/oteldemo/demo.pb.go index cb5b7c2f38..8cb45c9be8 100644 --- a/src/productcatalogservice/genproto/oteldemo/demo.pb.go +++ b/src/productcatalogservice/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.24.4 // source: demo.proto diff --git a/src/productcatalogservice/go.mod b/src/productcatalogservice/go.mod index d5dd29ab82..57881a5dde 100644 --- a/src/productcatalogservice/go.mod +++ b/src/productcatalogservice/go.mod @@ -1,23 +1,25 @@ module github.com/opentelemetry/opentelemetry-demo/src/productcatalogservice -go 1.22.0 +go 1.22.7 + +toolchain go1.22.9 require ( github.com/open-feature/go-sdk v1.13.1 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 go.opentelemetry.io/otel v1.32.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0 go.opentelemetry.io/otel/sdk v1.32.0 go.opentelemetry.io/otel/sdk/metric v1.32.0 go.opentelemetry.io/otel/trace v1.32.0 - google.golang.org/grpc v1.67.1 + google.golang.org/grpc v1.68.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.35.1 + google.golang.org/protobuf v1.35.2 ) require ( @@ -37,7 +39,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect @@ -51,7 +53,7 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -60,9 +62,9 @@ require ( golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/sys v0.27.0 // indirect - golang.org/x/text v0.19.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + golang.org/x/text v0.20.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/src/productcatalogservice/go.sum b/src/productcatalogservice/go.sum index 301c2b892f..cefa3de0a3 100644 --- a/src/productcatalogservice/go.sum +++ b/src/productcatalogservice/go.sum @@ -35,6 +35,8 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -45,8 +47,8 @@ github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2 github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -110,18 +112,18 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 h1:qtFISDHKolvIxzSs0gIaiPUPR0Cucb0F2coHC7ZLdps= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0/go.mod h1:Y+Pop1Q6hCOnETWTW4NROK/q1hv50hM7yDaUTjG8lp8= go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 h1:kJB5wMVorwre8QzEodzTAbzm9FOOah0zvG+V4abNlEE= go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0/go.mod h1:Nup4TgnOyEJWmVq9sf/ASH3ZJiAXwWHd5xZCHG7Sg9M= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 h1:FZ6ei8GFW7kyPYdxJaV2rgI6M+4tvZzhYsQ2wgyVC08= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0/go.mod h1:MdEu/mC6j3D+tTEfvI15b5Ci2Fn7NneJ71YMoiS3tpI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 h1:IJFEoHiytixx8cMiVAO+GmHR6Frwu+u5Ur8njpFO6Ac= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0/go.mod h1:3rHrKNtLIoS0oZwkY2vxi+oJcwFRWdtUyRII+so45p8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0 h1:9kV11HXBHZAvuPUZxmMWrH8hZn/6UnHX4K0mu36vNsU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0/go.mod h1:JyA0FHXe22E1NeNiHmVp7kFHglnexDQ7uRWDiiJ1hKQ= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= @@ -158,8 +160,8 @@ golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -169,8 +171,8 @@ golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= -golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -181,16 +183,16 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:wp2WsuBYj6j8wUdo3ToZsdxxixbvQNAHqVJrTgi5E5M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= -google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= -google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= +google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 3823951bd8881a9dc649c7205e0c6bbd29f0eb09 Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Wed, 4 Dec 2024 14:08:19 +0100 Subject: [PATCH 020/178] Revert "[accountingservice] fix-build-targetarch (#1805)" (#1811) This reverts commit 65e6441eeaf5aaad9bfe166c5d6447b5704a0025. --- src/accountingservice/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/accountingservice/Dockerfile b/src/accountingservice/Dockerfile index 9c6bd80ffe..8524db57cd 100644 --- a/src/accountingservice/Dockerfile +++ b/src/accountingservice/Dockerfile @@ -15,9 +15,8 @@ RUN dotnet build "./AccountingService.csproj" -r linux-musl-$TARGETARCH -c $BUIL # ----------------------------------------------------------------------------- FROM builder AS publish -ARG TARGETARCH ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./AccountingService.csproj" -r linux-musl-$TARGETARCH --use-current-runtime -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false +RUN dotnet publish "./AccountingService.csproj" --use-current-runtime -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false # ----------------------------------------------------------------------------- From f9252820b58d9ee3d7105051d7ecf73c8f6f22a6 Mon Sep 17 00:00:00 2001 From: Yanwei Li Date: Wed, 4 Dec 2024 09:14:54 -0800 Subject: [PATCH 021/178] Add nodejs auto-instrumentation for runtime metrics in paymentservice (#1797) * add nodejs auto-intrumentation in paymentservice * update CHANGELOG.md * update description in changelog --- CHANGELOG.md | 2 + src/paymentservice/opentelemetry.js | 4 ++ src/paymentservice/package-lock.json | 62 ++++++++++++++++++++++++++-- src/paymentservice/package.json | 1 + 4 files changed, 66 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42ae1ee1e8..929cb3e45f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ the release. ([#1785](https://github.com/open-telemetry/opentelemetry-demo/pull/1785)) * [chore] Generate protobuf code for Go and Python services ([#1794](https://github.com/open-telemetry/opentelemetry-demo/pull/1784)) +* [paymentservice] Add nodejs instrumentation for runtime metrics + ([#1797](https://github.com/open-telemetry/opentelemetry-demo/pull/1797)) ## 1.12.0 diff --git a/src/paymentservice/opentelemetry.js b/src/paymentservice/opentelemetry.js index 0ba569cd30..856910c416 100644 --- a/src/paymentservice/opentelemetry.js +++ b/src/paymentservice/opentelemetry.js @@ -11,6 +11,7 @@ const {awsEc2Detector, awsEksDetector} = require('@opentelemetry/resource-detect const {containerDetector} = require('@opentelemetry/resource-detector-container') const {gcpDetector} = require('@opentelemetry/resource-detector-gcp') const {envDetector, hostDetector, osDetector, processDetector} = require('@opentelemetry/resources') +const {RuntimeNodeInstrumentation} = require('@opentelemetry/instrumentation-runtime-node') const sdk = new opentelemetry.NodeSDK({ traceExporter: new OTLPTraceExporter(), @@ -20,6 +21,9 @@ const sdk = new opentelemetry.NodeSDK({ '@opentelemetry/instrumentation-fs': { requireParentSpan: true, }, + }), + new RuntimeNodeInstrumentation({ + monitoringPrecision: 5000, }) ], metricReader: new PeriodicExportingMetricReader({ diff --git a/src/paymentservice/package-lock.json b/src/paymentservice/package-lock.json index d2719f2bb3..fad9651dbb 100644 --- a/src/paymentservice/package-lock.json +++ b/src/paymentservice/package-lock.json @@ -18,6 +18,7 @@ "@opentelemetry/core": "1.24.1", "@opentelemetry/exporter-metrics-otlp-grpc": "0.51.1", "@opentelemetry/exporter-trace-otlp-grpc": "0.51.1", + "@opentelemetry/instrumentation-runtime-node": "^0.10.0", "@opentelemetry/resource-detector-alibaba-cloud": "0.28.9", "@opentelemetry/resource-detector-aws": "1.5.0", "@opentelemetry/resource-detector-container": "0.3.9", @@ -909,6 +910,61 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/instrumentation-runtime-node": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-runtime-node/-/instrumentation-runtime-node-0.10.0.tgz", + "integrity": "sha512-hvwbi9iSqiclqSkRNFLW/3/v5drUPfD8V9zAmXZWZA68X0yygb2nPQlGce9Aba7p3l+Z4wGL8WcPtHDN2XzpoQ==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.55.0" + }, + "engines": { + "node": ">=17.4.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-runtime-node/node_modules/@opentelemetry/api-logs": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.55.0.tgz", + "integrity": "sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-runtime-node/node_modules/@opentelemetry/instrumentation": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.55.0.tgz", + "integrity": "sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==", + "dependencies": { + "@opentelemetry/api-logs": "0.55.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-runtime-node/node_modules/import-in-the-middle": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.2.tgz", + "integrity": "sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA==", + "dependencies": { + "acorn": "^8.8.2", + "acorn-import-attributes": "^1.9.5", + "cjs-module-lexer": "^1.2.2", + "module-details-from-path": "^1.0.3" + } + }, "node_modules/@opentelemetry/instrumentation-socket.io": { "version": "0.39.0", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.39.0.tgz", @@ -1571,9 +1627,9 @@ } }, "node_modules/@types/shimmer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.0.5.tgz", - "integrity": "sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", + "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" }, "node_modules/@types/tedious": { "version": "4.0.14", diff --git a/src/paymentservice/package.json b/src/paymentservice/package.json index f51782201d..4071520ea9 100644 --- a/src/paymentservice/package.json +++ b/src/paymentservice/package.json @@ -24,6 +24,7 @@ "@opentelemetry/exporter-trace-otlp-grpc": "0.51.1", "@opentelemetry/exporter-metrics-otlp-grpc": "0.51.1", "@opentelemetry/sdk-node": "0.51.1", + "@opentelemetry/instrumentation-runtime-node": "^0.10.0", "@opentelemetry/resource-detector-alibaba-cloud": "0.28.9", "@opentelemetry/resource-detector-aws": "1.5.0", "@opentelemetry/resource-detector-container": "0.3.9", From 34df1c3dbe8ab8797383b123ba6c829785da2c97 Mon Sep 17 00:00:00 2001 From: Paulo Janotti Date: Thu, 5 Dec 2024 08:01:21 -0800 Subject: [PATCH 022/178] Fix RUNTIME_IDENTIFIER for accountingservice (#1812) * Fix RUNTIME_IDENTIFIER for accountingservice * Set the correct RID for cartservice * Add TARGETARCH to publish step --------- Co-authored-by: Juliano Costa --- src/accountingservice/Dockerfile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/accountingservice/Dockerfile b/src/accountingservice/Dockerfile index 8524db57cd..974958d266 100644 --- a/src/accountingservice/Dockerfile +++ b/src/accountingservice/Dockerfile @@ -7,16 +7,17 @@ ARG BUILD_CONFIGURATION=Release WORKDIR /src COPY ["/src/accountingservice/", "AccountingService/"] COPY ["/pb/demo.proto", "AccountingService/proto/"] -RUN dotnet restore "./AccountingService/AccountingService.csproj" -r linux-musl-$TARGETARCH +RUN dotnet restore "./AccountingService/AccountingService.csproj" -r linux-$TARGETARCH WORKDIR "/src/AccountingService" -RUN dotnet build "./AccountingService.csproj" -r linux-musl-$TARGETARCH -c $BUILD_CONFIGURATION -o /app/build +RUN dotnet build "./AccountingService.csproj" -r linux-$TARGETARCH -c $BUILD_CONFIGURATION -o /app/build # ----------------------------------------------------------------------------- FROM builder AS publish +ARG TARGETARCH ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./AccountingService.csproj" --use-current-runtime -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false +RUN dotnet publish "./AccountingService.csproj" -r linux-$TARGETARCH -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false # ----------------------------------------------------------------------------- From 615449aaf5291dc275d010a9fc893fc457e57531 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 17:12:29 +0100 Subject: [PATCH 023/178] build(deps): bump the go-production-dependencies group across 2 directories with 1 update (#1813) Bumps the go-production-dependencies group with 1 update in the /src/checkoutservice directory: [google.golang.org/grpc](https://github.com/grpc/grpc-go). Bumps the go-production-dependencies group with 1 update in the /src/productcatalogservice directory: [google.golang.org/grpc](https://github.com/grpc/grpc-go). Updates `google.golang.org/grpc` from 1.68.0 to 1.68.1 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.68.0...v1.68.1) Updates `google.golang.org/grpc` from 1.68.0 to 1.68.1 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.68.0...v1.68.1) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/checkoutservice/go.mod | 2 +- src/checkoutservice/go.sum | 4 ++-- src/productcatalogservice/go.mod | 2 +- src/productcatalogservice/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/checkoutservice/go.mod b/src/checkoutservice/go.mod index 20b412ccb6..e7205097d4 100644 --- a/src/checkoutservice/go.mod +++ b/src/checkoutservice/go.mod @@ -20,7 +20,7 @@ require ( go.opentelemetry.io/otel/sdk v1.32.0 go.opentelemetry.io/otel/sdk/metric v1.32.0 go.opentelemetry.io/otel/trace v1.32.0 - google.golang.org/grpc v1.68.0 + google.golang.org/grpc v1.68.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.35.2 ) diff --git a/src/checkoutservice/go.sum b/src/checkoutservice/go.sum index 78777f9c9d..1610937a54 100644 --- a/src/checkoutservice/go.sum +++ b/src/checkoutservice/go.sum @@ -259,8 +259,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1: google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= -google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= -google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= +google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0= +google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= diff --git a/src/productcatalogservice/go.mod b/src/productcatalogservice/go.mod index 57881a5dde..453acd57be 100644 --- a/src/productcatalogservice/go.mod +++ b/src/productcatalogservice/go.mod @@ -17,7 +17,7 @@ require ( go.opentelemetry.io/otel/sdk v1.32.0 go.opentelemetry.io/otel/sdk/metric v1.32.0 go.opentelemetry.io/otel/trace v1.32.0 - google.golang.org/grpc v1.68.0 + google.golang.org/grpc v1.68.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.35.2 ) diff --git a/src/productcatalogservice/go.sum b/src/productcatalogservice/go.sum index cefa3de0a3..b5a224aa46 100644 --- a/src/productcatalogservice/go.sum +++ b/src/productcatalogservice/go.sum @@ -187,8 +187,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1: google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= -google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= -google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= +google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0= +google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= From c281f7c0e26d9a8543709aad4fb3224ecd63224a Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Mon, 9 Dec 2024 17:25:25 +0100 Subject: [PATCH 024/178] [chore] Update k8s manifests (#1822) --- kubernetes/opentelemetry-demo.yaml | 146 +++++++++++++++-------------- 1 file changed, 74 insertions(+), 72 deletions(-) diff --git a/kubernetes/opentelemetry-demo.yaml b/kubernetes/opentelemetry-demo.yaml index ce6d73a175..782b916a5c 100644 --- a/kubernetes/opentelemetry-demo.yaml +++ b/kubernetes/opentelemetry-demo.yaml @@ -32,7 +32,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.0" + app.kubernetes.io/version: "11.3.1" name: opentelemetry-demo-grafana namespace: otel-demo --- @@ -57,7 +57,8 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.113.0" + app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/component: standalone-collector --- # Source: opentelemetry-demo/charts/prometheus/templates/serviceaccount.yaml apiVersion: v1 @@ -67,7 +68,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.55.1 + app.kubernetes.io/version: v3.0.0 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server namespace: otel-demo @@ -96,7 +97,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.0" + app.kubernetes.io/version: "11.3.1" type: Opaque data: @@ -113,7 +114,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.0" + app.kubernetes.io/version: "11.3.1" data: plugins: grafana-opensearch-datasource @@ -210,44 +211,44 @@ data: # Start OpenSearch Security Demo Configuration # WARNING: revise all the lines below before you go into production - plugins: - security: - ssl: - transport: - pemcert_filepath: esnode.pem - pemkey_filepath: esnode-key.pem - pemtrustedcas_filepath: root-ca.pem - enforce_hostname_verification: false - http: - enabled: true - pemcert_filepath: esnode.pem - pemkey_filepath: esnode-key.pem - pemtrustedcas_filepath: root-ca.pem - allow_unsafe_democertificates: true - allow_default_init_securityindex: true - authcz: - admin_dn: - - CN=kirk,OU=client,O=client,L=test,C=de - audit.type: internal_opensearch - enable_snapshot_restore_privilege: true - check_snapshot_restore_write_privileges: true - restapi: - roles_enabled: ["all_access", "security_rest_api_access"] - system_indices: - enabled: true - indices: - [ - ".opendistro-alerting-config", - ".opendistro-alerting-alert*", - ".opendistro-anomaly-results*", - ".opendistro-anomaly-detector*", - ".opendistro-anomaly-checkpoints", - ".opendistro-anomaly-detection-state", - ".opendistro-reports-*", - ".opendistro-notifications-*", - ".opendistro-notebooks", - ".opendistro-asynchronous-search-response*", - ] + # plugins: + # security: + # ssl: + # transport: + # pemcert_filepath: esnode.pem + # pemkey_filepath: esnode-key.pem + # pemtrustedcas_filepath: root-ca.pem + # enforce_hostname_verification: false + # http: + # enabled: true + # pemcert_filepath: esnode.pem + # pemkey_filepath: esnode-key.pem + # pemtrustedcas_filepath: root-ca.pem + # allow_unsafe_democertificates: true + # allow_default_init_securityindex: true + # authcz: + # admin_dn: + # - CN=kirk,OU=client,O=client,L=test,C=de + # audit.type: internal_opensearch + # enable_snapshot_restore_privilege: true + # check_snapshot_restore_write_privileges: true + # restapi: + # roles_enabled: ["all_access", "security_rest_api_access"] + # system_indices: + # enabled: true + # indices: + # [ + # ".opendistro-alerting-config", + # ".opendistro-alerting-alert*", + # ".opendistro-anomaly-results*", + # ".opendistro-anomaly-detector*", + # ".opendistro-anomaly-checkpoints", + # ".opendistro-anomaly-detection-state", + # ".opendistro-reports-*", + # ".opendistro-notifications-*", + # ".opendistro-notebooks", + # ".opendistro-asynchronous-search-response*", + # ] ######## End OpenSearch Security Demo Configuration ######## --- # Source: opentelemetry-demo/charts/opentelemetry-collector/templates/configmap.yaml @@ -259,8 +260,8 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.113.0" - + app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/component: standalone-collector data: relay: | connectors: @@ -416,7 +417,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.55.1 + app.kubernetes.io/version: v3.0.0 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server namespace: otel-demo @@ -8252,7 +8253,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.0" + app.kubernetes.io/version: "11.3.1" name: opentelemetry-demo-grafana-clusterrole rules: [] --- @@ -8264,8 +8265,8 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.113.0" - + app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/component: standalone-collector rules: - apiGroups: [""] resources: ["pods", "namespaces"] @@ -8285,7 +8286,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.55.1 + app.kubernetes.io/version: v3.0.0 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server rules: @@ -8335,7 +8336,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.0" + app.kubernetes.io/version: "11.3.1" subjects: - kind: ServiceAccount name: opentelemetry-demo-grafana @@ -8353,8 +8354,8 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.113.0" - + app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/component: standalone-collector roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -8372,7 +8373,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.55.1 + app.kubernetes.io/version: v3.0.0 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server subjects: @@ -8393,7 +8394,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.0" + app.kubernetes.io/version: "11.3.1" rules: [] --- # Source: opentelemetry-demo/charts/grafana/templates/rolebinding.yaml @@ -8405,7 +8406,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.0" + app.kubernetes.io/version: "11.3.1" roleRef: apiGroup: rbac.authorization.k8s.io kind: Role @@ -8424,7 +8425,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.0" + app.kubernetes.io/version: "11.3.1" spec: type: ClusterIP ports: @@ -8598,8 +8599,8 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.113.0" - + app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/component: standalone-collector component: standalone-collector spec: type: ClusterIP @@ -8652,7 +8653,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.55.1 + app.kubernetes.io/version: v3.0.0 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server namespace: otel-demo @@ -9075,7 +9076,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.0" + app.kubernetes.io/version: "11.3.1" spec: replicas: 1 revisionHistoryLimit: 10 @@ -9090,6 +9091,7 @@ spec: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo + app.kubernetes.io/version: "11.3.1" annotations: checksum/config: 66402109ab73b3549330f38a66f20b78067ca4fdd1b77fc12fd760727d05f34c checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24 @@ -9107,7 +9109,7 @@ spec: enableServiceLinks: true containers: - name: grafana - image: "docker.io/grafana/grafana:11.3.0" + image: "docker.io/grafana/grafana:11.3.1" imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -9311,8 +9313,8 @@ metadata: labels: app.kubernetes.io/name: otelcol app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.113.0" - + app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/component: standalone-collector spec: replicas: 1 revisionHistoryLimit: 10 @@ -9326,7 +9328,7 @@ spec: template: metadata: annotations: - checksum/config: 2d923ab8c3aa2c63ec32fe4a7aa4993b12f3e03b2e255f1909b97f5e43b58226 + checksum/config: c953028ca96450ba37c5dbeb9458b2c6a8a733dc3fc5784339c7b2df5619a16a opentelemetry_community_demo: "true" prometheus.io/port: "9464" prometheus.io/scrape: "true" @@ -9346,7 +9348,7 @@ spec: - --config=/conf/relay.yaml securityContext: {} - image: "otel/opentelemetry-collector-contrib:0.113.0" + image: "otel/opentelemetry-collector-contrib:0.114.0" imagePullPolicy: IfNotPresent ports: @@ -9413,7 +9415,7 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.55.1 + app.kubernetes.io/version: v3.0.0 app.kubernetes.io/part-of: prometheus name: opentelemetry-demo-prometheus-server namespace: otel-demo @@ -9434,7 +9436,7 @@ spec: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v2.55.1 + app.kubernetes.io/version: v3.0.0 app.kubernetes.io/part-of: prometheus spec: enableServiceLinks: true @@ -9442,7 +9444,7 @@ spec: containers: - name: prometheus-server - image: "quay.io/prometheus/prometheus:v2.55.1" + image: "quay.io/prometheus/prometheus:v3.0.0" imagePullPolicy: "IfNotPresent" args: - --storage.tsdb.retention.time=15d @@ -9545,7 +9547,7 @@ spec: - name: KAFKA_SERVICE_ADDR value: 'opentelemetry-demo-kafka:9092' - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 + value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 resources: @@ -9999,7 +10001,7 @@ spec: - name: FLAGD_METRICS_EXPORTER value: otel - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 + value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 resources: @@ -10910,7 +10912,7 @@ spec: app.kubernetes.io/version: "2.18.0" app.kubernetes.io/component: otel-demo-opensearch annotations: - configchecksum: e8c450687c20323f6f710672deb70783c1872772b09c7e40d93ae72e602bec3 + configchecksum: 6b540fc53745495be7b7bc6fdf907e4fa78e90b008ac9ff231c3b50a12e2d80 spec: securityContext: fsGroup: 1000 From 5f284915944ac8619f9c937ec93138f36fd98330 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 16:49:42 +0100 Subject: [PATCH 025/178] build(deps): bump the go-production-dependencies group across 2 directories with 1 update (#1826) Bumps the go-production-dependencies group with 1 update in the /src/checkoutservice directory: [github.com/open-feature/go-sdk](https://github.com/open-feature/go-sdk). Bumps the go-production-dependencies group with 1 update in the /src/productcatalogservice directory: [github.com/open-feature/go-sdk](https://github.com/open-feature/go-sdk). Updates `github.com/open-feature/go-sdk` from 1.13.1 to 1.14.0 - [Release notes](https://github.com/open-feature/go-sdk/releases) - [Changelog](https://github.com/open-feature/go-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/go-sdk/compare/v1.13.1...v1.14.0) Updates `github.com/open-feature/go-sdk` from 1.13.1 to 1.14.0 - [Release notes](https://github.com/open-feature/go-sdk/releases) - [Changelog](https://github.com/open-feature/go-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/go-sdk/compare/v1.13.1...v1.14.0) --- updated-dependencies: - dependency-name: github.com/open-feature/go-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: github.com/open-feature/go-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/checkoutservice/go.mod | 4 ++-- src/checkoutservice/go.sum | 12 ++++++------ src/productcatalogservice/go.mod | 4 ++-- src/productcatalogservice/go.sum | 12 ++++++------ 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/checkoutservice/go.mod b/src/checkoutservice/go.mod index e7205097d4..b1f2cf40bc 100644 --- a/src/checkoutservice/go.mod +++ b/src/checkoutservice/go.mod @@ -7,7 +7,7 @@ toolchain go1.22.9 require ( github.com/IBM/sarama v1.43.3 github.com/google/uuid v1.6.0 - github.com/open-feature/go-sdk v1.13.1 + github.com/open-feature/go-sdk v1.14.0 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 @@ -82,7 +82,7 @@ require ( golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/sys v0.27.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/src/checkoutservice/go.sum b/src/checkoutservice/go.sum index 1610937a54..284de4fd77 100644 --- a/src/checkoutservice/go.sum +++ b/src/checkoutservice/go.sum @@ -112,8 +112,8 @@ github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 h1:5z github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= github.com/open-feature/flagd/core v0.10.4 h1:3MVpDG7KigvKG9HzrK2yYKwAY2VeUbaghPWmh1MNmKg= github.com/open-feature/flagd/core v0.10.4/go.mod h1:adkYaazGgCUg6z023rKBzSN8cN3Yamuh8h+3qxK7Yk8= -github.com/open-feature/go-sdk v1.13.1 h1:RJbS70eyi7Jd3Zm5bFnaahNKNDXn+RAVnctpGu+uPis= -github.com/open-feature/go-sdk v1.13.1/go.mod h1:O8r4mhgeRIsjJ0ZBXlnE0BtbT/79W44gQceR7K8KYgo= +github.com/open-feature/go-sdk v1.14.0 h1:+B+Z94QS4HXPAn6OnaWWjMNAJkHlh6pIqW2Y1194yF8= +github.com/open-feature/go-sdk v1.14.0/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 h1:Kzt0WkUtrLeFgJn2wkGhBVJZTOBVFGwXGuGs27uM9KQ= @@ -222,8 +222,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -242,8 +242,8 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= diff --git a/src/productcatalogservice/go.mod b/src/productcatalogservice/go.mod index 453acd57be..d99061e25f 100644 --- a/src/productcatalogservice/go.mod +++ b/src/productcatalogservice/go.mod @@ -5,7 +5,7 @@ go 1.22.7 toolchain go1.22.9 require ( - github.com/open-feature/go-sdk v1.13.1 + github.com/open-feature/go-sdk v1.14.0 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 @@ -62,7 +62,7 @@ require ( golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/sys v0.27.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/src/productcatalogservice/go.sum b/src/productcatalogservice/go.sum index b5a224aa46..7f27dc4bea 100644 --- a/src/productcatalogservice/go.sum +++ b/src/productcatalogservice/go.sum @@ -74,8 +74,8 @@ github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 h1:5z github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= github.com/open-feature/flagd/core v0.10.4 h1:3MVpDG7KigvKG9HzrK2yYKwAY2VeUbaghPWmh1MNmKg= github.com/open-feature/flagd/core v0.10.4/go.mod h1:adkYaazGgCUg6z023rKBzSN8cN3Yamuh8h+3qxK7Yk8= -github.com/open-feature/go-sdk v1.13.1 h1:RJbS70eyi7Jd3Zm5bFnaahNKNDXn+RAVnctpGu+uPis= -github.com/open-feature/go-sdk v1.13.1/go.mod h1:O8r4mhgeRIsjJ0ZBXlnE0BtbT/79W44gQceR7K8KYgo= +github.com/open-feature/go-sdk v1.14.0 h1:+B+Z94QS4HXPAn6OnaWWjMNAJkHlh6pIqW2Y1194yF8= +github.com/open-feature/go-sdk v1.14.0/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 h1:Kzt0WkUtrLeFgJn2wkGhBVJZTOBVFGwXGuGs27uM9KQ= @@ -160,8 +160,8 @@ golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -171,8 +171,8 @@ golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= From e54439d41e38b56e786b066969c23a271781e633 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Thu, 12 Dec 2024 05:40:36 -0500 Subject: [PATCH 026/178] [accounting]: rename accountingservice to accounting (#1827) * rename accountingservice to accounting * Add ignore protos back --------- Co-authored-by: Juliano Costa --- .env | 2 +- .github/workflows/component-build-images.yml | 4 ++-- .gitignore | 2 +- .licenserc.json | 2 +- CHANGELOG.md | 2 ++ docker-compose-tests.yml | 2 +- docker-compose.yml | 12 ++++++------ docker-gen-proto.sh | 2 +- ide-gen-proto.sh | 2 +- renovate.json5 | 4 ++-- .../Accounting.csproj} | 0 .../Accounting.sln} | 2 +- src/{accountingservice => accounting}/Consumer.cs | 4 ++-- src/{accountingservice => accounting}/Dockerfile | 14 +++++++------- src/{accountingservice => accounting}/Helpers.cs | 2 +- src/{accountingservice => accounting}/Log.cs | 2 +- src/{accountingservice => accounting}/Program.cs | 2 +- src/{accountingservice => accounting}/README.md | 6 +++--- 18 files changed, 34 insertions(+), 32 deletions(-) rename src/{accountingservice/AccountingService.csproj => accounting/Accounting.csproj} (100%) rename src/{accountingservice/AccountingService.sln => accounting/Accounting.sln} (87%) rename src/{accountingservice => accounting}/Consumer.cs (96%) rename src/{accountingservice => accounting}/Dockerfile (56%) rename src/{accountingservice => accounting}/Helpers.cs (97%) rename src/{accountingservice => accounting}/Log.cs (93%) rename src/{accountingservice => accounting}/Program.cs (95%) rename src/{accountingservice => accounting}/README.md (67%) diff --git a/.env b/.env index de4088d426..844e885c5a 100644 --- a/.env +++ b/.env @@ -46,7 +46,7 @@ OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=cumulative # Core Demo Services # ****************** # Accounting Service -ACCOUNTING_SERVICE_DOCKERFILE=./src/accountingservice/Dockerfile +ACCOUNTING_DOCKERFILE=./src/accounting/Dockerfile # Ad Service AD_SERVICE_PORT=9555 diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index f6165a7627..7514267b83 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -51,8 +51,8 @@ jobs: fail-fast: false matrix: file_tag: - - file: ./src/accountingservice/Dockerfile - tag_suffix: accountingservice + - file: ./src/accounting/Dockerfile + tag_suffix: accounting context: ./ setup-qemu: true - file: ./src/adservice/Dockerfile diff --git a/.gitignore b/.gitignore index b10c7c4af8..11243be1e7 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,7 @@ src/shippingservice/target/ test/tracetesting/tracetesting-vars.yaml # Ignore copied/generated protobuf files +/src/accounting/src/protos/ /src/cartservice/src/protos/ /src/featureflagservice/proto/ /src/featureflagservice/src/ffs_demo_pb.erl @@ -54,4 +55,3 @@ test/tracetesting/tracetesting-vars.yaml /src/paymentservice/demo.proto /src/shippingservice/proto/ /src/currencyservice/proto -/src/accountingservice/genproto diff --git a/.licenserc.json b/.licenserc.json index bc2411bd88..410195e9e1 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -38,7 +38,7 @@ ], "ignore": [ "node_modules/", - "src/accountingservice/genproto/", + "/src/accounting/src/protos/", "src/cartservice/src/obj/", "src/cartservice/tests/obj/", "src/checkoutservice/genproto/", diff --git a/CHANGELOG.md b/CHANGELOG.md index 929cb3e45f..8e8cdde9c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ the release. ([#1794](https://github.com/open-telemetry/opentelemetry-demo/pull/1784)) * [paymentservice] Add nodejs instrumentation for runtime metrics ([#1797](https://github.com/open-telemetry/opentelemetry-demo/pull/1797)) +* [accounting] rename accountingservice to accounting + ([#1827](https://github.com/open-telemetry/opentelemetry-demo/pull/1827)) ## 1.12.0 diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index 8bab0cb0cd..40cbbccc28 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -57,7 +57,7 @@ services: tracetest-server: condition: service_healthy # adding demo services as dependencies - accountingservice: + accounting: condition: service_started adservice: condition: service_started diff --git a/docker-compose.yml b/docker-compose.yml index b446847474..984d4c8858 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,14 +18,14 @@ services: # Core Demo Services # ****************** # Accounting service - accountingservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-accountingservice - container_name: accounting-service + accounting: + image: ${IMAGE_NAME}:${DEMO_VERSION}-accounting + container_name: accounting build: context: ./ - dockerfile: ${ACCOUNTING_SERVICE_DOCKERFILE} + dockerfile: ${ACCOUNTING_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-accountingservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-accounting deploy: resources: limits: @@ -36,7 +36,7 @@ services: - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP} - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=accountingservice + - OTEL_SERVICE_NAME=accounting depends_on: otelcol: condition: service_started diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index 2fb7d2a347..b90cab8413 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -21,7 +21,7 @@ gen_proto_python() { python -m grpc_tools.protoc -I /build/pb/ --python_out="./src/$1/" --grpc_python_out="./src/$1/" /build/pb/demo.proto } -#gen_proto_dotnet accountingservice +#gen_proto_dotnet accounting #gen_proto_java adservice #gen_proto_dotnet cartservice gen_proto_go checkoutservice diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index d219ee39a0..a6e71ebb60 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -65,7 +65,7 @@ gen_proto_ts() { cd "$base_dir" || return } -gen_proto_dotnet accountingservice +gen_proto_dotnet accounting # gen_proto_java adservice gen_proto_dotnet cartservice gen_proto_go checkoutservice diff --git a/renovate.json5 b/renovate.json5 index ed723b0e63..f871b2b08a 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -15,8 +15,8 @@ "packageRules": [ { - "matchFileNames": ["src/accountingservice/**"], - "groupName": "accountingservice", + "matchFileNames": ["src/accounting/**"], + "groupName": "accounting", }, { "matchFileNames": ["src/adservice/**"], diff --git a/src/accountingservice/AccountingService.csproj b/src/accounting/Accounting.csproj similarity index 100% rename from src/accountingservice/AccountingService.csproj rename to src/accounting/Accounting.csproj diff --git a/src/accountingservice/AccountingService.sln b/src/accounting/Accounting.sln similarity index 87% rename from src/accountingservice/AccountingService.sln rename to src/accounting/Accounting.sln index ee5a41ca9f..819a398467 100644 --- a/src/accountingservice/AccountingService.sln +++ b/src/accounting/Accounting.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.9.34701.34 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AccountingService", "AccountingService.csproj", "{C66C35E2-DF04-4DCF-8F6A-87B6D6433FF6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Accounting", "Accounting.csproj", "{C66C35E2-DF04-4DCF-8F6A-87B6D6433FF6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/accountingservice/Consumer.cs b/src/accounting/Consumer.cs similarity index 96% rename from src/accountingservice/Consumer.cs rename to src/accounting/Consumer.cs index 70f9357fea..421f04809e 100644 --- a/src/accountingservice/Consumer.cs +++ b/src/accounting/Consumer.cs @@ -5,7 +5,7 @@ using Microsoft.Extensions.Logging; using Oteldemo; -namespace AccountingService; +namespace Accounting; internal class Consumer : IDisposable { @@ -74,7 +74,7 @@ private IConsumer BuildConsumer(string servers) { var conf = new ConsumerConfig { - GroupId = $"accountingservice", + GroupId = $"accounting", BootstrapServers = servers, // https://github.com/confluentinc/confluent-kafka-dotnet/tree/07de95ed647af80a0db39ce6a8891a630423b952#basic-consumer-example AutoOffsetReset = AutoOffsetReset.Earliest, diff --git a/src/accountingservice/Dockerfile b/src/accounting/Dockerfile similarity index 56% rename from src/accountingservice/Dockerfile rename to src/accounting/Dockerfile index 974958d266..05b205fb35 100644 --- a/src/accountingservice/Dockerfile +++ b/src/accounting/Dockerfile @@ -5,19 +5,19 @@ FROM --platform=${BUILDPLATFORM} mcr.microsoft.com/dotnet/sdk:8.0 AS builder ARG TARGETARCH ARG BUILD_CONFIGURATION=Release WORKDIR /src -COPY ["/src/accountingservice/", "AccountingService/"] -COPY ["/pb/demo.proto", "AccountingService/proto/"] -RUN dotnet restore "./AccountingService/AccountingService.csproj" -r linux-$TARGETARCH -WORKDIR "/src/AccountingService" +COPY ["/src/accounting/", "Accounting/"] +COPY ["/pb/demo.proto", "Accounting/proto/"] +RUN dotnet restore "./Accounting/Accounting.csproj" -r linux-$TARGETARCH +WORKDIR "/src/Accounting" -RUN dotnet build "./AccountingService.csproj" -r linux-$TARGETARCH -c $BUILD_CONFIGURATION -o /app/build +RUN dotnet build "./Accounting.csproj" -r linux-$TARGETARCH -c $BUILD_CONFIGURATION -o /app/build # ----------------------------------------------------------------------------- FROM builder AS publish ARG TARGETARCH ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./AccountingService.csproj" -r linux-$TARGETARCH -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false +RUN dotnet publish "./Accounting.csproj" -r linux-$TARGETARCH -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false # ----------------------------------------------------------------------------- @@ -32,4 +32,4 @@ RUN chown app "/var/log/opentelemetry/dotnet" RUN chown app "/app/instrument.sh" USER app -ENTRYPOINT ["./instrument.sh", "dotnet", "AccountingService.dll"] +ENTRYPOINT ["./instrument.sh", "dotnet", "Accounting.dll"] diff --git a/src/accountingservice/Helpers.cs b/src/accounting/Helpers.cs similarity index 97% rename from src/accountingservice/Helpers.cs rename to src/accounting/Helpers.cs index c757378338..d167aae38e 100644 --- a/src/accountingservice/Helpers.cs +++ b/src/accounting/Helpers.cs @@ -3,7 +3,7 @@ using System.Collections; -namespace AccountingService +namespace Accounting { internal static class Helpers { diff --git a/src/accountingservice/Log.cs b/src/accounting/Log.cs similarity index 93% rename from src/accountingservice/Log.cs rename to src/accounting/Log.cs index 73bfb3f557..e18af0e658 100644 --- a/src/accountingservice/Log.cs +++ b/src/accounting/Log.cs @@ -4,7 +4,7 @@ using Microsoft.Extensions.Logging; using Oteldemo; -namespace AccountingService +namespace Accounting { internal static partial class Log { diff --git a/src/accountingservice/Program.cs b/src/accounting/Program.cs similarity index 95% rename from src/accountingservice/Program.cs rename to src/accounting/Program.cs index 1f122a7ebc..54a5c44657 100644 --- a/src/accountingservice/Program.cs +++ b/src/accounting/Program.cs @@ -1,7 +1,7 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -using AccountingService; +using Accounting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; diff --git a/src/accountingservice/README.md b/src/accounting/README.md similarity index 67% rename from src/accountingservice/README.md rename to src/accounting/README.md index 9c0f57ef13..af86aee226 100644 --- a/src/accountingservice/README.md +++ b/src/accounting/README.md @@ -7,7 +7,7 @@ This service consumes new orders from a Kafka topic. To build the service binary, run: ```sh -cp pb/demo.proto src/accoutingservice/proto/demo.proto # root context +cp pb/demo.proto src/accouting/proto/demo.proto # root context dotnet build # accounting service context ``` @@ -16,7 +16,7 @@ dotnet build # accounting service context From the root directory, run: ```sh -docker compose build accountingservice +docker compose build accounting ``` ## Bump dependencies @@ -24,5 +24,5 @@ docker compose build accountingservice To bump all dependencies run in Package manager: ```sh -Update-Package -ProjectName AccountingService +Update-Package -ProjectName Accounting ``` From 1f3024702069d41d005e29dce123cd6a540e5bb7 Mon Sep 17 00:00:00 2001 From: Robert Castley Date: Thu, 12 Dec 2024 20:19:10 +0000 Subject: [PATCH 027/178] Variable paymentservice error rate and introduce loyalty level attributes (#1815) * 75% error by version number included tenant.level as span attribute * Include service.name in logs and change level to from numeric to text * Updated to reflect changes to paymentservice * Added pull request * Added variants for % failure * Change to loyalty_level and service.version * Change to use app.variant * Updated log entry * Revert changes as deployment YAML is generated after Helm release * Remove app.variant and tidy code for app.loyalty.level * Fixed markdown linting * Typo correction * Add gold back into array and also include loyalty_level in success log --------- Co-authored-by: Juliano Costa Co-authored-by: Pierre Tessier --- CHANGELOG.md | 4 ++++ src/flagd/demo.flagd.json | 11 ++++++--- src/paymentservice/charge.js | 46 ++++++++++++++++++++++++++---------- src/paymentservice/logger.js | 17 +++++++++++-- 4 files changed, 60 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e8cdde9c8..7c9a41b936 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ the release. ## Unreleased +* [flagd] Update `paymentServiceFailure` to use a list of variants. +* [paymentservice] Add loyalty level attributes to spans. + Added `service.name` to logs. + ([#1815](https://github.com/open-telemetry/opentelemetry-demo/pull/1815)) * [grafana] Update grafana to 11.3.0 ([#1764](https://github.com/open-telemetry/opentelemetry-demo/pull/1764)) * [chore] Move build args to .env file diff --git a/src/flagd/demo.flagd.json b/src/flagd/demo.flagd.json index 2d46891ef2..6af1dd51a7 100644 --- a/src/flagd/demo.flagd.json +++ b/src/flagd/demo.flagd.json @@ -65,11 +65,16 @@ "defaultVariant": "off" }, "paymentServiceFailure": { - "description": "Fail payment service charge requests", + "description": "Fail payment service charge requests n%", "state": "ENABLED", "variants": { - "on": true, - "off": false + "100%": 1.00, + "90%": 0.95, + "75%": 0.75, + "50%": 0.50, + "25%": 0.25, + "10%": 0.10, + "off": 0.00 }, "defaultVariant": "off" }, diff --git a/src/paymentservice/charge.js b/src/paymentservice/charge.js index 7fcb7fbdaa..4d02ba24e8 100644 --- a/src/paymentservice/charge.js +++ b/src/paymentservice/charge.js @@ -1,24 +1,41 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -const {context, propagation, trace, metrics} = require('@opentelemetry/api'); +const { context, propagation, trace, metrics } = require('@opentelemetry/api'); const cardValidator = require('simple-card-validator'); const { v4: uuidv4 } = require('uuid'); const { OpenFeature } = require('@openfeature/server-sdk'); -const { FlagdProvider} = require('@openfeature/flagd-provider'); +const { FlagdProvider } = require('@openfeature/flagd-provider'); const flagProvider = new FlagdProvider(); const logger = require('./logger'); const tracer = trace.getTracer('paymentservice'); const meter = metrics.getMeter('paymentservice'); -const transactionsCounter = meter.createCounter('app.payment.transactions') +const transactionsCounter = meter.createCounter('app.payment.transactions'); + +const LOYALTY_LEVEL = ['platinum', 'gold', 'silver', 'bronze']; + +/** Return random element from given array */ +function random(arr) { + const index = Math.floor(Math.random() * arr.length); + return arr[index]; +} module.exports.charge = async request => { const span = tracer.startSpan('charge'); await OpenFeature.setProviderAndWait(flagProvider); - if (await OpenFeature.getClient().getBooleanValue("paymentServiceFailure", false)) { - throw new Error("PaymentService Fail Feature Flag Enabled"); + + const numberVariant = await OpenFeature.getClient().getNumberValue("paymentServiceFailure", 0); + + if (numberVariant > 0) { + // n% chance to fail with app.loyalty.level=gold + if (Math.random() < numberVariant) { + span.setAttributes({'app.loyalty.level': 'gold' }); + span.end(); + + throw new Error('Payment request failed. Invalid token. app.loyalty.level=gold'); + } } const { @@ -34,9 +51,12 @@ module.exports.charge = async request => { const card = cardValidator(number); const { card_type: cardType, valid } = card.getCardDetails(); + const loyalty_level = random(LOYALTY_LEVEL); + span.setAttributes({ 'app.payment.card_type': cardType, - 'app.payment.card_valid': valid + 'app.payment.card_valid': valid, + 'app.loyalty.level': loyalty_level }); if (!valid) { @@ -51,18 +71,18 @@ module.exports.charge = async request => { throw new Error(`The credit card (ending ${lastFourDigits}) expired on ${month}/${year}.`); } - // check baggage for synthetic_request=true, and add charged attribute accordingly + // Check baggage for synthetic_request=true, and add charged attribute accordingly const baggage = propagation.getBaggage(context.active()); - if (baggage && baggage.getEntry("synthetic_request") && baggage.getEntry("synthetic_request").value === "true") { + if (baggage && baggage.getEntry('synthetic_request') && baggage.getEntry('synthetic_request').value === 'true') { span.setAttribute('app.payment.charged', false); } else { span.setAttribute('app.payment.charged', true); } + const { units, nanos, currencyCode } = request.amount; + logger.info({ transactionId, cardType, lastFourDigits, amount: { units, nanos, currencyCode }, loyalty_level }, 'Transaction complete.'); + transactionsCounter.add(1, { 'app.payment.currency': currencyCode }); span.end(); - const { units, nanos, currencyCode } = request.amount; - logger.info({transactionId, cardType, lastFourDigits, amount: { units, nanos, currencyCode }}, "Transaction complete."); - transactionsCounter.add(1, {"app.payment.currency": currencyCode}) - return { transactionId } -} + return { transactionId }; +}; diff --git a/src/paymentservice/logger.js b/src/paymentservice/logger.js index ecc4a528d7..66f8a354f6 100644 --- a/src/paymentservice/logger.js +++ b/src/paymentservice/logger.js @@ -1,6 +1,19 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -const pino = require('pino'); +const pino = require('pino') -module.exports = pino(); +const logger = pino({ + mixin() { + return { + 'service.name': process.env['OTEL_SERVICE_NAME'], + } + }, + formatters: { + level: (label) => { + return { 'level': label }; + }, + }, +}); + +module.exports = logger; From 613e659379e50b141d1494cf7ac4f22cee246998 Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Fri, 13 Dec 2024 09:54:19 +0100 Subject: [PATCH 028/178] chore-add-dependabot-auto-update-workflow (#1828) Co-authored-by: Pierre Tessier --- .../dependabot-auto-update-protobuf-diff.yml | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/dependabot-auto-update-protobuf-diff.yml diff --git a/.github/workflows/dependabot-auto-update-protobuf-diff.yml b/.github/workflows/dependabot-auto-update-protobuf-diff.yml new file mode 100644 index 0000000000..22d8f473f1 --- /dev/null +++ b/.github/workflows/dependabot-auto-update-protobuf-diff.yml @@ -0,0 +1,35 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +on: + pull_request: + branches: [ main ] + +permissions: + actions: write + pull-requests: write + contents: write + packages: write + +jobs: + dependabot-auto-update-protobuf-diff: + runs-on: ubuntu-latest + # Only run this job if the PR is opened by dependabot and the last commit is from dependabot + if: github.event.pull_request.user.login == 'dependabot[bot]' + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ github.head_ref }} + token: ${{ secrets.DEPENDABOT_TOKEN }} + - name: Generate + run: make clean docker-generate-protobuf + - name: Commit only if there are changes + run: | + if ! git diff --quiet; then + git config user.name "dependabot[bot]" + git config user.email "49699333+dependabot[bot]@users.noreply.github.com" + git add . + git commit -s -m "chore: update protobuf" + git push + fi From 7b2c0ad0b2f09fa8b930a9d168545bdfb1e100eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:49:45 +0100 Subject: [PATCH 029/178] build(deps): bump the go-production-dependencies group across 2 directories with 10 updates (#1837) --- src/checkoutservice/go.mod | 39 +++++++-------- src/checkoutservice/go.sum | 82 ++++++++++++++++---------------- src/productcatalogservice/go.mod | 35 +++++++------- src/productcatalogservice/go.sum | 74 ++++++++++++++-------------- 4 files changed, 118 insertions(+), 112 deletions(-) diff --git a/src/checkoutservice/go.mod b/src/checkoutservice/go.mod index b1f2cf40bc..18cda9f418 100644 --- a/src/checkoutservice/go.mod +++ b/src/checkoutservice/go.mod @@ -11,16 +11,16 @@ require ( github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0 - go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 - go.opentelemetry.io/otel v1.32.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0 - go.opentelemetry.io/otel/sdk v1.32.0 - go.opentelemetry.io/otel/sdk/metric v1.32.0 - go.opentelemetry.io/otel/trace v1.32.0 - google.golang.org/grpc v1.68.1 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 + go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0 + go.opentelemetry.io/otel v1.33.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 + go.opentelemetry.io/otel/sdk v1.33.0 + go.opentelemetry.io/otel/sdk/metric v1.33.0 + go.opentelemetry.io/otel/trace v1.33.0 + google.golang.org/grpc v1.69.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.35.2 ) @@ -47,7 +47,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect @@ -72,19 +72,20 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/proto/otlp v1.3.1 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect + go.opentelemetry.io/otel/metric v1.33.0 // indirect + go.opentelemetry.io/proto/otlp v1.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.28.0 // indirect + golang.org/x/crypto v0.30.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/net v0.32.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.21.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/src/checkoutservice/go.sum b/src/checkoutservice/go.sum index 284de4fd77..2e9207367a 100644 --- a/src/checkoutservice/go.sum +++ b/src/checkoutservice/go.sum @@ -63,8 +63,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -141,8 +141,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= @@ -161,30 +161,32 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 h1:qtFISDHKolvIxzSs0gIaiPUPR0Cucb0F2coHC7ZLdps= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0/go.mod h1:Y+Pop1Q6hCOnETWTW4NROK/q1hv50hM7yDaUTjG8lp8= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0 h1:DheMAlT6POBP+gh8RUH19EOTnQIor5QE0uSRPtzCpSw= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0/go.mod h1:wZcGmeVO9nzP67aYSLDqXNWK87EZWhi7JWj1v7ZXf94= -go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 h1:kJB5wMVorwre8QzEodzTAbzm9FOOah0zvG+V4abNlEE= -go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0/go.mod h1:Nup4TgnOyEJWmVq9sf/ASH3ZJiAXwWHd5xZCHG7Sg9M= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 h1:IJFEoHiytixx8cMiVAO+GmHR6Frwu+u5Ur8njpFO6Ac= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0/go.mod h1:3rHrKNtLIoS0oZwkY2vxi+oJcwFRWdtUyRII+so45p8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0 h1:9kV11HXBHZAvuPUZxmMWrH8hZn/6UnHX4K0mu36vNsU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0/go.mod h1:JyA0FHXe22E1NeNiHmVp7kFHglnexDQ7uRWDiiJ1hKQ= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= -go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= -go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= +go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0 h1:GrcF8ABgnBHQFgp4zu5/jTSqLkoJ9uiDz2e7eKkjq+w= +go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0/go.mod h1:+kxR5prZLoFAJVXJWZKWO2e4PY2dYyXIRNklBuOyzpM= +go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= +go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 h1:7F29RDmnlqk6B5d+sUqemt8TBfDqxryYW5gX6L74RFA= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0/go.mod h1:ZiGDq7xwDMKmWDrN1XsXAj0iC7hns+2DhxBFSncNHSE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA= +go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= +go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= +go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM= +go.opentelemetry.io/otel/sdk v1.33.0/go.mod h1:A1Q5oi7/9XaMlIWzPSxLRWOI8nG3FnzHJNbiENQuihM= +go.opentelemetry.io/otel/sdk/metric v1.33.0 h1:Gs5VK9/WUJhNXZgn8MR6ITatvAmKeIuCtNbsP3JkNqU= +go.opentelemetry.io/otel/sdk/metric v1.33.0/go.mod h1:dL5ykHZmm1B1nVRk9dDjChwDmt81MjVp3gLkQRwKf/Q= +go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= +go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= +go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg= +go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= @@ -198,8 +200,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= -golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= +golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= +golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -216,8 +218,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -233,8 +235,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -255,12 +257,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= -google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= -google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0= -google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= +google.golang.org/grpc v1.69.0 h1:quSiOM1GJPmPH5XtU+BCoVXcDVJJAzNcoyfC2cCjGkI= +google.golang.org/grpc v1.69.0/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= diff --git a/src/productcatalogservice/go.mod b/src/productcatalogservice/go.mod index d99061e25f..85e360d9f2 100644 --- a/src/productcatalogservice/go.mod +++ b/src/productcatalogservice/go.mod @@ -9,15 +9,15 @@ require ( github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 - go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 - go.opentelemetry.io/otel v1.32.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0 - go.opentelemetry.io/otel/sdk v1.32.0 - go.opentelemetry.io/otel/sdk/metric v1.32.0 - go.opentelemetry.io/otel/trace v1.32.0 - google.golang.org/grpc v1.68.1 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 + go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0 + go.opentelemetry.io/otel v1.33.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 + go.opentelemetry.io/otel/sdk v1.33.0 + go.opentelemetry.io/otel/sdk/metric v1.33.0 + go.opentelemetry.io/otel/trace v1.33.0 + google.golang.org/grpc v1.69.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.35.2 ) @@ -39,7 +39,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect @@ -53,18 +53,19 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/proto/otlp v1.3.1 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect + go.opentelemetry.io/otel/metric v1.33.0 // indirect + go.opentelemetry.io/proto/otlp v1.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/net v0.32.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.21.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/src/productcatalogservice/go.sum b/src/productcatalogservice/go.sum index 7f27dc4bea..f53c6146fc 100644 --- a/src/productcatalogservice/go.sum +++ b/src/productcatalogservice/go.sum @@ -47,8 +47,8 @@ github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2 github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -93,8 +93,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= @@ -112,28 +112,30 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 h1:qtFISDHKolvIxzSs0gIaiPUPR0Cucb0F2coHC7ZLdps= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0/go.mod h1:Y+Pop1Q6hCOnETWTW4NROK/q1hv50hM7yDaUTjG8lp8= -go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0 h1:kJB5wMVorwre8QzEodzTAbzm9FOOah0zvG+V4abNlEE= -go.opentelemetry.io/contrib/instrumentation/runtime v0.57.0/go.mod h1:Nup4TgnOyEJWmVq9sf/ASH3ZJiAXwWHd5xZCHG7Sg9M= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 h1:IJFEoHiytixx8cMiVAO+GmHR6Frwu+u5Ur8njpFO6Ac= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0/go.mod h1:3rHrKNtLIoS0oZwkY2vxi+oJcwFRWdtUyRII+so45p8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0 h1:9kV11HXBHZAvuPUZxmMWrH8hZn/6UnHX4K0mu36vNsU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0/go.mod h1:JyA0FHXe22E1NeNiHmVp7kFHglnexDQ7uRWDiiJ1hKQ= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= -go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= -go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= +go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0 h1:GrcF8ABgnBHQFgp4zu5/jTSqLkoJ9uiDz2e7eKkjq+w= +go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0/go.mod h1:+kxR5prZLoFAJVXJWZKWO2e4PY2dYyXIRNklBuOyzpM= +go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= +go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 h1:7F29RDmnlqk6B5d+sUqemt8TBfDqxryYW5gX6L74RFA= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0/go.mod h1:ZiGDq7xwDMKmWDrN1XsXAj0iC7hns+2DhxBFSncNHSE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA= +go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= +go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= +go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM= +go.opentelemetry.io/otel/sdk v1.33.0/go.mod h1:A1Q5oi7/9XaMlIWzPSxLRWOI8nG3FnzHJNbiENQuihM= +go.opentelemetry.io/otel/sdk/metric v1.33.0 h1:Gs5VK9/WUJhNXZgn8MR6ITatvAmKeIuCtNbsP3JkNqU= +go.opentelemetry.io/otel/sdk/metric v1.33.0/go.mod h1:dL5ykHZmm1B1nVRk9dDjChwDmt81MjVp3gLkQRwKf/Q= +go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= +go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= +go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg= +go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= @@ -155,8 +157,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -167,8 +169,8 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= @@ -183,12 +185,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= -google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= -google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0= -google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= +google.golang.org/grpc v1.69.0 h1:quSiOM1GJPmPH5XtU+BCoVXcDVJJAzNcoyfC2cCjGkI= +google.golang.org/grpc v1.69.0/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= From 43f448c61f8ea993603027efad7b9a59dae47f1b Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Sat, 14 Dec 2024 00:01:08 +0100 Subject: [PATCH 030/178] [cartservice] - Add Exemplars to Cart Service (#1830) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * WIP-Add Exemplars to Cart Service * Bump AspNetCore instrumentation Co-authored-by: Piotr Kiełkowicz * Add source and meter * Remove logs and add boundaries * Add HistogramBucketBoundaries * Drop trailing space * Apply suggestions from code review Co-authored-by: Piotr Kiełkowicz * changelog * indent --------- Co-authored-by: Piotr Kiełkowicz --- CHANGELOG.md | 9 +++--- src/cartservice/src/Program.cs | 3 ++ src/cartservice/src/cartservice.csproj | 28 +++++++++---------- .../src/cartstore/ValkeyCartStore.cs | 26 +++++++++++++++++ src/cartservice/src/services/CartService.cs | 7 ++--- .../tests/cartservice.tests.csproj | 10 +++---- 6 files changed, 56 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c9a41b936..d23ee07c0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,6 @@ the release. ## Unreleased -* [flagd] Update `paymentServiceFailure` to use a list of variants. -* [paymentservice] Add loyalty level attributes to spans. - Added `service.name` to logs. - ([#1815](https://github.com/open-telemetry/opentelemetry-demo/pull/1815)) * [grafana] Update grafana to 11.3.0 ([#1764](https://github.com/open-telemetry/opentelemetry-demo/pull/1764)) * [chore] Move build args to .env file @@ -29,8 +25,13 @@ the release. ([#1794](https://github.com/open-telemetry/opentelemetry-demo/pull/1784)) * [paymentservice] Add nodejs instrumentation for runtime metrics ([#1797](https://github.com/open-telemetry/opentelemetry-demo/pull/1797)) +* [flagd and paymentservice] Update `paymentServiceFailure` to use a list of + variants and add loyalty level attributes to spans. Added `service.name` to logs. + ([#1815](https://github.com/open-telemetry/opentelemetry-demo/pull/1815)) * [accounting] rename accountingservice to accounting ([#1827](https://github.com/open-telemetry/opentelemetry-demo/pull/1827)) +* [cartservice] - Add Exemplars to Cart Service + ([#1830](https://github.com/open-telemetry/opentelemetry-demo/pull/1830)) ## 1.12.0 diff --git a/src/cartservice/src/Program.cs b/src/cartservice/src/Program.cs index e4e6a28e11..6c52229ce4 100644 --- a/src/cartservice/src/Program.cs +++ b/src/cartservice/src/Program.cs @@ -61,6 +61,7 @@ builder.Services.AddOpenTelemetry() .ConfigureResource(appResourceBuilder) .WithTracing(tracerBuilder => tracerBuilder + .AddSource("OpenTelemetry.Demo.Cart") .AddRedisInstrumentation( options => options.SetVerboseDatabaseStatements = true) .AddAspNetCoreInstrumentation() @@ -68,9 +69,11 @@ .AddHttpClientInstrumentation() .AddOtlpExporter()) .WithMetrics(meterBuilder => meterBuilder + .AddMeter("OpenTelemetry.Demo.Cart") .AddProcessInstrumentation() .AddRuntimeInstrumentation() .AddAspNetCoreInstrumentation() + .SetExemplarFilter(ExemplarFilterType.TraceBased) .AddOtlpExporter()); OpenFeature.Api.Instance.AddHooks(new TracingHook()); builder.Services.AddGrpc(); diff --git a/src/cartservice/src/cartservice.csproj b/src/cartservice/src/cartservice.csproj index 5b5e31373f..d62a131f7f 100644 --- a/src/cartservice/src/cartservice.csproj +++ b/src/cartservice/src/cartservice.csproj @@ -15,22 +15,22 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - + diff --git a/src/cartservice/src/cartstore/ValkeyCartStore.cs b/src/cartservice/src/cartstore/ValkeyCartStore.cs index aa79afedea..1a16dcc6c0 100644 --- a/src/cartservice/src/cartstore/ValkeyCartStore.cs +++ b/src/cartservice/src/cartstore/ValkeyCartStore.cs @@ -7,6 +7,8 @@ using StackExchange.Redis; using Google.Protobuf; using Microsoft.Extensions.Logging; +using System.Diagnostics.Metrics; +using System.Diagnostics; namespace cartservice.cartstore; @@ -23,6 +25,20 @@ public class ValkeyCartStore : ICartStore private readonly byte[] _emptyCartBytes; private readonly string _connectionString; + private static readonly ActivitySource CartActivitySource = new("OpenTelemetry.Demo.Cart"); + private static readonly Meter CartMeter = new Meter("OpenTelemetry.Demo.Cart"); + private static readonly Histogram addItemHistogram = CartMeter.CreateHistogram( + "app.cart.add_item.latency", + advice: new InstrumentAdvice + { + HistogramBucketBoundaries = [ 500000, 600000, 700000, 800000, 900000, 1000000, 1100000 ] + }); + private static readonly Histogram getCartHistogram = CartMeter.CreateHistogram( + "app.cart.get_cart.latency", + advice: new InstrumentAdvice + { + HistogramBucketBoundaries = [ 300000, 400000, 500000, 600000, 700000, 800000, 900000 ] + }); private readonly ConfigurationOptions _redisConnectionOptions; public ValkeyCartStore(ILogger logger, string valkeyAddress) @@ -105,6 +121,7 @@ private void EnsureRedisConnected() public async Task AddItemAsync(string userId, string productId, int quantity) { + var stopwatch = Stopwatch.StartNew(); _logger.LogInformation("AddItemAsync called with userId={userId}, productId={productId}, quantity={quantity}", userId, productId, quantity); try @@ -146,6 +163,10 @@ public async Task AddItemAsync(string userId, string productId, int quantity) { throw new RpcException(new Status(StatusCode.FailedPrecondition, $"Can't access cart storage. {ex}")); } + finally + { + addItemHistogram.Record(stopwatch.ElapsedTicks); + } } public async Task EmptyCartAsync(string userId) @@ -169,6 +190,7 @@ public async Task EmptyCartAsync(string userId) public async Task GetCartAsync(string userId) { + var stopwatch = Stopwatch.StartNew(); _logger.LogInformation("GetCartAsync called with userId={userId}", userId); try @@ -192,6 +214,10 @@ public async Task EmptyCartAsync(string userId) { throw new RpcException(new Status(StatusCode.FailedPrecondition, $"Can't access cart storage. {ex}")); } + finally + { + getCartHistogram.Record(stopwatch.ElapsedTicks); + } } public bool Ping() diff --git a/src/cartservice/src/services/CartService.cs b/src/cartservice/src/services/CartService.cs index d071c37080..093b3bda2d 100644 --- a/src/cartservice/src/services/CartService.cs +++ b/src/cartservice/src/services/CartService.cs @@ -4,7 +4,6 @@ using System.Threading.Tasks; using System; using Grpc.Core; -using OpenTelemetry.Trace; using cartservice.cartstore; using OpenFeature; using Oteldemo; @@ -41,7 +40,7 @@ public override async Task AddItem(AddItemRequest request, ServerCallCont } catch (RpcException ex) { - activity?.RecordException(ex); + activity?.AddException(ex); activity?.SetStatus(ActivityStatusCode.Error, ex.Message); throw; } @@ -67,7 +66,7 @@ public override async Task GetCart(GetCartRequest request, ServerCallConte } catch (RpcException ex) { - activity?.RecordException(ex); + activity?.AddException(ex); activity?.SetStatus(ActivityStatusCode.Error, ex.Message); throw; } @@ -92,7 +91,7 @@ public override async Task EmptyCart(EmptyCartRequest request, ServerCall } catch (RpcException ex) { - Activity.Current?.RecordException(ex); + Activity.Current?.AddException(ex); Activity.Current?.SetStatus(ActivityStatusCode.Error, ex.Message); throw; } diff --git a/src/cartservice/tests/cartservice.tests.csproj b/src/cartservice/tests/cartservice.tests.csproj index 4c7a083d85..fd079fc30f 100644 --- a/src/cartservice/tests/cartservice.tests.csproj +++ b/src/cartservice/tests/cartservice.tests.csproj @@ -5,11 +5,11 @@ - - - - - + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive From 9b7cfada48e2ecb39d96fba579202573cbd94c38 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 16 Dec 2024 04:04:24 -0500 Subject: [PATCH 031/178] [otel-collector] - rename otelcol to otel-collector (#1841) --- .env | 6 ++-- .github/workflows/label-pr.yml | 2 +- CHANGELOG.md | 2 ++ docker-compose-tests.yml | 2 +- docker-compose-tests_include-override.yml | 2 +- docker-compose.minimal.yml | 28 +++++++-------- docker-compose.yml | 34 +++++++++---------- renovate.json5 | 4 +-- src/frontend/pages/_app.tsx | 4 +-- .../utils/telemetry/FrontendTracer.ts | 4 +-- .../demo/opentelemetry-collector.json | 8 ++--- .../otelcol-config-extras.yml | 0 .../otelcol-config.yml | 2 +- src/prometheus/prometheus-config.yaml | 2 +- test/tracetesting/tracetest-config.yaml | 2 +- 15 files changed, 51 insertions(+), 51 deletions(-) rename src/{otelcollector => otel-collector}/otelcol-config-extras.yml (100%) rename src/{otelcollector => otel-collector}/otelcol-config.yml (98%) diff --git a/.env b/.env index 844e885c5a..8f8668e931 100644 --- a/.env +++ b/.env @@ -28,11 +28,11 @@ ENV_PLATFORM=local # OpenTelemetry Collector HOST_FILESYSTEM=/ DOCKER_SOCK=/var/run/docker.sock -OTEL_COLLECTOR_HOST=otelcol +OTEL_COLLECTOR_HOST=otel-collector OTEL_COLLECTOR_PORT_GRPC=4317 OTEL_COLLECTOR_PORT_HTTP=4318 -OTEL_COLLECTOR_CONFIG=./src/otelcollector/otelcol-config.yml -OTEL_COLLECTOR_CONFIG_EXTRAS=./src/otelcollector/otelcol-config-extras.yml +OTEL_COLLECTOR_CONFIG=./src/otel-collector/otelcol-config.yml +OTEL_COLLECTOR_CONFIG_EXTRAS=./src/otel-collector/otelcol-config-extras.yml OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_GRPC} PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:8080/otlp-http/v1/traces diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml index e027769190..73707abf73 100644 --- a/.github/workflows/label-pr.yml +++ b/.github/workflows/label-pr.yml @@ -30,7 +30,7 @@ jobs: - 'docker-compose*.yml' - 'src/flagd/**' - 'src/grafana/**' - - 'src/otelcollector/**' + - 'src/otel-collector/**' - 'src/prometheus/**' - name: "Add Label: docs-update-required" diff --git a/CHANGELOG.md b/CHANGELOG.md index d23ee07c0f..cf8b07c509 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,8 @@ the release. ([#1827](https://github.com/open-telemetry/opentelemetry-demo/pull/1827)) * [cartservice] - Add Exemplars to Cart Service ([#1830](https://github.com/open-telemetry/opentelemetry-demo/pull/1830)) +* [otel-collector] rename otelcol to otel-collector + ([#1841](https://github.com/open-telemetry/opentelemetry-demo/pull/1841)) ## 1.12.0 diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index 40cbbccc28..7a9042fee9 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -107,7 +107,7 @@ services: depends_on: tracetest-postgres: condition: service_healthy - otelcol: + otel-collector: condition: service_started healthcheck: test: [ "CMD", "wget", "--spider", "localhost:11633" ] diff --git a/docker-compose-tests_include-override.yml b/docker-compose-tests_include-override.yml index 1a115b663f..b9c3c837e0 100644 --- a/docker-compose-tests_include-override.yml +++ b/docker-compose-tests_include-override.yml @@ -3,7 +3,7 @@ services: - otelcol: + otel-collector: command: [ "--config=/etc/otelcol-config.yml", "--config=/etc/otelcol-config-tracetest.yml" ] environment: - ENVOY_PORT diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 1acbf44471..8d8c699dbb 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -45,7 +45,7 @@ services: - OTEL_LOGS_EXPORTER=otlp - OTEL_SERVICE_NAME=adservice depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -76,7 +76,7 @@ services: depends_on: valkey-cart: condition: service_started - otelcol: + otel-collector: condition: service_started logging: *logging @@ -122,7 +122,7 @@ services: condition: service_started shippingservice: condition: service_started - otelcol: + otel-collector: condition: service_started logging: *logging @@ -150,7 +150,7 @@ services: - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES},service.name=currencyservice # The C++ SDK does not support OTEL_SERVICE_NAME depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -176,7 +176,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=emailservice depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -233,7 +233,7 @@ services: condition: service_started shippingservice: condition: service_started - otelcol: + otel-collector: condition: service_started imageprovider: condition: service_started @@ -308,7 +308,7 @@ services: - OTEL_SERVICE_NAME=imageprovider - OTEL_RESOURCE_ATTRIBUTES depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -374,7 +374,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=paymentservice depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -402,7 +402,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=productcatalogservice depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -430,7 +430,7 @@ services: - OTEL_SERVICE_NAME=quoteservice - OTEL_PHP_INTERNAL_METRICS_ENABLED=true depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -463,7 +463,7 @@ services: depends_on: productcatalogservice: condition: service_started - otelcol: + otel-collector: condition: service_started logging: *logging @@ -490,7 +490,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=shippingservice depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -581,9 +581,9 @@ services: logging: *logging # OpenTelemetry Collector - otelcol: + otel-collector: image: ${COLLECTOR_CONTRIB_IMAGE} - container_name: otel-col + container_name: otel-collector deploy: resources: limits: diff --git a/docker-compose.yml b/docker-compose.yml index 984d4c8858..c08f93bfb0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,7 +38,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=accounting depends_on: - otelcol: + otel-collector: condition: service_started kafka: condition: service_healthy @@ -72,7 +72,7 @@ services: - OTEL_LOGS_EXPORTER=otlp - OTEL_SERVICE_NAME=adservice depends_on: - otelcol: + otel-collector: condition: service_started flagd: condition: service_started @@ -106,7 +106,7 @@ services: depends_on: valkey-cart: condition: service_started - otelcol: + otel-collector: condition: service_started flagd: condition: service_started @@ -156,7 +156,7 @@ services: condition: service_started shippingservice: condition: service_started - otelcol: + otel-collector: condition: service_started kafka: condition: service_healthy @@ -188,7 +188,7 @@ services: - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES},service.name=currencyservice # The C++ SDK does not support OTEL_SERVICE_NAME depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -215,7 +215,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=emailservice depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -246,7 +246,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=frauddetectionservice depends_on: - otelcol: + otel-collector: condition: service_started kafka: condition: service_healthy @@ -305,7 +305,7 @@ services: condition: service_started shippingservice: condition: service_started - otelcol: + otel-collector: condition: service_started imageprovider: condition: service_started @@ -384,7 +384,7 @@ services: - OTEL_SERVICE_NAME=imageprovider - OTEL_RESOURCE_ATTRIBUTES depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -451,7 +451,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=paymentservice depends_on: - otelcol: + otel-collector: condition: service_started flagd: condition: service_started @@ -482,7 +482,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=productcatalogservice depends_on: - otelcol: + otel-collector: condition: service_started flagd: condition: service_started @@ -512,7 +512,7 @@ services: - OTEL_SERVICE_NAME=quoteservice - OTEL_PHP_INTERNAL_METRICS_ENABLED=true depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -546,7 +546,7 @@ services: depends_on: productcatalogservice: condition: service_started - otelcol: + otel-collector: condition: service_started flagd: condition: service_started @@ -575,7 +575,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=shippingservice depends_on: - otelcol: + otel-collector: condition: service_started logging: *logging @@ -628,7 +628,7 @@ services: ports: - "${FLAGD_UI_PORT}" depends_on: - otelcol: + otel-collector: condition: service_started flagd: condition: service_started @@ -725,9 +725,9 @@ services: logging: *logging # OpenTelemetry Collector - otelcol: + otel-collector: image: ${COLLECTOR_CONTRIB_IMAGE} - container_name: otel-col + container_name: otel-collector deploy: resources: limits: diff --git a/renovate.json5 b/renovate.json5 index f871b2b08a..e354f5c83f 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -67,8 +67,8 @@ "groupName": "loadgenerator", }, { - "matchFileNames": ["src/otelcollector/**"], - "groupName": "otelcollector", + "matchFileNames": ["src/otel-collector/**"], + "groupName": "otel-collector", }, { "matchFileNames": ["src/paymentservice/**"], diff --git a/src/frontend/pages/_app.tsx b/src/frontend/pages/_app.tsx index e49b51f7c6..67ee8b18ba 100755 --- a/src/frontend/pages/_app.tsx +++ b/src/frontend/pages/_app.tsx @@ -4,7 +4,6 @@ import '../styles/globals.css'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import App, { AppContext, AppProps } from 'next/app'; -import { getCookie } from 'cookies-next'; import CurrencyProvider from '../providers/Currency.provider'; import CartProvider from '../providers/Cart.provider'; import { ThemeProvider } from 'styled-components'; @@ -26,8 +25,7 @@ declare global { } if (typeof window !== 'undefined') { - const collector = getCookie('otelCollectorUrl')?.toString() || ''; - FrontendTracer(collector); + FrontendTracer(); if (window.location) { const session = SessionGateway.getSession(); diff --git a/src/frontend/utils/telemetry/FrontendTracer.ts b/src/frontend/utils/telemetry/FrontendTracer.ts index de9e8a30ec..69681970f1 100644 --- a/src/frontend/utils/telemetry/FrontendTracer.ts +++ b/src/frontend/utils/telemetry/FrontendTracer.ts @@ -19,7 +19,7 @@ const { IS_SYNTHETIC_REQUEST = '', } = typeof window !== 'undefined' ? window.ENV : {}; -const FrontendTracer = (collectorString: string) => { +const FrontendTracer = () => { let resource = new Resource({ [SemanticResourceAttributes.SERVICE_NAME]: NEXT_PUBLIC_OTEL_SERVICE_NAME, }); @@ -33,7 +33,7 @@ const FrontendTracer = (collectorString: string) => { provider.addSpanProcessor( new BatchSpanProcessor( new OTLPTraceExporter({ - url: NEXT_PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT || collectorString || 'http://localhost:4318/v1/traces', + url: NEXT_PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT || 'http://localhost:4318/v1/traces', }), { scheduledDelayMillis: 500, diff --git a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json index 1c574262c7..353cb7c32e 100644 --- a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json +++ b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json @@ -25,7 +25,7 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, - "id": 4, + "id": 3, "links": [], "panels": [ { @@ -3055,13 +3055,13 @@ "type": "prometheus", "uid": "$datasource" }, - "definition": "label_values(otelcol_process_uptime, job)", + "definition": "label_values(otelcol_process_uptime_total,job)", "includeAll": false, "label": "Job", "name": "job", "options": [], "query": { - "query": "label_values(otelcol_process_uptime, job)", + "query": "label_values(otelcol_process_uptime_total,job)", "refId": "StandardVariableQuery" }, "refresh": 1, @@ -3234,6 +3234,6 @@ "timezone": "utc", "title": "OpenTelemetry Collector", "uid": "BKf2sowmj", - "version": 10, + "version": 1, "weekStart": "" } diff --git a/src/otelcollector/otelcol-config-extras.yml b/src/otel-collector/otelcol-config-extras.yml similarity index 100% rename from src/otelcollector/otelcol-config-extras.yml rename to src/otel-collector/otelcol-config-extras.yml diff --git a/src/otelcollector/otelcol-config.yml b/src/otel-collector/otelcol-config.yml similarity index 98% rename from src/otelcollector/otelcol-config.yml rename to src/otel-collector/otelcol-config.yml index e58a454cb6..387d1a0d47 100644 --- a/src/otelcollector/otelcol-config.yml +++ b/src/otel-collector/otelcol-config.yml @@ -83,7 +83,7 @@ receivers: prometheus: config: scrape_configs: - - job_name: 'otelcol' + - job_name: 'otel-collector' scrape_interval: 10s static_configs: - targets: ['0.0.0.0:8888'] diff --git a/src/prometheus/prometheus-config.yaml b/src/prometheus/prometheus-config.yaml index c4404c4840..ecc0d1090c 100644 --- a/src/prometheus/prometheus-config.yaml +++ b/src/prometheus/prometheus-config.yaml @@ -11,4 +11,4 @@ scrape_configs: - job_name: otel-collector static_configs: - targets: - - 'otelcol:8888' + - 'otel-collector:8888' diff --git a/test/tracetesting/tracetest-config.yaml b/test/tracetesting/tracetest-config.yaml index 8cd23c94c4..7f2490368f 100644 --- a/test/tracetesting/tracetest-config.yaml +++ b/test/tracetesting/tracetest-config.yaml @@ -17,7 +17,7 @@ telemetry: exporter: type: collector collector: - endpoint: otelcol:4317 + endpoint: otel-collector:4317 server: telemetry: From fa7847efb691e323236955c6126d486cf2c1b558 Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Mon, 16 Dec 2024 11:00:56 +0100 Subject: [PATCH 032/178] [grafana] Add Exemplars Dashboard (#1836) * [grafana] Add Exemplars Dashboard * changelog * use heatmap and 95th pct chart * decrease user load to 5 * increase Jaeger capacity * use heatmap for histogram * linter fix * Add extra row --------- Co-authored-by: Pierre Tessier --- .env | 2 +- CHANGELOG.md | 2 + docker-compose.yml | 4 +- .../dashboards/demo/exemplars-dashboard.json | 435 ++++++++++++++++++ 4 files changed, 440 insertions(+), 3 deletions(-) create mode 100644 src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json diff --git a/.env b/.env index 8f8668e931..98a71cc3f5 100644 --- a/.env +++ b/.env @@ -94,7 +94,7 @@ IMAGE_PROVIDER_DOCKERFILE=./src/imageprovider/Dockerfile # Load Generator LOCUST_WEB_PORT=8089 -LOCUST_USERS=10 +LOCUST_USERS=5 LOCUST_HOST=http://${FRONTEND_PROXY_ADDR} LOCUST_WEB_HOST=loadgenerator LOCUST_AUTOSTART=true diff --git a/CHANGELOG.md b/CHANGELOG.md index cf8b07c509..986502c12f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,8 @@ the release. ([#1827](https://github.com/open-telemetry/opentelemetry-demo/pull/1827)) * [cartservice] - Add Exemplars to Cart Service ([#1830](https://github.com/open-telemetry/opentelemetry-demo/pull/1830)) +* [grafana] Add Exemplars Dashboard + ([#1836](https://github.com/open-telemetry/opentelemetry-demo/pull/1836)) * [otel-collector] rename otelcol to otel-collector ([#1841](https://github.com/open-telemetry/opentelemetry-demo/pull/1841)) diff --git a/docker-compose.yml b/docker-compose.yml index c08f93bfb0..52d7b9b588 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -689,7 +689,7 @@ services: image: ${JAEGERTRACING_IMAGE} container_name: jaeger command: - - "--memory.max-traces=5000" + - "--memory.max-traces=25000" - "--query.base-path=/jaeger/ui" - "--prometheus.server-url=http://${PROMETHEUS_ADDR}" - "--prometheus.query.normalize-calls=true" @@ -697,7 +697,7 @@ services: deploy: resources: limits: - memory: 400M + memory: 1200M restart: unless-stopped ports: - "${JAEGER_SERVICE_PORT}" # Jaeger UI diff --git a/src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json b/src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json new file mode 100644 index 0000000000..9d8ed82061 --- /dev/null +++ b/src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json @@ -0,0 +1,435 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 5, + "links": [], + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 4, + "panels": [], + "title": "GetCart Exemplars", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 10 + }, + "id": 5, + "interval": "2m", + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "11.3.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": true, + "expr": "histogram_quantile(0.95, sum by(le) (rate(app_cart_get_cart_latency_bucket[$__rate_interval])))", + "fullMetaSearch": false, + "includeNullMetadata": false, + "legendFormat": "p95 GetCart", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "95th Pct Cart GetCart Latency with Exemplars", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + } + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 2, + "interval": "2m", + "options": { + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": false, + "scale": "exponential", + "scheme": "Spectral", + "steps": 64 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false + } + }, + "pluginVersion": "11.3.0", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": true, + "expr": "sum by(le) (rate(app_cart_get_cart_latency_bucket[$__rate_interval]))", + "format": "heatmap", + "fullMetaSearch": false, + "includeNullMetadata": false, + "instant": true, + "legendFormat": "{{le}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "GetCart Latency Heatmap with Exemplars", + "type": "heatmap" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 20 + }, + "id": 3, + "panels": [], + "title": "AddItem Exemplars", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + } + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 21 + }, + "id": 6, + "interval": "2m", + "options": { + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": false, + "scale": "exponential", + "scheme": "Spectral", + "steps": 64 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false + } + }, + "pluginVersion": "11.3.0", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": true, + "expr": "sum by(le) (rate(app_cart_add_item_latency_bucket[$__rate_interval]))", + "format": "heatmap", + "fullMetaSearch": false, + "includeNullMetadata": false, + "instant": true, + "legendFormat": "{{le}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "AddItem Latency Heatmap with Exemplars", + "type": "heatmap" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 1, + "interval": "2m", + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "11.3.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": true, + "expr": "histogram_quantile(0.95, sum by(le) (rate(app_cart_add_item_latency_bucket[$__rate_interval])))", + "fullMetaSearch": false, + "includeNullMetadata": false, + "legendFormat": "p95 AddItem", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "95th Pct Cart AddItem Latency with Exemplars", + "type": "timeseries" + } + ], + "preload": false, + "schemaVersion": 40, + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "browser", + "title": "Cart Service Exemplars", + "uid": "ce6sd46kfkglca", + "version": 1, + "weekStart": "" +} From 90a1bf1ef3a1dab0c1559832b9fc8edf2cbe6d19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 10:07:39 +0100 Subject: [PATCH 033/178] build(deps): bump the go-production-dependencies group across 2 directories with 1 update (#1847) * build(deps): bump the go-production-dependencies group across 2 directories with 1 update Bumps the go-production-dependencies group with 1 update in the /src/checkoutservice directory: google.golang.org/protobuf. Bumps the go-production-dependencies group with 1 update in the /src/productcatalogservice directory: google.golang.org/protobuf. Updates `google.golang.org/protobuf` from 1.35.2 to 1.36.0 Updates `google.golang.org/protobuf` from 1.35.2 to 1.36.0 --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] * chore: update protobuf Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../genproto/oteldemo/demo.pb.go | 375 ++++++++---------- src/checkoutservice/go.mod | 2 +- src/checkoutservice/go.sum | 4 +- .../genproto/oteldemo/demo.pb.go | 375 ++++++++---------- src/productcatalogservice/go.mod | 2 +- src/productcatalogservice/go.sum | 4 +- 6 files changed, 342 insertions(+), 420 deletions(-) diff --git a/src/checkoutservice/genproto/oteldemo/demo.pb.go b/src/checkoutservice/genproto/oteldemo/demo.pb.go index 8cb45c9be8..3cc8230359 100644 --- a/src/checkoutservice/genproto/oteldemo/demo.pb.go +++ b/src/checkoutservice/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc v4.24.4 // source: demo.proto @@ -35,12 +35,11 @@ const ( ) type CartItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProductId string `protobuf:"bytes,1,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` + Quantity int32 `protobuf:"varint,2,opt,name=quantity,proto3" json:"quantity,omitempty"` unknownFields protoimpl.UnknownFields - - ProductId string `protobuf:"bytes,1,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` - Quantity int32 `protobuf:"varint,2,opt,name=quantity,proto3" json:"quantity,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CartItem) Reset() { @@ -88,12 +87,11 @@ func (x *CartItem) GetQuantity() int32 { } type AddItemRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Item *CartItem `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Item *CartItem `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AddItemRequest) Reset() { @@ -141,11 +139,10 @@ func (x *AddItemRequest) GetItem() *CartItem { } type EmptyCartRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EmptyCartRequest) Reset() { @@ -186,11 +183,10 @@ func (x *EmptyCartRequest) GetUserId() string { } type GetCartRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetCartRequest) Reset() { @@ -231,12 +227,11 @@ func (x *GetCartRequest) GetUserId() string { } type Cart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Cart) Reset() { @@ -284,9 +279,9 @@ func (x *Cart) GetItems() []*CartItem { } type Empty struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Empty) Reset() { @@ -320,12 +315,11 @@ func (*Empty) Descriptor() ([]byte, []int) { } type ListRecommendationsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + ProductIds []string `protobuf:"bytes,2,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - ProductIds []string `protobuf:"bytes,2,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListRecommendationsRequest) Reset() { @@ -373,11 +367,10 @@ func (x *ListRecommendationsRequest) GetProductIds() []string { } type ListRecommendationsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProductIds []string `protobuf:"bytes,1,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` unknownFields protoimpl.UnknownFields - - ProductIds []string `protobuf:"bytes,1,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListRecommendationsResponse) Reset() { @@ -418,18 +411,17 @@ func (x *ListRecommendationsResponse) GetProductIds() []string { } type Product struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - Picture string `protobuf:"bytes,4,opt,name=picture,proto3" json:"picture,omitempty"` - PriceUsd *Money `protobuf:"bytes,5,opt,name=price_usd,json=priceUsd,proto3" json:"price_usd,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Picture string `protobuf:"bytes,4,opt,name=picture,proto3" json:"picture,omitempty"` + PriceUsd *Money `protobuf:"bytes,5,opt,name=price_usd,json=priceUsd,proto3" json:"price_usd,omitempty"` // Categories such as "clothing" or "kitchen" that can be used to look up // other related products. - Categories []string `protobuf:"bytes,6,rep,name=categories,proto3" json:"categories,omitempty"` + Categories []string `protobuf:"bytes,6,rep,name=categories,proto3" json:"categories,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Product) Reset() { @@ -505,11 +497,10 @@ func (x *Product) GetCategories() []string { } type ListProductsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"` unknownFields protoimpl.UnknownFields - - Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListProductsResponse) Reset() { @@ -550,11 +541,10 @@ func (x *ListProductsResponse) GetProducts() []*Product { } type GetProductRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetProductRequest) Reset() { @@ -595,11 +585,10 @@ func (x *GetProductRequest) GetId() string { } type SearchProductsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` unknownFields protoimpl.UnknownFields - - Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SearchProductsRequest) Reset() { @@ -640,11 +629,10 @@ func (x *SearchProductsRequest) GetQuery() string { } type SearchProductsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Results []*Product `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` unknownFields protoimpl.UnknownFields - - Results []*Product `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SearchProductsResponse) Reset() { @@ -685,12 +673,11 @@ func (x *SearchProductsResponse) GetResults() []*Product { } type GetQuoteRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetQuoteRequest) Reset() { @@ -738,11 +725,10 @@ func (x *GetQuoteRequest) GetItems() []*CartItem { } type GetQuoteResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + CostUsd *Money `protobuf:"bytes,1,opt,name=cost_usd,json=costUsd,proto3" json:"cost_usd,omitempty"` unknownFields protoimpl.UnknownFields - - CostUsd *Money `protobuf:"bytes,1,opt,name=cost_usd,json=costUsd,proto3" json:"cost_usd,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetQuoteResponse) Reset() { @@ -783,12 +769,11 @@ func (x *GetQuoteResponse) GetCostUsd() *Money { } type ShipOrderRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ShipOrderRequest) Reset() { @@ -836,11 +821,10 @@ func (x *ShipOrderRequest) GetItems() []*CartItem { } type ShipOrderResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TrackingId string `protobuf:"bytes,1,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"` unknownFields protoimpl.UnknownFields - - TrackingId string `protobuf:"bytes,1,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ShipOrderResponse) Reset() { @@ -881,15 +865,14 @@ func (x *ShipOrderResponse) GetTrackingId() string { } type Address struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + StreetAddress string `protobuf:"bytes,1,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + City string `protobuf:"bytes,2,opt,name=city,proto3" json:"city,omitempty"` + State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` + Country string `protobuf:"bytes,4,opt,name=country,proto3" json:"country,omitempty"` + ZipCode string `protobuf:"bytes,5,opt,name=zip_code,json=zipCode,proto3" json:"zip_code,omitempty"` unknownFields protoimpl.UnknownFields - - StreetAddress string `protobuf:"bytes,1,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - City string `protobuf:"bytes,2,opt,name=city,proto3" json:"city,omitempty"` - State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` - Country string `protobuf:"bytes,4,opt,name=country,proto3" json:"country,omitempty"` - ZipCode string `protobuf:"bytes,5,opt,name=zip_code,json=zipCode,proto3" json:"zip_code,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Address) Reset() { @@ -959,10 +942,7 @@ func (x *Address) GetZipCode() string { // Represents an amount of money with its currency type. type Money struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The 3-letter currency code defined in ISO 4217. CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"` // The whole units of the amount. @@ -974,7 +954,9 @@ type Money struct { // If `units` is zero, `nanos` can be positive, zero, or negative. // If `units` is negative, `nanos` must be negative or zero. // For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. - Nanos int32 `protobuf:"varint,3,opt,name=nanos,proto3" json:"nanos,omitempty"` + Nanos int32 `protobuf:"varint,3,opt,name=nanos,proto3" json:"nanos,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Money) Reset() { @@ -1029,12 +1011,11 @@ func (x *Money) GetNanos() int32 { } type GetSupportedCurrenciesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The 3-letter currency code defined in ISO 4217. CurrencyCodes []string `protobuf:"bytes,1,rep,name=currency_codes,json=currencyCodes,proto3" json:"currency_codes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetSupportedCurrenciesResponse) Reset() { @@ -1075,13 +1056,12 @@ func (x *GetSupportedCurrenciesResponse) GetCurrencyCodes() []string { } type CurrencyConversionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - From *Money `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + From *Money `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` // The 3-letter currency code defined in ISO 4217. - ToCode string `protobuf:"bytes,2,opt,name=to_code,json=toCode,proto3" json:"to_code,omitempty"` + ToCode string `protobuf:"bytes,2,opt,name=to_code,json=toCode,proto3" json:"to_code,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CurrencyConversionRequest) Reset() { @@ -1129,14 +1109,13 @@ func (x *CurrencyConversionRequest) GetToCode() string { } type CreditCardInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CreditCardNumber string `protobuf:"bytes,1,opt,name=credit_card_number,json=creditCardNumber,proto3" json:"credit_card_number,omitempty"` - CreditCardCvv int32 `protobuf:"varint,2,opt,name=credit_card_cvv,json=creditCardCvv,proto3" json:"credit_card_cvv,omitempty"` - CreditCardExpirationYear int32 `protobuf:"varint,3,opt,name=credit_card_expiration_year,json=creditCardExpirationYear,proto3" json:"credit_card_expiration_year,omitempty"` - CreditCardExpirationMonth int32 `protobuf:"varint,4,opt,name=credit_card_expiration_month,json=creditCardExpirationMonth,proto3" json:"credit_card_expiration_month,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + CreditCardNumber string `protobuf:"bytes,1,opt,name=credit_card_number,json=creditCardNumber,proto3" json:"credit_card_number,omitempty"` + CreditCardCvv int32 `protobuf:"varint,2,opt,name=credit_card_cvv,json=creditCardCvv,proto3" json:"credit_card_cvv,omitempty"` + CreditCardExpirationYear int32 `protobuf:"varint,3,opt,name=credit_card_expiration_year,json=creditCardExpirationYear,proto3" json:"credit_card_expiration_year,omitempty"` + CreditCardExpirationMonth int32 `protobuf:"varint,4,opt,name=credit_card_expiration_month,json=creditCardExpirationMonth,proto3" json:"credit_card_expiration_month,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreditCardInfo) Reset() { @@ -1198,12 +1177,11 @@ func (x *CreditCardInfo) GetCreditCardExpirationMonth() int32 { } type ChargeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Amount *Money `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + CreditCard *CreditCardInfo `protobuf:"bytes,2,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` unknownFields protoimpl.UnknownFields - - Amount *Money `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - CreditCard *CreditCardInfo `protobuf:"bytes,2,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ChargeRequest) Reset() { @@ -1251,11 +1229,10 @@ func (x *ChargeRequest) GetCreditCard() *CreditCardInfo { } type ChargeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TransactionId string `protobuf:"bytes,1,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` unknownFields protoimpl.UnknownFields - - TransactionId string `protobuf:"bytes,1,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ChargeResponse) Reset() { @@ -1296,12 +1273,11 @@ func (x *ChargeResponse) GetTransactionId() string { } type OrderItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Item *CartItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` + Cost *Money `protobuf:"bytes,2,opt,name=cost,proto3" json:"cost,omitempty"` unknownFields protoimpl.UnknownFields - - Item *CartItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` - Cost *Money `protobuf:"bytes,2,opt,name=cost,proto3" json:"cost,omitempty"` + sizeCache protoimpl.SizeCache } func (x *OrderItem) Reset() { @@ -1349,15 +1325,14 @@ func (x *OrderItem) GetCost() *Money { } type OrderResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OrderId string `protobuf:"bytes,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` - ShippingTrackingId string `protobuf:"bytes,2,opt,name=shipping_tracking_id,json=shippingTrackingId,proto3" json:"shipping_tracking_id,omitempty"` - ShippingCost *Money `protobuf:"bytes,3,opt,name=shipping_cost,json=shippingCost,proto3" json:"shipping_cost,omitempty"` - ShippingAddress *Address `protobuf:"bytes,4,opt,name=shipping_address,json=shippingAddress,proto3" json:"shipping_address,omitempty"` - Items []*OrderItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + OrderId string `protobuf:"bytes,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` + ShippingTrackingId string `protobuf:"bytes,2,opt,name=shipping_tracking_id,json=shippingTrackingId,proto3" json:"shipping_tracking_id,omitempty"` + ShippingCost *Money `protobuf:"bytes,3,opt,name=shipping_cost,json=shippingCost,proto3" json:"shipping_cost,omitempty"` + ShippingAddress *Address `protobuf:"bytes,4,opt,name=shipping_address,json=shippingAddress,proto3" json:"shipping_address,omitempty"` + Items []*OrderItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *OrderResult) Reset() { @@ -1426,12 +1401,11 @@ func (x *OrderResult) GetItems() []*OrderItem { } type SendOrderConfirmationRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + Order *OrderResult `protobuf:"bytes,2,opt,name=order,proto3" json:"order,omitempty"` unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - Order *OrderResult `protobuf:"bytes,2,opt,name=order,proto3" json:"order,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SendOrderConfirmationRequest) Reset() { @@ -1479,15 +1453,14 @@ func (x *SendOrderConfirmationRequest) GetOrder() *OrderResult { } type PlaceOrderRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency,proto3" json:"user_currency,omitempty"` + Address *Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` + Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` + CreditCard *CreditCardInfo `protobuf:"bytes,6,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency,proto3" json:"user_currency,omitempty"` - Address *Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` - Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` - CreditCard *CreditCardInfo `protobuf:"bytes,6,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PlaceOrderRequest) Reset() { @@ -1556,11 +1529,10 @@ func (x *PlaceOrderRequest) GetCreditCard() *CreditCardInfo { } type PlaceOrderResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Order *OrderResult `protobuf:"bytes,1,opt,name=order,proto3" json:"order,omitempty"` unknownFields protoimpl.UnknownFields - - Order *OrderResult `protobuf:"bytes,1,opt,name=order,proto3" json:"order,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PlaceOrderResponse) Reset() { @@ -1601,12 +1573,11 @@ func (x *PlaceOrderResponse) GetOrder() *OrderResult { } type AdRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of important key words from the current page describing the context. - ContextKeys []string `protobuf:"bytes,1,rep,name=context_keys,json=contextKeys,proto3" json:"context_keys,omitempty"` + ContextKeys []string `protobuf:"bytes,1,rep,name=context_keys,json=contextKeys,proto3" json:"context_keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AdRequest) Reset() { @@ -1647,11 +1618,10 @@ func (x *AdRequest) GetContextKeys() []string { } type AdResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Ads []*Ad `protobuf:"bytes,1,rep,name=ads,proto3" json:"ads,omitempty"` unknownFields protoimpl.UnknownFields - - Ads []*Ad `protobuf:"bytes,1,rep,name=ads,proto3" json:"ads,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AdResponse) Reset() { @@ -1692,14 +1662,13 @@ func (x *AdResponse) GetAds() []*Ad { } type Ad struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // url to redirect to when an ad is clicked. RedirectUrl string `protobuf:"bytes,1,opt,name=redirect_url,json=redirectUrl,proto3" json:"redirect_url,omitempty"` // short advertisement text to display. - Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` + Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Ad) Reset() { @@ -1747,13 +1716,12 @@ func (x *Ad) GetText() string { } type Flag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Flag) Reset() { @@ -1808,11 +1776,10 @@ func (x *Flag) GetEnabled() bool { } type GetFlagRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetFlagRequest) Reset() { @@ -1853,11 +1820,10 @@ func (x *GetFlagRequest) GetName() string { } type GetFlagResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` unknownFields protoimpl.UnknownFields - - Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetFlagResponse) Reset() { @@ -1898,13 +1864,12 @@ func (x *GetFlagResponse) GetFlag() *Flag { } type CreateFlagRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateFlagRequest) Reset() { @@ -1959,11 +1924,10 @@ func (x *CreateFlagRequest) GetEnabled() bool { } type CreateFlagResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` unknownFields protoimpl.UnknownFields - - Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateFlagResponse) Reset() { @@ -2004,12 +1968,11 @@ func (x *CreateFlagResponse) GetFlag() *Flag { } type UpdateFlagRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateFlagRequest) Reset() { @@ -2057,9 +2020,9 @@ func (x *UpdateFlagRequest) GetEnabled() bool { } type UpdateFlagResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateFlagResponse) Reset() { @@ -2093,9 +2056,9 @@ func (*UpdateFlagResponse) Descriptor() ([]byte, []int) { } type ListFlagsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListFlagsRequest) Reset() { @@ -2129,11 +2092,10 @@ func (*ListFlagsRequest) Descriptor() ([]byte, []int) { } type ListFlagsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Flag []*Flag `protobuf:"bytes,1,rep,name=flag,proto3" json:"flag,omitempty"` unknownFields protoimpl.UnknownFields - - Flag []*Flag `protobuf:"bytes,1,rep,name=flag,proto3" json:"flag,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListFlagsResponse) Reset() { @@ -2174,11 +2136,10 @@ func (x *ListFlagsResponse) GetFlag() []*Flag { } type DeleteFlagRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DeleteFlagRequest) Reset() { @@ -2219,9 +2180,9 @@ func (x *DeleteFlagRequest) GetName() string { } type DeleteFlagResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteFlagResponse) Reset() { diff --git a/src/checkoutservice/go.mod b/src/checkoutservice/go.mod index 18cda9f418..f796e55451 100644 --- a/src/checkoutservice/go.mod +++ b/src/checkoutservice/go.mod @@ -22,7 +22,7 @@ require ( go.opentelemetry.io/otel/trace v1.33.0 google.golang.org/grpc v1.69.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.35.2 + google.golang.org/protobuf v1.36.0 ) require ( diff --git a/src/checkoutservice/go.sum b/src/checkoutservice/go.sum index 2e9207367a..8559307563 100644 --- a/src/checkoutservice/go.sum +++ b/src/checkoutservice/go.sum @@ -265,8 +265,8 @@ google.golang.org/grpc v1.69.0 h1:quSiOM1GJPmPH5XtU+BCoVXcDVJJAzNcoyfC2cCjGkI= google.golang.org/grpc v1.69.0/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= -google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.0 h1:mjIs9gYtt56AzC4ZaffQuh88TZurBGhIJMBZGSxNerQ= +google.golang.org/protobuf v1.36.0/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/src/productcatalogservice/genproto/oteldemo/demo.pb.go b/src/productcatalogservice/genproto/oteldemo/demo.pb.go index 8cb45c9be8..3cc8230359 100644 --- a/src/productcatalogservice/genproto/oteldemo/demo.pb.go +++ b/src/productcatalogservice/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc v4.24.4 // source: demo.proto @@ -35,12 +35,11 @@ const ( ) type CartItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProductId string `protobuf:"bytes,1,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` + Quantity int32 `protobuf:"varint,2,opt,name=quantity,proto3" json:"quantity,omitempty"` unknownFields protoimpl.UnknownFields - - ProductId string `protobuf:"bytes,1,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` - Quantity int32 `protobuf:"varint,2,opt,name=quantity,proto3" json:"quantity,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CartItem) Reset() { @@ -88,12 +87,11 @@ func (x *CartItem) GetQuantity() int32 { } type AddItemRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Item *CartItem `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Item *CartItem `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AddItemRequest) Reset() { @@ -141,11 +139,10 @@ func (x *AddItemRequest) GetItem() *CartItem { } type EmptyCartRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EmptyCartRequest) Reset() { @@ -186,11 +183,10 @@ func (x *EmptyCartRequest) GetUserId() string { } type GetCartRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetCartRequest) Reset() { @@ -231,12 +227,11 @@ func (x *GetCartRequest) GetUserId() string { } type Cart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Cart) Reset() { @@ -284,9 +279,9 @@ func (x *Cart) GetItems() []*CartItem { } type Empty struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Empty) Reset() { @@ -320,12 +315,11 @@ func (*Empty) Descriptor() ([]byte, []int) { } type ListRecommendationsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + ProductIds []string `protobuf:"bytes,2,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - ProductIds []string `protobuf:"bytes,2,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListRecommendationsRequest) Reset() { @@ -373,11 +367,10 @@ func (x *ListRecommendationsRequest) GetProductIds() []string { } type ListRecommendationsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProductIds []string `protobuf:"bytes,1,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` unknownFields protoimpl.UnknownFields - - ProductIds []string `protobuf:"bytes,1,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListRecommendationsResponse) Reset() { @@ -418,18 +411,17 @@ func (x *ListRecommendationsResponse) GetProductIds() []string { } type Product struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - Picture string `protobuf:"bytes,4,opt,name=picture,proto3" json:"picture,omitempty"` - PriceUsd *Money `protobuf:"bytes,5,opt,name=price_usd,json=priceUsd,proto3" json:"price_usd,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Picture string `protobuf:"bytes,4,opt,name=picture,proto3" json:"picture,omitempty"` + PriceUsd *Money `protobuf:"bytes,5,opt,name=price_usd,json=priceUsd,proto3" json:"price_usd,omitempty"` // Categories such as "clothing" or "kitchen" that can be used to look up // other related products. - Categories []string `protobuf:"bytes,6,rep,name=categories,proto3" json:"categories,omitempty"` + Categories []string `protobuf:"bytes,6,rep,name=categories,proto3" json:"categories,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Product) Reset() { @@ -505,11 +497,10 @@ func (x *Product) GetCategories() []string { } type ListProductsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"` unknownFields protoimpl.UnknownFields - - Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListProductsResponse) Reset() { @@ -550,11 +541,10 @@ func (x *ListProductsResponse) GetProducts() []*Product { } type GetProductRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetProductRequest) Reset() { @@ -595,11 +585,10 @@ func (x *GetProductRequest) GetId() string { } type SearchProductsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` unknownFields protoimpl.UnknownFields - - Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SearchProductsRequest) Reset() { @@ -640,11 +629,10 @@ func (x *SearchProductsRequest) GetQuery() string { } type SearchProductsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Results []*Product `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` unknownFields protoimpl.UnknownFields - - Results []*Product `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SearchProductsResponse) Reset() { @@ -685,12 +673,11 @@ func (x *SearchProductsResponse) GetResults() []*Product { } type GetQuoteRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetQuoteRequest) Reset() { @@ -738,11 +725,10 @@ func (x *GetQuoteRequest) GetItems() []*CartItem { } type GetQuoteResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + CostUsd *Money `protobuf:"bytes,1,opt,name=cost_usd,json=costUsd,proto3" json:"cost_usd,omitempty"` unknownFields protoimpl.UnknownFields - - CostUsd *Money `protobuf:"bytes,1,opt,name=cost_usd,json=costUsd,proto3" json:"cost_usd,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetQuoteResponse) Reset() { @@ -783,12 +769,11 @@ func (x *GetQuoteResponse) GetCostUsd() *Money { } type ShipOrderRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ShipOrderRequest) Reset() { @@ -836,11 +821,10 @@ func (x *ShipOrderRequest) GetItems() []*CartItem { } type ShipOrderResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TrackingId string `protobuf:"bytes,1,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"` unknownFields protoimpl.UnknownFields - - TrackingId string `protobuf:"bytes,1,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ShipOrderResponse) Reset() { @@ -881,15 +865,14 @@ func (x *ShipOrderResponse) GetTrackingId() string { } type Address struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + StreetAddress string `protobuf:"bytes,1,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + City string `protobuf:"bytes,2,opt,name=city,proto3" json:"city,omitempty"` + State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` + Country string `protobuf:"bytes,4,opt,name=country,proto3" json:"country,omitempty"` + ZipCode string `protobuf:"bytes,5,opt,name=zip_code,json=zipCode,proto3" json:"zip_code,omitempty"` unknownFields protoimpl.UnknownFields - - StreetAddress string `protobuf:"bytes,1,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - City string `protobuf:"bytes,2,opt,name=city,proto3" json:"city,omitempty"` - State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` - Country string `protobuf:"bytes,4,opt,name=country,proto3" json:"country,omitempty"` - ZipCode string `protobuf:"bytes,5,opt,name=zip_code,json=zipCode,proto3" json:"zip_code,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Address) Reset() { @@ -959,10 +942,7 @@ func (x *Address) GetZipCode() string { // Represents an amount of money with its currency type. type Money struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The 3-letter currency code defined in ISO 4217. CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"` // The whole units of the amount. @@ -974,7 +954,9 @@ type Money struct { // If `units` is zero, `nanos` can be positive, zero, or negative. // If `units` is negative, `nanos` must be negative or zero. // For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. - Nanos int32 `protobuf:"varint,3,opt,name=nanos,proto3" json:"nanos,omitempty"` + Nanos int32 `protobuf:"varint,3,opt,name=nanos,proto3" json:"nanos,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Money) Reset() { @@ -1029,12 +1011,11 @@ func (x *Money) GetNanos() int32 { } type GetSupportedCurrenciesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The 3-letter currency code defined in ISO 4217. CurrencyCodes []string `protobuf:"bytes,1,rep,name=currency_codes,json=currencyCodes,proto3" json:"currency_codes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetSupportedCurrenciesResponse) Reset() { @@ -1075,13 +1056,12 @@ func (x *GetSupportedCurrenciesResponse) GetCurrencyCodes() []string { } type CurrencyConversionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - From *Money `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + From *Money `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` // The 3-letter currency code defined in ISO 4217. - ToCode string `protobuf:"bytes,2,opt,name=to_code,json=toCode,proto3" json:"to_code,omitempty"` + ToCode string `protobuf:"bytes,2,opt,name=to_code,json=toCode,proto3" json:"to_code,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CurrencyConversionRequest) Reset() { @@ -1129,14 +1109,13 @@ func (x *CurrencyConversionRequest) GetToCode() string { } type CreditCardInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CreditCardNumber string `protobuf:"bytes,1,opt,name=credit_card_number,json=creditCardNumber,proto3" json:"credit_card_number,omitempty"` - CreditCardCvv int32 `protobuf:"varint,2,opt,name=credit_card_cvv,json=creditCardCvv,proto3" json:"credit_card_cvv,omitempty"` - CreditCardExpirationYear int32 `protobuf:"varint,3,opt,name=credit_card_expiration_year,json=creditCardExpirationYear,proto3" json:"credit_card_expiration_year,omitempty"` - CreditCardExpirationMonth int32 `protobuf:"varint,4,opt,name=credit_card_expiration_month,json=creditCardExpirationMonth,proto3" json:"credit_card_expiration_month,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + CreditCardNumber string `protobuf:"bytes,1,opt,name=credit_card_number,json=creditCardNumber,proto3" json:"credit_card_number,omitempty"` + CreditCardCvv int32 `protobuf:"varint,2,opt,name=credit_card_cvv,json=creditCardCvv,proto3" json:"credit_card_cvv,omitempty"` + CreditCardExpirationYear int32 `protobuf:"varint,3,opt,name=credit_card_expiration_year,json=creditCardExpirationYear,proto3" json:"credit_card_expiration_year,omitempty"` + CreditCardExpirationMonth int32 `protobuf:"varint,4,opt,name=credit_card_expiration_month,json=creditCardExpirationMonth,proto3" json:"credit_card_expiration_month,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreditCardInfo) Reset() { @@ -1198,12 +1177,11 @@ func (x *CreditCardInfo) GetCreditCardExpirationMonth() int32 { } type ChargeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Amount *Money `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + CreditCard *CreditCardInfo `protobuf:"bytes,2,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` unknownFields protoimpl.UnknownFields - - Amount *Money `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - CreditCard *CreditCardInfo `protobuf:"bytes,2,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ChargeRequest) Reset() { @@ -1251,11 +1229,10 @@ func (x *ChargeRequest) GetCreditCard() *CreditCardInfo { } type ChargeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TransactionId string `protobuf:"bytes,1,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` unknownFields protoimpl.UnknownFields - - TransactionId string `protobuf:"bytes,1,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ChargeResponse) Reset() { @@ -1296,12 +1273,11 @@ func (x *ChargeResponse) GetTransactionId() string { } type OrderItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Item *CartItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` + Cost *Money `protobuf:"bytes,2,opt,name=cost,proto3" json:"cost,omitempty"` unknownFields protoimpl.UnknownFields - - Item *CartItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` - Cost *Money `protobuf:"bytes,2,opt,name=cost,proto3" json:"cost,omitempty"` + sizeCache protoimpl.SizeCache } func (x *OrderItem) Reset() { @@ -1349,15 +1325,14 @@ func (x *OrderItem) GetCost() *Money { } type OrderResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OrderId string `protobuf:"bytes,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` - ShippingTrackingId string `protobuf:"bytes,2,opt,name=shipping_tracking_id,json=shippingTrackingId,proto3" json:"shipping_tracking_id,omitempty"` - ShippingCost *Money `protobuf:"bytes,3,opt,name=shipping_cost,json=shippingCost,proto3" json:"shipping_cost,omitempty"` - ShippingAddress *Address `protobuf:"bytes,4,opt,name=shipping_address,json=shippingAddress,proto3" json:"shipping_address,omitempty"` - Items []*OrderItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + OrderId string `protobuf:"bytes,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` + ShippingTrackingId string `protobuf:"bytes,2,opt,name=shipping_tracking_id,json=shippingTrackingId,proto3" json:"shipping_tracking_id,omitempty"` + ShippingCost *Money `protobuf:"bytes,3,opt,name=shipping_cost,json=shippingCost,proto3" json:"shipping_cost,omitempty"` + ShippingAddress *Address `protobuf:"bytes,4,opt,name=shipping_address,json=shippingAddress,proto3" json:"shipping_address,omitempty"` + Items []*OrderItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *OrderResult) Reset() { @@ -1426,12 +1401,11 @@ func (x *OrderResult) GetItems() []*OrderItem { } type SendOrderConfirmationRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + Order *OrderResult `protobuf:"bytes,2,opt,name=order,proto3" json:"order,omitempty"` unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - Order *OrderResult `protobuf:"bytes,2,opt,name=order,proto3" json:"order,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SendOrderConfirmationRequest) Reset() { @@ -1479,15 +1453,14 @@ func (x *SendOrderConfirmationRequest) GetOrder() *OrderResult { } type PlaceOrderRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency,proto3" json:"user_currency,omitempty"` + Address *Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` + Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` + CreditCard *CreditCardInfo `protobuf:"bytes,6,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency,proto3" json:"user_currency,omitempty"` - Address *Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` - Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` - CreditCard *CreditCardInfo `protobuf:"bytes,6,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PlaceOrderRequest) Reset() { @@ -1556,11 +1529,10 @@ func (x *PlaceOrderRequest) GetCreditCard() *CreditCardInfo { } type PlaceOrderResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Order *OrderResult `protobuf:"bytes,1,opt,name=order,proto3" json:"order,omitempty"` unknownFields protoimpl.UnknownFields - - Order *OrderResult `protobuf:"bytes,1,opt,name=order,proto3" json:"order,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PlaceOrderResponse) Reset() { @@ -1601,12 +1573,11 @@ func (x *PlaceOrderResponse) GetOrder() *OrderResult { } type AdRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of important key words from the current page describing the context. - ContextKeys []string `protobuf:"bytes,1,rep,name=context_keys,json=contextKeys,proto3" json:"context_keys,omitempty"` + ContextKeys []string `protobuf:"bytes,1,rep,name=context_keys,json=contextKeys,proto3" json:"context_keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AdRequest) Reset() { @@ -1647,11 +1618,10 @@ func (x *AdRequest) GetContextKeys() []string { } type AdResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Ads []*Ad `protobuf:"bytes,1,rep,name=ads,proto3" json:"ads,omitempty"` unknownFields protoimpl.UnknownFields - - Ads []*Ad `protobuf:"bytes,1,rep,name=ads,proto3" json:"ads,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AdResponse) Reset() { @@ -1692,14 +1662,13 @@ func (x *AdResponse) GetAds() []*Ad { } type Ad struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // url to redirect to when an ad is clicked. RedirectUrl string `protobuf:"bytes,1,opt,name=redirect_url,json=redirectUrl,proto3" json:"redirect_url,omitempty"` // short advertisement text to display. - Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` + Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Ad) Reset() { @@ -1747,13 +1716,12 @@ func (x *Ad) GetText() string { } type Flag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Flag) Reset() { @@ -1808,11 +1776,10 @@ func (x *Flag) GetEnabled() bool { } type GetFlagRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetFlagRequest) Reset() { @@ -1853,11 +1820,10 @@ func (x *GetFlagRequest) GetName() string { } type GetFlagResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` unknownFields protoimpl.UnknownFields - - Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetFlagResponse) Reset() { @@ -1898,13 +1864,12 @@ func (x *GetFlagResponse) GetFlag() *Flag { } type CreateFlagRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateFlagRequest) Reset() { @@ -1959,11 +1924,10 @@ func (x *CreateFlagRequest) GetEnabled() bool { } type CreateFlagResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` unknownFields protoimpl.UnknownFields - - Flag *Flag `protobuf:"bytes,1,opt,name=flag,proto3" json:"flag,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateFlagResponse) Reset() { @@ -2004,12 +1968,11 @@ func (x *CreateFlagResponse) GetFlag() *Flag { } type UpdateFlagRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateFlagRequest) Reset() { @@ -2057,9 +2020,9 @@ func (x *UpdateFlagRequest) GetEnabled() bool { } type UpdateFlagResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateFlagResponse) Reset() { @@ -2093,9 +2056,9 @@ func (*UpdateFlagResponse) Descriptor() ([]byte, []int) { } type ListFlagsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListFlagsRequest) Reset() { @@ -2129,11 +2092,10 @@ func (*ListFlagsRequest) Descriptor() ([]byte, []int) { } type ListFlagsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Flag []*Flag `protobuf:"bytes,1,rep,name=flag,proto3" json:"flag,omitempty"` unknownFields protoimpl.UnknownFields - - Flag []*Flag `protobuf:"bytes,1,rep,name=flag,proto3" json:"flag,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListFlagsResponse) Reset() { @@ -2174,11 +2136,10 @@ func (x *ListFlagsResponse) GetFlag() []*Flag { } type DeleteFlagRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DeleteFlagRequest) Reset() { @@ -2219,9 +2180,9 @@ func (x *DeleteFlagRequest) GetName() string { } type DeleteFlagResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteFlagResponse) Reset() { diff --git a/src/productcatalogservice/go.mod b/src/productcatalogservice/go.mod index 85e360d9f2..8a365a5ef8 100644 --- a/src/productcatalogservice/go.mod +++ b/src/productcatalogservice/go.mod @@ -19,7 +19,7 @@ require ( go.opentelemetry.io/otel/trace v1.33.0 google.golang.org/grpc v1.69.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.35.2 + google.golang.org/protobuf v1.36.0 ) require ( diff --git a/src/productcatalogservice/go.sum b/src/productcatalogservice/go.sum index f53c6146fc..6a9bd2031b 100644 --- a/src/productcatalogservice/go.sum +++ b/src/productcatalogservice/go.sum @@ -193,8 +193,8 @@ google.golang.org/grpc v1.69.0 h1:quSiOM1GJPmPH5XtU+BCoVXcDVJJAzNcoyfC2cCjGkI= google.golang.org/grpc v1.69.0/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= -google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.0 h1:mjIs9gYtt56AzC4ZaffQuh88TZurBGhIJMBZGSxNerQ= +google.golang.org/protobuf v1.36.0/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 897bedaea4151d28d5927692aa41b233815ac504 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 14:21:58 +0100 Subject: [PATCH 034/178] build(deps): bump gradle/actions from 4.2.1 to 4.2.2 (#1849) Bumps [gradle/actions](https://github.com/gradle/actions) from 4.2.1 to 4.2.2. - [Release notes](https://github.com/gradle/actions/releases) - [Commits](https://github.com/gradle/actions/compare/v4.2.1...v4.2.2) --- updated-dependencies: - dependency-name: gradle/actions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/gradle-wrapper-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index b0e6d12564..3f608ba7d8 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -15,4 +15,4 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: gradle/actions/wrapper-validation@v4.2.1 + - uses: gradle/actions/wrapper-validation@v4.2.2 From 5dbe83661c7aae9a6e431b8c91718ee3e07dc27c Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Wed, 18 Dec 2024 22:31:34 -0500 Subject: [PATCH 035/178] [quote] rename quoteservice to quote (#1838) * rename quoteservice to quote * rename quoteservice to quote --------- Co-authored-by: Juliano Costa --- .env | 6 +++--- .github/workflows/component-build-images.yml | 4 ++-- CHANGELOG.md | 2 ++ docker-compose-tests.yml | 2 +- docker-compose.minimal.yml | 18 +++++++++--------- docker-compose.yml | 18 +++++++++--------- docker-gen-proto.sh | 2 +- ide-gen-proto.sh | 2 +- renovate.json5 | 4 ++-- .../dashboards/demo/demo-dashboard.json | 2 +- src/{quoteservice => quote}/.dockerignore | 8 ++++---- src/{quoteservice => quote}/.gitignore | 0 src/{quoteservice => quote}/Dockerfile | 6 +++--- src/{quoteservice => quote}/README.md | 10 +++++----- .../app/dependencies.php | 0 src/{quoteservice => quote}/app/routes.php | 0 src/{quoteservice => quote}/app/settings.php | 0 src/{quoteservice => quote}/composer.json | 2 +- src/{quoteservice => quote}/public/index.php | 2 +- .../src/Application/Settings/Settings.php | 0 .../Application/Settings/SettingsInterface.php | 0 src/shippingservice/README.md | 2 +- .../src/shipping_service/quote.rs | 4 ++-- 23 files changed, 48 insertions(+), 46 deletions(-) rename src/{quoteservice => quote}/.dockerignore (90%) rename src/{quoteservice => quote}/.gitignore (100%) rename src/{quoteservice => quote}/Dockerfile (86%) rename src/{quoteservice => quote}/README.md (76%) rename src/{quoteservice => quote}/app/dependencies.php (100%) rename src/{quoteservice => quote}/app/routes.php (100%) rename src/{quoteservice => quote}/app/settings.php (100%) rename src/{quoteservice => quote}/composer.json (95%) rename src/{quoteservice => quote}/public/index.php (98%) rename src/{quoteservice => quote}/src/Application/Settings/Settings.php (100%) rename src/{quoteservice => quote}/src/Application/Settings/SettingsInterface.php (100%) diff --git a/.env b/.env index 98a71cc3f5..4ae44bea79 100644 --- a/.env +++ b/.env @@ -112,9 +112,9 @@ PRODUCT_CATALOG_SERVICE_ADDR=productcatalogservice:${PRODUCT_CATALOG_SERVICE_POR PRODUCT_CATALOG_DOCKERFILE=./src/productcatalogservice/Dockerfile # Quote Service -QUOTE_SERVICE_PORT=8090 -QUOTE_SERVICE_ADDR=http://quoteservice:${QUOTE_SERVICE_PORT} -QUOTE_SERVICE_DOCKERFILE=./src/quoteservice/Dockerfile +QUOTE_PORT=8090 +QUOTE_ADDR=http://quote:${QUOTE_PORT} +QUOTE_DOCKERFILE=./src/quote/Dockerfile # Recommendation Service RECOMMENDATION_SERVICE_PORT=9001 diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 7514267b83..8a6cc6fb2f 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -111,8 +111,8 @@ jobs: tag_suffix: productcatalogservice context: ./ setup-qemu: true - - file: ./src/quoteservice/Dockerfile - tag_suffix: quoteservice + - file: ./src/quote/Dockerfile + tag_suffix: quote context: ./ setup-qemu: true - file: ./src/recommendationservice/Dockerfile diff --git a/CHANGELOG.md b/CHANGELOG.md index 986502c12f..b3cf067591 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,8 @@ the release. ([#1830](https://github.com/open-telemetry/opentelemetry-demo/pull/1830)) * [grafana] Add Exemplars Dashboard ([#1836](https://github.com/open-telemetry/opentelemetry-demo/pull/1836)) +* [quote] rename quoteservice to quote + ([#1838](https://github.com/open-telemetry/opentelemetry-demo/pull/1838)) * [otel-collector] rename otelcol to otel-collector ([#1841](https://github.com/open-telemetry/opentelemetry-demo/pull/1841)) diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index 7a9042fee9..981910d0e7 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -77,7 +77,7 @@ services: condition: service_started productcatalogservice: condition: service_started - quoteservice: + quote: condition: service_started recommendationservice: condition: service_started diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 8d8c699dbb..d6419fd43b 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -227,7 +227,7 @@ services: condition: service_started productcatalogservice: condition: service_started - quoteservice: + quote: condition: service_started recommendationservice: condition: service_started @@ -407,27 +407,27 @@ services: logging: *logging # Quote service - quoteservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-quoteservice + quote: + image: ${IMAGE_NAME}:${DEMO_VERSION}-quote container_name: quote-service build: context: ./ - dockerfile: ${QUOTE_SERVICE_DOCKERFILE} + dockerfile: ${QUOTE_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-quoteservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-quote deploy: resources: limits: memory: 40M restart: unless-stopped ports: - - "${QUOTE_SERVICE_PORT}" + - "${QUOTE_PORT}" environment: - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP} - OTEL_PHP_AUTOLOAD_ENABLED=true - - QUOTE_SERVICE_PORT + - QUOTE_PORT - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=quoteservice + - OTEL_SERVICE_NAME=quote - OTEL_PHP_INTERNAL_METRICS_ENABLED=true depends_on: otel-collector: @@ -485,7 +485,7 @@ services: - "${SHIPPING_SERVICE_PORT}" environment: - SHIPPING_SERVICE_PORT - - QUOTE_SERVICE_ADDR + - QUOTE_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_GRPC} - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=shippingservice diff --git a/docker-compose.yml b/docker-compose.yml index 52d7b9b588..7d28f695ff 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -299,7 +299,7 @@ services: condition: service_started productcatalogservice: condition: service_started - quoteservice: + quote: condition: service_started recommendationservice: condition: service_started @@ -489,27 +489,27 @@ services: logging: *logging # Quote service - quoteservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-quoteservice + quote: + image: ${IMAGE_NAME}:${DEMO_VERSION}-quote container_name: quote-service build: context: ./ - dockerfile: ${QUOTE_SERVICE_DOCKERFILE} + dockerfile: ${QUOTE_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-quoteservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-quote deploy: resources: limits: memory: 40M restart: unless-stopped ports: - - "${QUOTE_SERVICE_PORT}" + - "${QUOTE_PORT}" environment: - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP} - OTEL_PHP_AUTOLOAD_ENABLED=true - - QUOTE_SERVICE_PORT + - QUOTE_PORT - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=quoteservice + - OTEL_SERVICE_NAME=quote - OTEL_PHP_INTERNAL_METRICS_ENABLED=true depends_on: otel-collector: @@ -570,7 +570,7 @@ services: - "${SHIPPING_SERVICE_PORT}" environment: - SHIPPING_SERVICE_PORT - - QUOTE_SERVICE_ADDR + - QUOTE_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_GRPC} - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=shippingservice diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index b90cab8413..ea72d2bc34 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -30,6 +30,6 @@ gen_proto_go checkoutservice #gen_proto_ts frontend #gen_proto_js paymentservice gen_proto_go productcatalogservice -#gen_proto_php quoteservice +#gen_proto_php quote gen_proto_python recommendationservice #gen_proto_rust shippingservice diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index a6e71ebb60..5390357915 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -74,6 +74,6 @@ gen_proto_go checkoutservice gen_proto_ts frontend gen_proto_js paymentservice gen_proto_go productcatalogservice -# gen_proto_php quoteservice +# gen_proto_php quote gen_proto_python recommendationservice gen_proto_rust shippingservice diff --git a/renovate.json5 b/renovate.json5 index e354f5c83f..3999739c76 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -83,8 +83,8 @@ "groupName": "prometheus", }, { - "matchFileNames": ["src/quoteservice/**"], - "groupName": "quoteservice", + "matchFileNames": ["src/quote/**"], + "groupName": "quote", }, { "matchFileNames": ["src/recommendationservice/**"], diff --git a/src/grafana/provisioning/dashboards/demo/demo-dashboard.json b/src/grafana/provisioning/dashboards/demo/demo-dashboard.json index bd0b37fba2..e32fc40cbb 100644 --- a/src/grafana/provisioning/dashboards/demo/demo-dashboard.json +++ b/src/grafana/provisioning/dashboards/demo/demo-dashboard.json @@ -1022,7 +1022,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "rate(otel_trace_span_processor_spans{job=\"opentelemetry-demo/quoteservice\"}[2m])*120", + "expr": "rate(otel_trace_span_processor_spans{job=\"opentelemetry-demo/quote\"}[2m])*120", "interval": "2m", "legendFormat": "{{state}}", "range": true, diff --git a/src/quoteservice/.dockerignore b/src/quote/.dockerignore similarity index 90% rename from src/quoteservice/.dockerignore rename to src/quote/.dockerignore index 6a2aedc09f..98a3aae96b 100644 --- a/src/quoteservice/.dockerignore +++ b/src/quote/.dockerignore @@ -1,4 +1,4 @@ -.dockerignore -.idea -Dockerfile -vendor +.dockerignore +.idea +Dockerfile +vendor diff --git a/src/quoteservice/.gitignore b/src/quote/.gitignore similarity index 100% rename from src/quoteservice/.gitignore rename to src/quote/.gitignore diff --git a/src/quoteservice/Dockerfile b/src/quote/Dockerfile similarity index 86% rename from src/quoteservice/Dockerfile rename to src/quote/Dockerfile index f26f192b84..5495451ff7 100644 --- a/src/quoteservice/Dockerfile +++ b/src/quote/Dockerfile @@ -15,12 +15,12 @@ RUN chmod +x /usr/local/bin/install-php-extensions \ WORKDIR /var/www CMD ["php", "public/index.php"] USER www-data -EXPOSE ${QUOTE_SERVICE_PORT} +EXPOSE ${QUOTE_PORT} FROM composer:2.7 AS vendor WORKDIR /tmp/ -COPY ./src/quoteservice/composer.json . +COPY ./src/quote/composer.json . RUN composer install \ --ignore-platform-reqs \ @@ -32,4 +32,4 @@ RUN composer install \ FROM base AS final COPY --from=vendor /tmp/vendor/ ./vendor/ -COPY ./src/quoteservice/ /var/www +COPY ./src/quote/ /var/www diff --git a/src/quoteservice/README.md b/src/quote/README.md similarity index 76% rename from src/quoteservice/README.md rename to src/quote/README.md index e138442bd7..e1deaffee5 100644 --- a/src/quoteservice/README.md +++ b/src/quote/README.md @@ -11,7 +11,7 @@ To build the quote service, run the following from root directory of opentelemetry-demo ```sh -docker compose build quoteservice +docker compose build quote ``` ## Run the service @@ -19,7 +19,7 @@ docker compose build quoteservice Execute the below command to run the service. ```sh -docker compose up quoteservice +docker compose up quote ``` In order to get traffic into the service you have to deploy @@ -32,9 +32,9 @@ Please follow the root README to do so. To build and run the quote service locally: ```sh -docker build src/quoteservice --target base -t quoteservice -cd src/quoteservice -docker run --rm -it -v $(pwd):/var/www -e QUOTE_SERVICE_PORT=8999 -p "8999:8999" quoteservice +docker build src/quote --target base -t quote +cd src/quote +docker run --rm -it -v $(pwd):/var/www -e QUOTE_PORT=8999 -p "8999:8999" quote ``` Then, send some curl requests: diff --git a/src/quoteservice/app/dependencies.php b/src/quote/app/dependencies.php similarity index 100% rename from src/quoteservice/app/dependencies.php rename to src/quote/app/dependencies.php diff --git a/src/quoteservice/app/routes.php b/src/quote/app/routes.php similarity index 100% rename from src/quoteservice/app/routes.php rename to src/quote/app/routes.php diff --git a/src/quoteservice/app/settings.php b/src/quote/app/settings.php similarity index 100% rename from src/quoteservice/app/settings.php rename to src/quote/app/settings.php diff --git a/src/quoteservice/composer.json b/src/quote/composer.json similarity index 95% rename from src/quoteservice/composer.json rename to src/quote/composer.json index ad22802f27..689515431a 100644 --- a/src/quoteservice/composer.json +++ b/src/quote/composer.json @@ -1,5 +1,5 @@ { - "name": "openteletry-demo/quoteservice", + "name": "openteletry-demo/quote", "description": "Quote Service part of OpenTelemetry Demo", "license": "Apache-2.0", "require": { diff --git a/src/quoteservice/public/index.php b/src/quote/public/index.php similarity index 98% rename from src/quoteservice/public/index.php rename to src/quote/public/index.php index b13085342e..fd02e5b0c1 100644 --- a/src/quoteservice/public/index.php +++ b/src/quote/public/index.php @@ -87,7 +87,7 @@ return $response; }); -$address = '0.0.0.0:' . getenv('QUOTE_SERVICE_PORT'); +$address = '0.0.0.0:' . getenv('QUOTE_PORT'); $socket = new SocketServer($address); $server->listen($socket); diff --git a/src/quoteservice/src/Application/Settings/Settings.php b/src/quote/src/Application/Settings/Settings.php similarity index 100% rename from src/quoteservice/src/Application/Settings/Settings.php rename to src/quote/src/Application/Settings/Settings.php diff --git a/src/quoteservice/src/Application/Settings/SettingsInterface.php b/src/quote/src/Application/Settings/SettingsInterface.php similarity index 100% rename from src/quoteservice/src/Application/Settings/SettingsInterface.php rename to src/quote/src/Application/Settings/SettingsInterface.php diff --git a/src/shippingservice/README.md b/src/shippingservice/README.md index ccc6e983b6..fa49736038 100644 --- a/src/shippingservice/README.md +++ b/src/shippingservice/README.md @@ -1,6 +1,6 @@ # Shipping Service -The Shipping service queries `quoteservice` for price quote, provides tracking IDs, +The Shipping service queries `quote` for price quote, provides tracking IDs, and the impression of order fulfillment & shipping processes. ## Local diff --git a/src/shippingservice/src/shipping_service/quote.rs b/src/shippingservice/src/shipping_service/quote.rs index 2ffdb8378e..49ac21fac0 100644 --- a/src/shippingservice/src/shipping_service/quote.rs +++ b/src/shippingservice/src/shipping_service/quote.rs @@ -40,8 +40,8 @@ pub async fn create_quote_from_count(count: u32) -> Result async fn request_quote(count: u32) -> Result> { let quote_service_addr: String = format!( "{}{}", - env::var("QUOTE_SERVICE_ADDR") - .unwrap_or_else(|_| "http://quoteservice:8090".to_string()) + env::var("QUOTE_ADDR") + .unwrap_or_else(|_| "http://quote:8090".to_string()) .parse::() .expect("Invalid quote service address"), "/getquote" From d6efe7f00b7829ffd9d5b5a7a8a945ffac19d3ae Mon Sep 17 00:00:00 2001 From: Sozhan Natarajan Date: Thu, 19 Dec 2024 10:44:19 +0530 Subject: [PATCH 036/178] [ad] rename adService to ad (#1832) * [ad] rename adservice to ad * rename adservice to ad * chore: add line break - review findings * chore: add line break --------- Co-authored-by: Pierre Tessier Co-authored-by: Juliano Costa --- .env | 6 +- .github/component_owners.yml | 2 +- .github/workflows/component-build-images.yml | 4 +- CHANGELOG.md | 2 + CONTRIBUTING.md | 2 +- docker-compose-tests.yml | 4 +- docker-compose.minimal.yml | 20 +- docker-compose.yml | 20 +- docker-gen-proto.sh | 2 +- ide-gen-proto.sh | 2 +- renovate.json5 | 4 +- src/{adservice => ad}/.java-version | 0 src/{adservice => ad}/Dockerfile | 12 +- src/{adservice => ad}/README.md | 8 +- src/{adservice => ad}/build.gradle | 8 +- .../gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 src/{adservice => ad}/gradlew | 0 src/{adservice => ad}/gradlew.bat | 185 +++++++++--------- src/{adservice => ad}/settings.gradle | 0 .../src/main/java/oteldemo/AdService.java | 22 +-- .../java/oteldemo/problempattern/CPULoad.java | 0 .../GarbageCollectionTrigger.java | 0 .../oteldemo/problempattern/MemoryUtils.java | 0 .../src/main/resources/log4j2.xml | 0 src/flagd/demo.flagd.json | 6 +- src/frontend/gateways/rpc/Ad.gateway.ts | 4 +- src/frontend/next.config.js | 4 +- test/tracetesting/adservice/get.yaml | 2 +- test/tracetesting/run.bash | 6 +- 30 files changed, 165 insertions(+), 160 deletions(-) rename src/{adservice => ad}/.java-version (100%) rename src/{adservice => ad}/Dockerfile (80%) rename src/{adservice => ad}/README.md (78%) rename src/{adservice => ad}/build.gradle (97%) rename src/{adservice => ad}/gradle/wrapper/gradle-wrapper.jar (100%) rename src/{adservice => ad}/gradle/wrapper/gradle-wrapper.properties (100%) rename src/{adservice => ad}/gradlew (100%) mode change 100755 => 100644 rename src/{adservice => ad}/gradlew.bat (96%) rename src/{adservice => ad}/settings.gradle (100%) rename src/{adservice => ad}/src/main/java/oteldemo/AdService.java (92%) rename src/{adservice => ad}/src/main/java/oteldemo/problempattern/CPULoad.java (100%) rename src/{adservice => ad}/src/main/java/oteldemo/problempattern/GarbageCollectionTrigger.java (100%) rename src/{adservice => ad}/src/main/java/oteldemo/problempattern/MemoryUtils.java (100%) rename src/{adservice => ad}/src/main/resources/log4j2.xml (100%) diff --git a/.env b/.env index 4ae44bea79..465d920a1c 100644 --- a/.env +++ b/.env @@ -49,9 +49,9 @@ OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=cumulative ACCOUNTING_DOCKERFILE=./src/accounting/Dockerfile # Ad Service -AD_SERVICE_PORT=9555 -AD_SERVICE_ADDR=adservice:${AD_SERVICE_PORT} -AD_SERVICE_DOCKERFILE=./src/adservice/Dockerfile +AD_PORT=9555 +AD_ADDR=ad:${AD_PORT} +AD_DOCKERFILE=./src/ad/Dockerfile # Cart Service CART_SERVICE_PORT=7070 diff --git a/.github/component_owners.yml b/.github/component_owners.yml index 615e801fa8..b96dd2f31a 100644 --- a/.github/component_owners.yml +++ b/.github/component_owners.yml @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 # this file is used by .github/workflows/assign-reviewers.yml components: - src/adservice: + src/ad: - jack-berg - mateuszrzeszutek - trask diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 8a6cc6fb2f..ce985308e1 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -55,8 +55,8 @@ jobs: tag_suffix: accounting context: ./ setup-qemu: true - - file: ./src/adservice/Dockerfile - tag_suffix: adservice + - file: ./src/ad/Dockerfile + tag_suffix: ad context: ./ setup-qemu: true - file: ./src/cartservice/src/Dockerfile diff --git a/CHANGELOG.md b/CHANGELOG.md index b3cf067591..608b7ac136 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,8 @@ the release. ([#1838](https://github.com/open-telemetry/opentelemetry-demo/pull/1838)) * [otel-collector] rename otelcol to otel-collector ([#1841](https://github.com/open-telemetry/opentelemetry-demo/pull/1841)) +* [ad] rename adservice to ad + ([#1827](https://github.com/open-telemetry/opentelemetry-demo/pull/1832)) ## 1.12.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 96b8433949..31db3038e9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -73,7 +73,7 @@ cd opentelemetry-demo/ - Navigate to the Java Ad Service folder to install and update Gradle: ```shell -cd .\src\adservice\ +cd .\src\ad\ .\gradlew installDist .\gradlew wrapper --gradle-version 7.4.2 ``` diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index 981910d0e7..1a4d7577c4 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -37,7 +37,7 @@ services: args: TRACETEST_IMAGE_VERSION: ${TRACETEST_IMAGE_VERSION} environment: - - AD_SERVICE_ADDR + - AD_ADDR - CART_SERVICE_ADDR - CHECKOUT_SERVICE_ADDR - CURRENCY_SERVICE_ADDR @@ -59,7 +59,7 @@ services: # adding demo services as dependencies accounting: condition: service_started - adservice: + ad: condition: service_started cartservice: condition: service_started diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index d6419fd43b..b9b73a7707 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -19,14 +19,14 @@ services: # ****************** # AdService - adservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-adservice - container_name: ad-service + ad: + image: ${IMAGE_NAME}:${DEMO_VERSION}-ad + container_name: ad build: context: ./ - dockerfile: ${AD_SERVICE_DOCKERFILE} + dockerfile: ${AD_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-adservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-ad args: OTEL_JAVA_AGENT_VERSION: ${OTEL_JAVA_AGENT_VERSION} deploy: @@ -35,15 +35,15 @@ services: memory: 300M restart: unless-stopped ports: - - "${AD_SERVICE_PORT}" + - "${AD_PORT}" environment: - - AD_SERVICE_PORT + - AD_PORT - FLAGD_HOST - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP} - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - OTEL_LOGS_EXPORTER=otlp - - OTEL_SERVICE_NAME=adservice + - OTEL_SERVICE_NAME=ad depends_on: otel-collector: condition: service_started @@ -199,7 +199,7 @@ services: environment: - PORT=${FRONTEND_PORT} - FRONTEND_ADDR - - AD_SERVICE_ADDR + - AD_ADDR - CART_SERVICE_ADDR - CHECKOUT_SERVICE_ADDR - CURRENCY_SERVICE_ADDR @@ -217,7 +217,7 @@ services: - FLAGD_HOST - FLAGD_PORT depends_on: - adservice: + ad: condition: service_started cartservice: condition: service_started diff --git a/docker-compose.yml b/docker-compose.yml index 7d28f695ff..cde7390471 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -45,14 +45,14 @@ services: logging: *logging # AdService - adservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-adservice - container_name: ad-service + ad: + image: ${IMAGE_NAME}:${DEMO_VERSION}-ad + container_name: ad build: context: ./ - dockerfile: ${AD_SERVICE_DOCKERFILE} + dockerfile: ${AD_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-adservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-ad args: OTEL_JAVA_AGENT_VERSION: ${OTEL_JAVA_AGENT_VERSION} deploy: @@ -61,16 +61,16 @@ services: memory: 300M restart: unless-stopped ports: - - "${AD_SERVICE_PORT}" + - "${AD_PORT}" environment: - - AD_SERVICE_PORT + - AD_PORT - FLAGD_HOST - FLAGD_PORT - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP} - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - OTEL_LOGS_EXPORTER=otlp - - OTEL_SERVICE_NAME=adservice + - OTEL_SERVICE_NAME=ad depends_on: otel-collector: condition: service_started @@ -271,7 +271,7 @@ services: environment: - PORT=${FRONTEND_PORT} - FRONTEND_ADDR - - AD_SERVICE_ADDR + - AD_ADDR - CART_SERVICE_ADDR - CHECKOUT_SERVICE_ADDR - CURRENCY_SERVICE_ADDR @@ -289,7 +289,7 @@ services: - FLAGD_HOST - FLAGD_PORT depends_on: - adservice: + ad: condition: service_started cartservice: condition: service_started diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index ea72d2bc34..d75adb8aac 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -22,7 +22,7 @@ gen_proto_python() { } #gen_proto_dotnet accounting -#gen_proto_java adservice +#gen_proto_java ad #gen_proto_dotnet cartservice gen_proto_go checkoutservice #gen_proto_cpp currencyservice diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index 5390357915..bb4dc4e069 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -66,7 +66,7 @@ gen_proto_ts() { } gen_proto_dotnet accounting -# gen_proto_java adservice +# gen_proto_java ad gen_proto_dotnet cartservice gen_proto_go checkoutservice # gen_proto_cpp currencyservice diff --git a/renovate.json5 b/renovate.json5 index 3999739c76..2348ad4eef 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -19,8 +19,8 @@ "groupName": "accounting", }, { - "matchFileNames": ["src/adservice/**"], - "groupName": "adservice", + "matchFileNames": ["src/ad/**"], + "groupName": "ad", }, { "matchFileNames": ["src/cartservice/**"], diff --git a/src/adservice/.java-version b/src/ad/.java-version similarity index 100% rename from src/adservice/.java-version rename to src/ad/.java-version diff --git a/src/adservice/Dockerfile b/src/ad/Dockerfile similarity index 80% rename from src/adservice/Dockerfile rename to src/ad/Dockerfile index 36c6b207fb..1e8cd71d7a 100644 --- a/src/adservice/Dockerfile +++ b/src/ad/Dockerfile @@ -6,14 +6,16 @@ FROM --platform=${BUILDPLATFORM} eclipse-temurin:21-jdk AS builder WORKDIR /usr/src/app/ -COPY ./src/adservice/gradlew* ./src/adservice/settings.gradle* ./src/adservice/build.gradle ./ -COPY ./src/adservice/gradle ./gradle +COPY ./src/ad/gradlew* ./src/ad/settings.gradle* ./src/ad/build.gradle ./ +COPY ./src/ad/gradle ./gradle +RUN chmod +x ./gradlew RUN ./gradlew RUN ./gradlew downloadRepos -COPY ./src/adservice/ ./ +COPY ./src/ad/ ./ COPY ./pb/ ./proto +RUN chmod +x ./gradlew RUN ./gradlew installDist -PprotoSourceDir=./proto # ----------------------------------------------------------------------------- @@ -27,5 +29,5 @@ COPY --from=builder /usr/src/app/ ./ ADD --chmod=644 https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v$OTEL_JAVA_AGENT_VERSION/opentelemetry-javaagent.jar /usr/src/app/opentelemetry-javaagent.jar ENV JAVA_TOOL_OPTIONS=-javaagent:/usr/src/app/opentelemetry-javaagent.jar -EXPOSE ${AD_SERVICE_PORT} -ENTRYPOINT [ "./build/install/opentelemetry-demo-ad-service/bin/AdService" ] +EXPOSE ${AD_PORT} +ENTRYPOINT [ "./build/install/opentelemetry-demo-ad-service/bin/Ad" ] diff --git a/src/adservice/README.md b/src/ad/README.md similarity index 78% rename from src/adservice/README.md rename to src/ad/README.md index 6e94149f6d..e3865d16b9 100644 --- a/src/adservice/README.md +++ b/src/ad/README.md @@ -14,14 +14,14 @@ To build Ad Service, run: ``` It will create an executable script -`src/adservice/build/install/oteldemo/bin/AdService`. +`src/ad/build/install/oteldemo/bin/Ad`. To run the Ad Service: ```sh -export AD_SERVICE_PORT=8080 +export AD_PORT=8080 export FEATURE_FLAG_GRPC_SERVICE_ADDR=featureflagservice:50053 -./build/install/opentelemetry-demo-ad-service/bin/AdService +./build/install/opentelemetry-demo-ad-service/bin/Ad ``` ### Upgrading Gradle @@ -37,5 +37,5 @@ If you need to upgrade the version of gradle then run From the root of `opentelemetry-demo`, run: ```sh -docker build --file ./src/adservice/Dockerfile ./ +docker build --file ./src/ad/Dockerfile ./ ``` diff --git a/src/adservice/build.gradle b/src/ad/build.gradle similarity index 97% rename from src/adservice/build.gradle rename to src/ad/build.gradle index 3fe9cb7681..0af438a3d4 100644 --- a/src/adservice/build.gradle +++ b/src/ad/build.gradle @@ -13,7 +13,7 @@ repositories { } description = 'Ad Service' -group = "adservice" +group = "ad" version = "0.1.0-SNAPSHOT" def opentelemetryVersion = "1.40.0" @@ -129,14 +129,14 @@ task downloadRepos(type: Copy) { into offlineCompile } -task adService(type: CreateStartScripts) { +task ad(type: CreateStartScripts) { mainClass.set('oteldemo.AdService') - applicationName = 'AdService' + applicationName = 'Ad' outputDir = new File(project.buildDir, 'tmp') classpath = startScripts.classpath } applicationDistribution.into('bin') { - from(adService) + from(ad) fileMode = 0755 } diff --git a/src/adservice/gradle/wrapper/gradle-wrapper.jar b/src/ad/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from src/adservice/gradle/wrapper/gradle-wrapper.jar rename to src/ad/gradle/wrapper/gradle-wrapper.jar diff --git a/src/adservice/gradle/wrapper/gradle-wrapper.properties b/src/ad/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from src/adservice/gradle/wrapper/gradle-wrapper.properties rename to src/ad/gradle/wrapper/gradle-wrapper.properties diff --git a/src/adservice/gradlew b/src/ad/gradlew old mode 100755 new mode 100644 similarity index 100% rename from src/adservice/gradlew rename to src/ad/gradlew diff --git a/src/adservice/gradlew.bat b/src/ad/gradlew.bat similarity index 96% rename from src/adservice/gradlew.bat rename to src/ad/gradlew.bat index 6689b85bee..d45ec1e591 100644 --- a/src/adservice/gradlew.bat +++ b/src/ad/gradlew.bat @@ -1,92 +1,93 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega + diff --git a/src/adservice/settings.gradle b/src/ad/settings.gradle similarity index 100% rename from src/adservice/settings.gradle rename to src/ad/settings.gradle diff --git a/src/adservice/src/main/java/oteldemo/AdService.java b/src/ad/src/main/java/oteldemo/AdService.java similarity index 92% rename from src/adservice/src/main/java/oteldemo/AdService.java rename to src/ad/src/main/java/oteldemo/AdService.java index c55b663bf1..d7f2688e66 100644 --- a/src/adservice/src/main/java/oteldemo/AdService.java +++ b/src/ad/src/main/java/oteldemo/AdService.java @@ -59,8 +59,8 @@ public final class AdService { private HealthStatusManager healthMgr; private static final AdService service = new AdService(); - private static final Tracer tracer = GlobalOpenTelemetry.getTracer("adservice"); - private static final Meter meter = GlobalOpenTelemetry.getMeter("adservice"); + private static final Tracer tracer = GlobalOpenTelemetry.getTracer("ad"); + private static final Meter meter = GlobalOpenTelemetry.getMeter("ad"); private static final LongCounter adRequestsCounter = meter @@ -76,11 +76,11 @@ public final class AdService { private void start() throws IOException { int port = Integer.parseInt( - Optional.ofNullable(System.getenv("AD_SERVICE_PORT")) + Optional.ofNullable(System.getenv("AD_PORT")) .orElseThrow( () -> new IllegalStateException( - "environment vars: AD_SERVICE_PORT must not be null"))); + "environment vars: AD_PORT must not be null"))); healthMgr = new HealthStatusManager(); // Create a flagd instance with OpenTelemetry @@ -132,9 +132,9 @@ private enum AdResponseType { private static class AdServiceImpl extends oteldemo.AdServiceGrpc.AdServiceImplBase { - private static final String ADSERVICE_FAILURE = "adServiceFailure"; - private static final String ADSERVICE_MANUAL_GC_FEATURE_FLAG = "adServiceManualGc"; - private static final String ADSERVICE_HIGH_CPU_FEATURE_FLAG = "adServiceHighCpu"; + private static final String AD_FAILURE = "adFailure"; + private static final String AD_MANUAL_GC_FEATURE_FLAG = "adManualGc"; + private static final String AD_HIGH_CPU_FEATURE_FLAG = "adHighCpu"; private static final Client ffClient = OpenFeatureAPI.getInstance().getClient(); private AdServiceImpl() {} @@ -169,7 +169,7 @@ public void getAds(AdRequest req, StreamObserver responseObserver) { } CPULoad cpuload = CPULoad.getInstance(); - cpuload.execute(ffClient.getBooleanValue(ADSERVICE_HIGH_CPU_FEATURE_FLAG, false, evaluationContext)); + cpuload.execute(ffClient.getBooleanValue(AD_HIGH_CPU_FEATURE_FLAG, false, evaluationContext)); span.setAttribute("app.ads.contextKeys", req.getContextKeysList().toString()); span.setAttribute("app.ads.contextKeys.count", req.getContextKeysCount()); @@ -202,12 +202,12 @@ public void getAds(AdRequest req, StreamObserver responseObserver) { adRequestTypeKey, adRequestType.name(), adResponseTypeKey, adResponseType.name())); // Throw 1/10 of the time to simulate a failure when the feature flag is enabled - if (ffClient.getBooleanValue(ADSERVICE_FAILURE, false, evaluationContext) && random.nextInt(10) == 0) { + if (ffClient.getBooleanValue(AD_FAILURE, false, evaluationContext) && random.nextInt(10) == 0) { throw new StatusRuntimeException(Status.UNAVAILABLE); } - if (ffClient.getBooleanValue(ADSERVICE_MANUAL_GC_FEATURE_FLAG, false, evaluationContext)) { - logger.warn("Feature Flag " + ADSERVICE_MANUAL_GC_FEATURE_FLAG + " enabled, performing a manual gc now"); + if (ffClient.getBooleanValue(AD_MANUAL_GC_FEATURE_FLAG, false, evaluationContext)) { + logger.warn("Feature Flag " + AD_MANUAL_GC_FEATURE_FLAG + " enabled, performing a manual gc now"); GarbageCollectionTrigger gct = new GarbageCollectionTrigger(); gct.doExecute(); } diff --git a/src/adservice/src/main/java/oteldemo/problempattern/CPULoad.java b/src/ad/src/main/java/oteldemo/problempattern/CPULoad.java similarity index 100% rename from src/adservice/src/main/java/oteldemo/problempattern/CPULoad.java rename to src/ad/src/main/java/oteldemo/problempattern/CPULoad.java diff --git a/src/adservice/src/main/java/oteldemo/problempattern/GarbageCollectionTrigger.java b/src/ad/src/main/java/oteldemo/problempattern/GarbageCollectionTrigger.java similarity index 100% rename from src/adservice/src/main/java/oteldemo/problempattern/GarbageCollectionTrigger.java rename to src/ad/src/main/java/oteldemo/problempattern/GarbageCollectionTrigger.java diff --git a/src/adservice/src/main/java/oteldemo/problempattern/MemoryUtils.java b/src/ad/src/main/java/oteldemo/problempattern/MemoryUtils.java similarity index 100% rename from src/adservice/src/main/java/oteldemo/problempattern/MemoryUtils.java rename to src/ad/src/main/java/oteldemo/problempattern/MemoryUtils.java diff --git a/src/adservice/src/main/resources/log4j2.xml b/src/ad/src/main/resources/log4j2.xml similarity index 100% rename from src/adservice/src/main/resources/log4j2.xml rename to src/ad/src/main/resources/log4j2.xml diff --git a/src/flagd/demo.flagd.json b/src/flagd/demo.flagd.json index 6af1dd51a7..26b6b4bd0d 100644 --- a/src/flagd/demo.flagd.json +++ b/src/flagd/demo.flagd.json @@ -19,7 +19,7 @@ }, "defaultVariant": "off" }, - "adServiceManualGc": { + "adManualGc": { "description": "Triggers full manual garbage collections in the ad service", "state": "ENABLED", "variants": { @@ -28,7 +28,7 @@ }, "defaultVariant": "off" }, - "adServiceHighCpu": { + "adHighCpu": { "description": "Triggers high cpu load in the ad service", "state": "ENABLED", "variants": { @@ -37,7 +37,7 @@ }, "defaultVariant": "off" }, - "adServiceFailure": { + "adFailure": { "description": "Fail ad service", "state": "ENABLED", "variants": { diff --git a/src/frontend/gateways/rpc/Ad.gateway.ts b/src/frontend/gateways/rpc/Ad.gateway.ts index 517a291fc1..1fd72442c6 100644 --- a/src/frontend/gateways/rpc/Ad.gateway.ts +++ b/src/frontend/gateways/rpc/Ad.gateway.ts @@ -4,9 +4,9 @@ import { ChannelCredentials } from '@grpc/grpc-js'; import { AdResponse, AdServiceClient } from '../../protos/demo'; -const { AD_SERVICE_ADDR = '' } = process.env; +const { AD_ADDR = '' } = process.env; -const client = new AdServiceClient(AD_SERVICE_ADDR, ChannelCredentials.createInsecure()); +const client = new AdServiceClient(AD_ADDR, ChannelCredentials.createInsecure()); const AdGateway = () => ({ listAds(contextKeys: string[]) { diff --git a/src/frontend/next.config.js b/src/frontend/next.config.js index 047a9497a5..e7ee99bd0c 100755 --- a/src/frontend/next.config.js +++ b/src/frontend/next.config.js @@ -13,7 +13,7 @@ const myEnv = dotEnv.config({ dotenvExpand.expand(myEnv); const { - AD_SERVICE_ADDR = '', + AD_ADDR = '', CART_SERVICE_ADDR = '', CHECKOUT_SERVICE_ADDR = '', CURRENCY_SERVICE_ADDR = '', @@ -45,7 +45,7 @@ const nextConfig = { return config; }, env: { - AD_SERVICE_ADDR, + AD_ADDR, CART_SERVICE_ADDR, CHECKOUT_SERVICE_ADDR, CURRENCY_SERVICE_ADDR, diff --git a/test/tracetesting/adservice/get.yaml b/test/tracetesting/adservice/get.yaml index a5b710f457..65b0f07f30 100644 --- a/test/tracetesting/adservice/get.yaml +++ b/test/tracetesting/adservice/get.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:AD_SERVICE_ADDR} + address: ${var:AD_ADDR} method: oteldemo.AdService.GetAds request: |- { diff --git a/test/tracetesting/run.bash b/test/tracetesting/run.bash index 966a04572b..dbcd65421f 100755 --- a/test/tracetesting/run.bash +++ b/test/tracetesting/run.bash @@ -8,7 +8,7 @@ set -e # Availalble services to test -ALL_SERVICES=("adservice" "cartservice" "currencyservice" "checkoutservice" "frontend" "emailservice" "paymentservice" "productcatalogservice" "recommendationservice" "shippingservice") +ALL_SERVICES=("ad" "cartservice" "currencyservice" "checkoutservice" "frontend" "emailservice" "paymentservice" "productcatalogservice" "recommendationservice" "shippingservice") ## Script variables # Will contain the list of services to test @@ -34,8 +34,8 @@ spec: id: tracetesting-vars name: tracetesting-vars values: - - key: AD_SERVICE_ADDR - value: $AD_SERVICE_ADDR + - key: AD_ADDR + value: $AD_ADDR - key: CART_SERVICE_ADDR value: $CART_SERVICE_ADDR - key: CHECKOUT_SERVICE_ADDR From a0897a62788655d8031c45f23814562d0e689b96 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Thu, 19 Dec 2024 05:07:12 -0500 Subject: [PATCH 037/178] [flagd-ui]: rename flagdui to flagd-ui (#1840) * rename flagdui to flagd-ui * rename flagdui to flagd-ui * Update CHANGELOG.md * Add line break * Rename ad test folder --------- Co-authored-by: Juliano Costa Co-authored-by: Juliano Costa --- .env | 2 +- .github/workflows/component-build-images.yml | 2 +- CHANGELOG.md | 6 ++++-- docker-compose.yml | 10 +++++----- src/flagd/demo.flagd.json | 10 +++++----- src/frontendproxy/envoy.tmpl.yaml | 6 +++--- test/tracetesting/{adservice => ad}/all.yaml | 0 test/tracetesting/{adservice => ad}/get.yaml | 0 8 files changed, 19 insertions(+), 17 deletions(-) rename test/tracetesting/{adservice => ad}/all.yaml (100%) rename test/tracetesting/{adservice => ad}/get.yaml (100%) diff --git a/.env b/.env index 465d920a1c..501ea59ac1 100644 --- a/.env +++ b/.env @@ -134,7 +134,7 @@ FLAGD_HOST=flagd FLAGD_PORT=8013 # Flagd UI -FLAGD_UI_HOST=flagdui +FLAGD_UI_HOST=flagd-ui FLAGD_UI_PORT=4000 FLAGD_UI_DOCKERFILE=./src/flagd-ui/Dockerfile diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index ce985308e1..811e9bd524 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -124,7 +124,7 @@ jobs: context: ./ setup-qemu: true - file: ./src/flagd-ui/Dockerfile - tag_suffix: flagdui + tag_suffix: flagd-ui context: ./ setup-qemu: true - file: ./test/tracetesting/Dockerfile diff --git a/CHANGELOG.md b/CHANGELOG.md index 608b7ac136..dbea49621c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,14 +32,16 @@ the release. ([#1827](https://github.com/open-telemetry/opentelemetry-demo/pull/1827)) * [cartservice] - Add Exemplars to Cart Service ([#1830](https://github.com/open-telemetry/opentelemetry-demo/pull/1830)) +* [ad] rename adservice to ad + ([#1832](https://github.com/open-telemetry/opentelemetry-demo/pull/1832)) * [grafana] Add Exemplars Dashboard ([#1836](https://github.com/open-telemetry/opentelemetry-demo/pull/1836)) * [quote] rename quoteservice to quote ([#1838](https://github.com/open-telemetry/opentelemetry-demo/pull/1838)) +* [flagd-ui] rename flagdui to flagd-ui + ([#1840](https://github.com/open-telemetry/opentelemetry-demo/pull/1840)) * [otel-collector] rename otelcol to otel-collector ([#1841](https://github.com/open-telemetry/opentelemetry-demo/pull/1841)) -* [ad] rename adservice to ad - ([#1827](https://github.com/open-telemetry/opentelemetry-demo/pull/1832)) ## 1.12.0 diff --git a/docker-compose.yml b/docker-compose.yml index cde7390471..7d70f18b29 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -358,7 +358,7 @@ services: condition: service_started grafana: condition: service_started - flagdui: + flagd-ui: condition: service_started # Imageprovider @@ -609,9 +609,9 @@ services: *logging # Flagd UI for configuring the feature flag service - flagdui: - image: ${IMAGE_NAME}:${DEMO_VERSION}-flagdui - container_name: flagdui + flagd-ui: + image: ${IMAGE_NAME}:${DEMO_VERSION}-flagd-ui + container_name: flagd-ui build: context: ./ dockerfile: ${FLAGD_UI_DOCKERFILE} @@ -624,7 +624,7 @@ services: - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP} - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=flagdui + - OTEL_SERVICE_NAME=flagd-ui ports: - "${FLAGD_UI_PORT}" depends_on: diff --git a/src/flagd/demo.flagd.json b/src/flagd/demo.flagd.json index 26b6b4bd0d..3c55a93ef0 100644 --- a/src/flagd/demo.flagd.json +++ b/src/flagd/demo.flagd.json @@ -44,7 +44,7 @@ "on": true, "off": false }, - "defaultVariant": "off" + "defaultVariant": "on" }, "kafkaQueueProblems": { "description": "Overloads Kafka queue while simultaneously introducing a consumer side delay leading to a lag spike", @@ -68,13 +68,13 @@ "description": "Fail payment service charge requests n%", "state": "ENABLED", "variants": { - "100%": 1.00, + "100%": 1, "90%": 0.95, "75%": 0.75, - "50%": 0.50, + "50%": 0.5, "25%": 0.25, - "10%": 0.10, - "off": 0.00 + "10%": 0.1, + "off": 0 }, "defaultVariant": "off" }, diff --git a/src/frontendproxy/envoy.tmpl.yaml b/src/frontendproxy/envoy.tmpl.yaml index 559ad53f3b..9666396818 100644 --- a/src/frontendproxy/envoy.tmpl.yaml +++ b/src/frontendproxy/envoy.tmpl.yaml @@ -50,7 +50,7 @@ static_resources: - match: { prefix: "/flagservice/" } route: { cluster: flagservice, prefix_rewrite: "/", timeout: 0s } - match: { prefix: "/feature" } - route: { cluster: flagdui } + route: { cluster: flagd-ui } - match: { prefix: "/" } route: { cluster: frontend } http_filters: @@ -224,11 +224,11 @@ static_resources: socket_address: address: ${FLAGD_HOST} port_value: ${FLAGD_PORT} - - name: flagdui + - name: flagd-ui type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: - cluster_name: flagdui + cluster_name: flagd-ui endpoints: - lb_endpoints: - endpoint: diff --git a/test/tracetesting/adservice/all.yaml b/test/tracetesting/ad/all.yaml similarity index 100% rename from test/tracetesting/adservice/all.yaml rename to test/tracetesting/ad/all.yaml diff --git a/test/tracetesting/adservice/get.yaml b/test/tracetesting/ad/get.yaml similarity index 100% rename from test/tracetesting/adservice/get.yaml rename to test/tracetesting/ad/get.yaml From 4f8ddef2ef31d7d0f16d01e8b722b0f3f62c96f7 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Thu, 19 Dec 2024 05:59:49 -0500 Subject: [PATCH 038/178] [cart]: rename cartservice to cart (#1839) * rename cartservice to cart * rename cartservice to cart * Update CHANGELOG.md * Rename cart test folder * typo --------- Co-authored-by: Juliano Costa Co-authored-by: Juliano Costa --- .env | 6 ++--- .github/workflows/component-build-images.yml | 4 ++-- .gitignore | 2 +- .licenserc.json | 4 ++-- CHANGELOG.md | 2 ++ docker-compose-tests.yml | 4 ++-- docker-compose.minimal.yml | 24 +++++++++---------- docker-compose.yml | 24 +++++++++---------- docker-gen-proto.sh | 2 +- ide-gen-proto.sh | 2 +- renovate.json5 | 4 ++-- src/{cartservice => cart}/NuGet.config | 0 src/{cartservice => cart}/README.md | 2 +- .../cartservice.sln => cart/cart.sln} | 4 ++-- src/{cartservice => cart}/src/.dockerignore | 0 src/{cartservice => cart}/src/Dockerfile | 12 +++++----- src/{cartservice => cart}/src/Program.cs | 4 ++-- .../src/appsettings.json | 0 .../src/cart.csproj} | 0 .../src/cartstore/ICartStore.cs | 2 +- .../src/cartstore/ValkeyCartStore.cs | 2 +- .../src/services/CartService.cs | 6 ++--- .../tests/CartServiceTests.cs | 2 +- .../tests/cart.tests.csproj} | 2 +- src/checkoutservice/main.go | 2 +- src/flagd/demo.flagd.json | 2 +- src/frontend/gateways/rpc/Cart.gateway.ts | 4 ++-- src/frontend/next.config.js | 4 ++-- .../add-item-to-cart.yaml | 2 +- .../{cartservice => cart}/all.yaml | 0 .../check-if-cart-is-empty.yaml | 2 +- .../check-if-cart-is-populated.yaml | 2 +- .../{cartservice => cart}/empty-cart.yaml | 2 +- test/tracetesting/run.bash | 6 ++--- 34 files changed, 71 insertions(+), 69 deletions(-) rename src/{cartservice => cart}/NuGet.config (100%) rename src/{cartservice => cart}/README.md (86%) rename src/{cartservice/cartservice.sln => cart/cart.sln} (89%) rename src/{cartservice => cart}/src/.dockerignore (100%) rename src/{cartservice => cart}/src/Dockerfile (79%) rename src/{cartservice => cart}/src/Program.cs (98%) rename src/{cartservice => cart}/src/appsettings.json (100%) rename src/{cartservice/src/cartservice.csproj => cart/src/cart.csproj} (100%) rename src/{cartservice => cart}/src/cartstore/ICartStore.cs (91%) rename src/{cartservice => cart}/src/cartstore/ValkeyCartStore.cs (99%) rename src/{cartservice => cart}/src/services/CartService.cs (97%) rename src/{cartservice => cart}/tests/CartServiceTests.cs (99%) rename src/{cartservice/tests/cartservice.tests.csproj => cart/tests/cart.tests.csproj} (92%) rename test/tracetesting/{cartservice => cart}/add-item-to-cart.yaml (96%) rename test/tracetesting/{cartservice => cart}/all.yaml (100%) rename test/tracetesting/{cartservice => cart}/check-if-cart-is-empty.yaml (95%) rename test/tracetesting/{cartservice => cart}/check-if-cart-is-populated.yaml (95%) rename test/tracetesting/{cartservice => cart}/empty-cart.yaml (95%) diff --git a/.env b/.env index 501ea59ac1..02d6da5e4b 100644 --- a/.env +++ b/.env @@ -54,9 +54,9 @@ AD_ADDR=ad:${AD_PORT} AD_DOCKERFILE=./src/ad/Dockerfile # Cart Service -CART_SERVICE_PORT=7070 -CART_SERVICE_ADDR=cartservice:${CART_SERVICE_PORT} -CART_SERVICE_DOCKERFILE=./src/cartservice/src/Dockerfile +CART_PORT=7070 +CART_ADDR=cart:${CART_PORT} +CART_DOCKERFILE=./src/cart/src/Dockerfile # Checkout Service CHECKOUT_SERVICE_PORT=5050 diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 811e9bd524..f1733c1ee8 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -59,8 +59,8 @@ jobs: tag_suffix: ad context: ./ setup-qemu: true - - file: ./src/cartservice/src/Dockerfile - tag_suffix: cartservice + - file: ./src/cart/src/Dockerfile + tag_suffix: cart context: ./ setup-qemu: false - file: ./src/checkoutservice/Dockerfile diff --git a/.gitignore b/.gitignore index 11243be1e7..d63384d14e 100644 --- a/.gitignore +++ b/.gitignore @@ -44,7 +44,7 @@ test/tracetesting/tracetesting-vars.yaml # Ignore copied/generated protobuf files /src/accounting/src/protos/ -/src/cartservice/src/protos/ +/src/cart/src/protos/ /src/featureflagservice/proto/ /src/featureflagservice/src/ffs_demo_pb.erl /src/featureflagservice/src/ffs_service_*.erl diff --git a/.licenserc.json b/.licenserc.json index 410195e9e1..fe6d6fa34f 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -39,8 +39,8 @@ "ignore": [ "node_modules/", "/src/accounting/src/protos/", - "src/cartservice/src/obj/", - "src/cartservice/tests/obj/", + "src/cart/src/obj/", + "src/cart/tests/obj/", "src/checkoutservice/genproto/", "src/featureflagservice/assets/vendor/", "src/featureflagservice/priv/", diff --git a/CHANGELOG.md b/CHANGELOG.md index dbea49621c..fbaefcb1d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,8 @@ the release. ([#1840](https://github.com/open-telemetry/opentelemetry-demo/pull/1840)) * [otel-collector] rename otelcol to otel-collector ([#1841](https://github.com/open-telemetry/opentelemetry-demo/pull/1841)) +* [cart] rename cartservice to cart + ([#1839](https://github.com/open-telemetry/opentelemetry-demo/pull/1839)) ## 1.12.0 diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index 1a4d7577c4..6d388d46c2 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -38,7 +38,7 @@ services: TRACETEST_IMAGE_VERSION: ${TRACETEST_IMAGE_VERSION} environment: - AD_ADDR - - CART_SERVICE_ADDR + - CART_ADDR - CHECKOUT_SERVICE_ADDR - CURRENCY_SERVICE_ADDR - EMAIL_SERVICE_ADDR @@ -61,7 +61,7 @@ services: condition: service_started ad: condition: service_started - cartservice: + cart: condition: service_started checkoutservice: condition: service_started diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index b9b73a7707..71b66a05e4 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -50,29 +50,29 @@ services: logging: *logging # Cart service - cartservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-cartservice + cart: + image: ${IMAGE_NAME}:${DEMO_VERSION}-cart container_name: cart-service build: context: ./ - dockerfile: ${CART_SERVICE_DOCKERFILE} + dockerfile: ${CART_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-cartservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-cart deploy: resources: limits: memory: 160M restart: unless-stopped ports: - - "${CART_SERVICE_PORT}" + - "${CART_PORT}" environment: - - CART_SERVICE_PORT + - CART_PORT - FLAGD_HOST - VALKEY_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=cartservice - - ASPNETCORE_URLS=http://*:${CART_SERVICE_PORT} + - OTEL_SERVICE_NAME=cart + - ASPNETCORE_URLS=http://*:${CART_PORT} depends_on: valkey-cart: condition: service_started @@ -98,7 +98,7 @@ services: - "${CHECKOUT_SERVICE_PORT}" environment: - CHECKOUT_SERVICE_PORT - - CART_SERVICE_ADDR + - CART_ADDR - CURRENCY_SERVICE_ADDR - EMAIL_SERVICE_ADDR - FLAGD_HOST @@ -110,7 +110,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=checkoutservice depends_on: - cartservice: + cart: condition: service_started currencyservice: condition: service_started @@ -200,7 +200,7 @@ services: - PORT=${FRONTEND_PORT} - FRONTEND_ADDR - AD_ADDR - - CART_SERVICE_ADDR + - CART_ADDR - CHECKOUT_SERVICE_ADDR - CURRENCY_SERVICE_ADDR - PRODUCT_CATALOG_SERVICE_ADDR @@ -219,7 +219,7 @@ services: depends_on: ad: condition: service_started - cartservice: + cart: condition: service_started checkoutservice: condition: service_started diff --git a/docker-compose.yml b/docker-compose.yml index 7d70f18b29..3bc8cde7ed 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -79,30 +79,30 @@ services: logging: *logging # Cart service - cartservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-cartservice + cart: + image: ${IMAGE_NAME}:${DEMO_VERSION}-cart container_name: cart-service build: context: ./ - dockerfile: ${CART_SERVICE_DOCKERFILE} + dockerfile: ${CART_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-cartservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-cart deploy: resources: limits: memory: 160M restart: unless-stopped ports: - - "${CART_SERVICE_PORT}" + - "${CART_PORT}" environment: - - CART_SERVICE_PORT + - CART_PORT - FLAGD_HOST - FLAGD_PORT - VALKEY_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=cartservice - - ASPNETCORE_URLS=http://*:${CART_SERVICE_PORT} + - OTEL_SERVICE_NAME=cart + - ASPNETCORE_URLS=http://*:${CART_PORT} depends_on: valkey-cart: condition: service_started @@ -132,7 +132,7 @@ services: - FLAGD_HOST - FLAGD_PORT - CHECKOUT_SERVICE_PORT - - CART_SERVICE_ADDR + - CART_ADDR - CURRENCY_SERVICE_ADDR - EMAIL_SERVICE_ADDR - PAYMENT_SERVICE_ADDR @@ -144,7 +144,7 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=checkoutservice depends_on: - cartservice: + cart: condition: service_started currencyservice: condition: service_started @@ -272,7 +272,7 @@ services: - PORT=${FRONTEND_PORT} - FRONTEND_ADDR - AD_ADDR - - CART_SERVICE_ADDR + - CART_ADDR - CHECKOUT_SERVICE_ADDR - CURRENCY_SERVICE_ADDR - PRODUCT_CATALOG_SERVICE_ADDR @@ -291,7 +291,7 @@ services: depends_on: ad: condition: service_started - cartservice: + cart: condition: service_started checkoutservice: condition: service_started diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index d75adb8aac..c7b7842418 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -23,7 +23,7 @@ gen_proto_python() { #gen_proto_dotnet accounting #gen_proto_java ad -#gen_proto_dotnet cartservice +#gen_proto_dotnet cart gen_proto_go checkoutservice #gen_proto_cpp currencyservice #gen_proto_ruby emailservice diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index bb4dc4e069..cd456f40c5 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -67,7 +67,7 @@ gen_proto_ts() { gen_proto_dotnet accounting # gen_proto_java ad -gen_proto_dotnet cartservice +gen_proto_dotnet cart gen_proto_go checkoutservice # gen_proto_cpp currencyservice # gen_proto_ruby emailservice diff --git a/renovate.json5 b/renovate.json5 index 2348ad4eef..ba6eaeee8e 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -23,8 +23,8 @@ "groupName": "ad", }, { - "matchFileNames": ["src/cartservice/**"], - "groupName": "cartservice", + "matchFileNames": ["src/cart/**"], + "groupName": "cart", }, { "matchFileNames": ["src/checkoutservice/**"], diff --git a/src/cartservice/NuGet.config b/src/cart/NuGet.config similarity index 100% rename from src/cartservice/NuGet.config rename to src/cart/NuGet.config diff --git a/src/cartservice/README.md b/src/cart/README.md similarity index 86% rename from src/cartservice/README.md rename to src/cart/README.md index fbc6fbc1ee..f2b2db6484 100644 --- a/src/cartservice/README.md +++ b/src/cart/README.md @@ -11,5 +11,5 @@ Run `dotnet restore` and `dotnet build`. From the root directory of this repository, run: ```sh -docker compose build cartservice +docker compose build cart ``` diff --git a/src/cartservice/cartservice.sln b/src/cart/cart.sln similarity index 89% rename from src/cartservice/cartservice.sln rename to src/cart/cart.sln index 8d32082529..6fedf6359f 100644 --- a/src/cartservice/cartservice.sln +++ b/src/cart/cart.sln @@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.26124.0 MinimumVisualStudioVersion = 15.0.26124.0 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cartservice", "src\cartservice.csproj", "{2348C29F-E8D3-4955-916D-D609CBC97FCB}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cart", "src\cart.csproj", "{2348C29F-E8D3-4955-916D-D609CBC97FCB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cartservice.tests", "tests\cartservice.tests.csproj", "{59825342-CE64-4AFA-8744-781692C0811B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cart.tests", "tests\cart.tests.csproj", "{59825342-CE64-4AFA-8744-781692C0811B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/cartservice/src/.dockerignore b/src/cart/src/.dockerignore similarity index 100% rename from src/cartservice/src/.dockerignore rename to src/cart/src/.dockerignore diff --git a/src/cartservice/src/Dockerfile b/src/cart/src/Dockerfile similarity index 79% rename from src/cartservice/src/Dockerfile rename to src/cart/src/Dockerfile index bf9ebcac19..9e4df98450 100644 --- a/src/cartservice/src/Dockerfile +++ b/src/cart/src/Dockerfile @@ -20,12 +20,12 @@ ARG TARGETARCH WORKDIR /usr/src/app/ -COPY ./src/cartservice/ ./ +COPY ./src/cart/ ./ COPY ./pb/ ./pb/ -RUN dotnet restore ./src/cartservice.csproj -r linux-musl-$TARGETARCH +RUN dotnet restore ./src/cart.csproj -r linux-musl-$TARGETARCH -RUN dotnet publish ./src/cartservice.csproj -r linux-musl-$TARGETARCH --no-restore -o /cartservice +RUN dotnet publish ./src/cart.csproj -r linux-musl-$TARGETARCH --no-restore -o /cart # ----------------------------------------------------------------------------- @@ -33,9 +33,9 @@ RUN dotnet publish ./src/cartservice.csproj -r linux-musl-$TARGETARCH --no-resto FROM mcr.microsoft.com/dotnet/runtime-deps:8.0-alpine3.20 WORKDIR /usr/src/app/ -COPY --from=builder /cartservice/ ./ +COPY --from=builder /cart/ ./ ENV DOTNET_HOSTBUILDER__RELOADCONFIGONCHANGE=false -EXPOSE ${CART_SERVICE_PORT} -ENTRYPOINT [ "./cartservice" ] +EXPOSE ${CART_PORT} +ENTRYPOINT [ "./cart" ] diff --git a/src/cartservice/src/Program.cs b/src/cart/src/Program.cs similarity index 98% rename from src/cartservice/src/Program.cs rename to src/cart/src/Program.cs index 6c52229ce4..365c7db35c 100644 --- a/src/cartservice/src/Program.cs +++ b/src/cart/src/Program.cs @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 using System; -using cartservice.cartstore; -using cartservice.services; +using cart.cartstore; +using cart.services; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; diff --git a/src/cartservice/src/appsettings.json b/src/cart/src/appsettings.json similarity index 100% rename from src/cartservice/src/appsettings.json rename to src/cart/src/appsettings.json diff --git a/src/cartservice/src/cartservice.csproj b/src/cart/src/cart.csproj similarity index 100% rename from src/cartservice/src/cartservice.csproj rename to src/cart/src/cart.csproj diff --git a/src/cartservice/src/cartstore/ICartStore.cs b/src/cart/src/cartstore/ICartStore.cs similarity index 91% rename from src/cartservice/src/cartstore/ICartStore.cs rename to src/cart/src/cartstore/ICartStore.cs index fe85b175de..80e249e5d6 100644 --- a/src/cartservice/src/cartstore/ICartStore.cs +++ b/src/cart/src/cartstore/ICartStore.cs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 using System.Threading.Tasks; -namespace cartservice.cartstore; +namespace cart.cartstore; public interface ICartStore { diff --git a/src/cartservice/src/cartstore/ValkeyCartStore.cs b/src/cart/src/cartstore/ValkeyCartStore.cs similarity index 99% rename from src/cartservice/src/cartstore/ValkeyCartStore.cs rename to src/cart/src/cartstore/ValkeyCartStore.cs index 1a16dcc6c0..a486839ee8 100644 --- a/src/cartservice/src/cartstore/ValkeyCartStore.cs +++ b/src/cart/src/cartstore/ValkeyCartStore.cs @@ -10,7 +10,7 @@ using System.Diagnostics.Metrics; using System.Diagnostics; -namespace cartservice.cartstore; +namespace cart.cartstore; public class ValkeyCartStore : ICartStore { diff --git a/src/cartservice/src/services/CartService.cs b/src/cart/src/services/CartService.cs similarity index 97% rename from src/cartservice/src/services/CartService.cs rename to src/cart/src/services/CartService.cs index 093b3bda2d..5578f45fff 100644 --- a/src/cartservice/src/services/CartService.cs +++ b/src/cart/src/services/CartService.cs @@ -4,11 +4,11 @@ using System.Threading.Tasks; using System; using Grpc.Core; -using cartservice.cartstore; +using cart.cartstore; using OpenFeature; using Oteldemo; -namespace cartservice.services; +namespace cart.services; public class CartService : Oteldemo.CartService.CartServiceBase { @@ -80,7 +80,7 @@ public override async Task EmptyCart(EmptyCartRequest request, ServerCall try { - if (await _featureFlagHelper.GetBooleanValueAsync("cartServiceFailure", false)) + if (await _featureFlagHelper.GetBooleanValueAsync("cartFailure", false)) { await _badCartStore.EmptyCartAsync(request.UserId); } diff --git a/src/cartservice/tests/CartServiceTests.cs b/src/cart/tests/CartServiceTests.cs similarity index 99% rename from src/cartservice/tests/CartServiceTests.cs rename to src/cart/tests/CartServiceTests.cs index 372b10cc41..45173d1432 100644 --- a/src/cartservice/tests/CartServiceTests.cs +++ b/src/cart/tests/CartServiceTests.cs @@ -9,7 +9,7 @@ using Xunit; using static Oteldemo.CartService; -namespace cartservice.tests; +namespace cart.tests; public class CartServiceTests { diff --git a/src/cartservice/tests/cartservice.tests.csproj b/src/cart/tests/cart.tests.csproj similarity index 92% rename from src/cartservice/tests/cartservice.tests.csproj rename to src/cart/tests/cart.tests.csproj index fd079fc30f..c7ef905f72 100644 --- a/src/cartservice/tests/cartservice.tests.csproj +++ b/src/cart/tests/cart.tests.csproj @@ -16,6 +16,6 @@ - + diff --git a/src/checkoutservice/main.go b/src/checkoutservice/main.go index c67251aaab..3258976320 100644 --- a/src/checkoutservice/main.go +++ b/src/checkoutservice/main.go @@ -177,7 +177,7 @@ func main() { svc.productCatalogSvcClient = pb.NewProductCatalogServiceClient(c) defer c.Close() - mustMapEnv(&svc.cartSvcAddr, "CART_SERVICE_ADDR") + mustMapEnv(&svc.cartSvcAddr, "CART_ADDR") c = mustCreateClient(svc.cartSvcAddr) svc.cartSvcClient = pb.NewCartServiceClient(c) defer c.Close() diff --git a/src/flagd/demo.flagd.json b/src/flagd/demo.flagd.json index 3c55a93ef0..452e334418 100644 --- a/src/flagd/demo.flagd.json +++ b/src/flagd/demo.flagd.json @@ -55,7 +55,7 @@ }, "defaultVariant": "off" }, - "cartServiceFailure": { + "cartFailure": { "description": "Fail cart service", "state": "ENABLED", "variants": { diff --git a/src/frontend/gateways/rpc/Cart.gateway.ts b/src/frontend/gateways/rpc/Cart.gateway.ts index ba025e609e..25dfc87a41 100644 --- a/src/frontend/gateways/rpc/Cart.gateway.ts +++ b/src/frontend/gateways/rpc/Cart.gateway.ts @@ -4,9 +4,9 @@ import { ChannelCredentials } from '@grpc/grpc-js'; import { Cart, CartItem, CartServiceClient, Empty } from '../../protos/demo'; -const { CART_SERVICE_ADDR = '' } = process.env; +const { CART_ADDR = '' } = process.env; -const client = new CartServiceClient(CART_SERVICE_ADDR, ChannelCredentials.createInsecure()); +const client = new CartServiceClient(CART_ADDR, ChannelCredentials.createInsecure()); const CartGateway = () => ({ getCart(userId: string) { diff --git a/src/frontend/next.config.js b/src/frontend/next.config.js index e7ee99bd0c..e81a2ebc80 100755 --- a/src/frontend/next.config.js +++ b/src/frontend/next.config.js @@ -14,7 +14,7 @@ dotenvExpand.expand(myEnv); const { AD_ADDR = '', - CART_SERVICE_ADDR = '', + CART_ADDR = '', CHECKOUT_SERVICE_ADDR = '', CURRENCY_SERVICE_ADDR = '', PRODUCT_CATALOG_SERVICE_ADDR = '', @@ -46,7 +46,7 @@ const nextConfig = { }, env: { AD_ADDR, - CART_SERVICE_ADDR, + CART_ADDR, CHECKOUT_SERVICE_ADDR, CURRENCY_SERVICE_ADDR, PRODUCT_CATALOG_SERVICE_ADDR, diff --git a/test/tracetesting/cartservice/add-item-to-cart.yaml b/test/tracetesting/cart/add-item-to-cart.yaml similarity index 96% rename from test/tracetesting/cartservice/add-item-to-cart.yaml rename to test/tracetesting/cart/add-item-to-cart.yaml index 61af56c9f6..c42b1f21df 100644 --- a/test/tracetesting/cartservice/add-item-to-cart.yaml +++ b/test/tracetesting/cart/add-item-to-cart.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:CART_SERVICE_ADDR} + address: ${var:CART_ADDR} method: oteldemo.CartService.AddItem request: |- { diff --git a/test/tracetesting/cartservice/all.yaml b/test/tracetesting/cart/all.yaml similarity index 100% rename from test/tracetesting/cartservice/all.yaml rename to test/tracetesting/cart/all.yaml diff --git a/test/tracetesting/cartservice/check-if-cart-is-empty.yaml b/test/tracetesting/cart/check-if-cart-is-empty.yaml similarity index 95% rename from test/tracetesting/cartservice/check-if-cart-is-empty.yaml rename to test/tracetesting/cart/check-if-cart-is-empty.yaml index bb3977b084..de9f409b5d 100644 --- a/test/tracetesting/cartservice/check-if-cart-is-empty.yaml +++ b/test/tracetesting/cart/check-if-cart-is-empty.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:CART_SERVICE_ADDR} + address: ${var:CART_ADDR} method: oteldemo.CartService.GetCart request: |- { diff --git a/test/tracetesting/cartservice/check-if-cart-is-populated.yaml b/test/tracetesting/cart/check-if-cart-is-populated.yaml similarity index 95% rename from test/tracetesting/cartservice/check-if-cart-is-populated.yaml rename to test/tracetesting/cart/check-if-cart-is-populated.yaml index 3e1fad6790..db753c1e33 100644 --- a/test/tracetesting/cartservice/check-if-cart-is-populated.yaml +++ b/test/tracetesting/cart/check-if-cart-is-populated.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:CART_SERVICE_ADDR} + address: ${var:CART_ADDR} method: oteldemo.CartService.GetCart request: |- { diff --git a/test/tracetesting/cartservice/empty-cart.yaml b/test/tracetesting/cart/empty-cart.yaml similarity index 95% rename from test/tracetesting/cartservice/empty-cart.yaml rename to test/tracetesting/cart/empty-cart.yaml index ddf4d63208..bc97074858 100644 --- a/test/tracetesting/cartservice/empty-cart.yaml +++ b/test/tracetesting/cart/empty-cart.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:CART_SERVICE_ADDR} + address: ${var:CART_ADDR} method: oteldemo.CartService.EmptyCart request: |- { diff --git a/test/tracetesting/run.bash b/test/tracetesting/run.bash index dbcd65421f..ce2f914d1f 100755 --- a/test/tracetesting/run.bash +++ b/test/tracetesting/run.bash @@ -8,7 +8,7 @@ set -e # Availalble services to test -ALL_SERVICES=("ad" "cartservice" "currencyservice" "checkoutservice" "frontend" "emailservice" "paymentservice" "productcatalogservice" "recommendationservice" "shippingservice") +ALL_SERVICES=("ad" "cart" "currencyservice" "checkoutservice" "frontend" "emailservice" "paymentservice" "productcatalogservice" "recommendationservice" "shippingservice") ## Script variables # Will contain the list of services to test @@ -36,8 +36,8 @@ spec: values: - key: AD_ADDR value: $AD_ADDR - - key: CART_SERVICE_ADDR - value: $CART_SERVICE_ADDR + - key: CART_ADDR + value: $CART_ADDR - key: CHECKOUT_SERVICE_ADDR value: $CHECKOUT_SERVICE_ADDR - key: CURRENCY_SERVICE_ADDR From 37b9ed2039383295cd071c7a9c1a0a5550f9136d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 08:24:30 -0500 Subject: [PATCH 039/178] build(deps): bump the go-production-dependencies group across 2 directories with 1 update (#1852) Bumps the go-production-dependencies group with 1 update in the /src/checkoutservice directory: [google.golang.org/grpc](https://github.com/grpc/grpc-go). Bumps the go-production-dependencies group with 1 update in the /src/productcatalogservice directory: [google.golang.org/grpc](https://github.com/grpc/grpc-go). Updates `google.golang.org/grpc` from 1.69.0 to 1.69.2 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.69.0...v1.69.2) Updates `google.golang.org/grpc` from 1.69.0 to 1.69.2 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.69.0...v1.69.2) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/checkoutservice/go.mod | 2 +- src/checkoutservice/go.sum | 4 ++-- src/productcatalogservice/go.mod | 2 +- src/productcatalogservice/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/checkoutservice/go.mod b/src/checkoutservice/go.mod index f796e55451..479cf7812f 100644 --- a/src/checkoutservice/go.mod +++ b/src/checkoutservice/go.mod @@ -20,7 +20,7 @@ require ( go.opentelemetry.io/otel/sdk v1.33.0 go.opentelemetry.io/otel/sdk/metric v1.33.0 go.opentelemetry.io/otel/trace v1.33.0 - google.golang.org/grpc v1.69.0 + google.golang.org/grpc v1.69.2 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.36.0 ) diff --git a/src/checkoutservice/go.sum b/src/checkoutservice/go.sum index 8559307563..c599cae4d7 100644 --- a/src/checkoutservice/go.sum +++ b/src/checkoutservice/go.sum @@ -261,8 +261,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1: google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= -google.golang.org/grpc v1.69.0 h1:quSiOM1GJPmPH5XtU+BCoVXcDVJJAzNcoyfC2cCjGkI= -google.golang.org/grpc v1.69.0/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= +google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.36.0 h1:mjIs9gYtt56AzC4ZaffQuh88TZurBGhIJMBZGSxNerQ= diff --git a/src/productcatalogservice/go.mod b/src/productcatalogservice/go.mod index 8a365a5ef8..341dfe61e5 100644 --- a/src/productcatalogservice/go.mod +++ b/src/productcatalogservice/go.mod @@ -17,7 +17,7 @@ require ( go.opentelemetry.io/otel/sdk v1.33.0 go.opentelemetry.io/otel/sdk/metric v1.33.0 go.opentelemetry.io/otel/trace v1.33.0 - google.golang.org/grpc v1.69.0 + google.golang.org/grpc v1.69.2 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.36.0 ) diff --git a/src/productcatalogservice/go.sum b/src/productcatalogservice/go.sum index 6a9bd2031b..47ac9518b2 100644 --- a/src/productcatalogservice/go.sum +++ b/src/productcatalogservice/go.sum @@ -189,8 +189,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1: google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= -google.golang.org/grpc v1.69.0 h1:quSiOM1GJPmPH5XtU+BCoVXcDVJJAzNcoyfC2cCjGkI= -google.golang.org/grpc v1.69.0/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= +google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.36.0 h1:mjIs9gYtt56AzC4ZaffQuh88TZurBGhIJMBZGSxNerQ= From 623c0e4aa9294e36bb03aee1358ae4514c480b98 Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Thu, 19 Dec 2024 16:25:02 +0100 Subject: [PATCH 040/178] [paymentservice] Bump dependencies (#1854) * [paymentservice] Bump dependencies * Apply suggestion --- src/paymentservice/Dockerfile | 4 +- src/paymentservice/index.js | 6 +- src/paymentservice/package-lock.json | 1910 +++++++++++++------------- src/paymentservice/package.json | 43 +- 4 files changed, 957 insertions(+), 1006 deletions(-) diff --git a/src/paymentservice/Dockerfile b/src/paymentservice/Dockerfile index c67672b651..fb78bc3b17 100644 --- a/src/paymentservice/Dockerfile +++ b/src/paymentservice/Dockerfile @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 -FROM node:21-alpine AS build +FROM node:22-alpine AS build WORKDIR /usr/src/app/ @@ -12,7 +12,7 @@ RUN apk add --no-cache python3 make g++ && npm ci --omit=dev # ----------------------------------------------------------------------------- -FROM node:21-alpine +FROM node:22-alpine USER node WORKDIR /usr/src/app/ diff --git a/src/paymentservice/index.js b/src/paymentservice/index.js index af409987f7..c068c31082 100644 --- a/src/paymentservice/index.js +++ b/src/paymentservice/index.js @@ -14,7 +14,7 @@ async function chargeServiceHandler(call, callback) { try { const amount = call.request.amount span.setAttributes({ - 'app.payment.amount': parseFloat(`${amount.units}.${amount.nanos}`) + 'app.payment.amount': parseFloat(`${amount.units}.${amount.nanos}`).toFixed(2) }) logger.info({ request: call.request }, "Charge request received.") @@ -51,9 +51,7 @@ server.bindAsync(`0.0.0.0:${process.env['PAYMENT_SERVICE_PORT']}`, grpc.ServerCr } logger.info(`PaymentService gRPC server started on port ${port}`) - server.start() -} -) +}) process.once('SIGINT', closeGracefully) process.once('SIGTERM', closeGracefully) diff --git a/src/paymentservice/package-lock.json b/src/paymentservice/package-lock.json index fad9651dbb..881fb4216b 100644 --- a/src/paymentservice/package-lock.json +++ b/src/paymentservice/package-lock.json @@ -1,41 +1,42 @@ { "name": "paymentservice", - "version": "1.4.0", + "version": "1.12.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "paymentservice", - "version": "1.4.0", + "version": "1.12.0", "license": "ISC", "dependencies": { - "@grpc/grpc-js": "1.10.8", + "@grpc/grpc-js": "1.10.11", "@grpc/proto-loader": "0.7.13", - "@openfeature/flagd-provider": "0.13.0", - "@openfeature/server-sdk": "1.14.0", - "@opentelemetry/api": "1.8.0", - "@opentelemetry/auto-instrumentations-node": "0.46.1", - "@opentelemetry/core": "1.24.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.51.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.51.1", - "@opentelemetry/instrumentation-runtime-node": "^0.10.0", - "@opentelemetry/resource-detector-alibaba-cloud": "0.28.9", - "@opentelemetry/resource-detector-aws": "1.5.0", - "@opentelemetry/resource-detector-container": "0.3.9", - "@opentelemetry/resource-detector-gcp": "0.29.9", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/sdk-metrics": "1.24.1", - "@opentelemetry/sdk-node": "0.51.1", - "grpc-js-health-check": "1.1.0", - "pino": "8.16.1", + "@openfeature/flagd-provider": "0.13.1", + "@openfeature/server-sdk": "1.16.2", + "@opentelemetry/api": "1.9.0", + "@opentelemetry/auto-instrumentations-node": "0.54.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.56.0", + "@opentelemetry/exporter-trace-otlp-grpc": "0.56.0", + "@opentelemetry/instrumentation-runtime-node": "0.11.0", + "@opentelemetry/resource-detector-alibaba-cloud": "0.29.6", + "@opentelemetry/resource-detector-aws": "1.9.0", + "@opentelemetry/resource-detector-container": "0.5.2", + "@opentelemetry/resource-detector-gcp": "0.31.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/sdk-metrics": "1.29.0", + "@opentelemetry/sdk-node": "0.56.0", + "grpc-js-health-check": "1.2.2", + "pino": "9.5.0", "simple-card-validator": "1.1.0", - "uuid": "9.0.1" + "uuid": "11.0.3" } }, "node_modules/@grpc/grpc-js": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.8.tgz", - "integrity": "sha512-vYVqYzHicDqyKB+NQhAc54I1QWCBLCrYG6unqOIcBTHx+7x8C9lcoLj3KVJXs2VB4lUbpWY+Kk9NipcbXYWmvg==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.11.tgz", + "integrity": "sha512-3RaoxOqkHHN2c05bwtBNVJmOf/UwMam0rZYtdl7dsRpsvDwcNpv6LkGgzltQ7xVf822LzBoKEPRvf4D7+xeIDw==", + "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" @@ -71,19 +72,20 @@ } }, "node_modules/@openfeature/core": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-1.2.0.tgz", - "integrity": "sha512-JyIiije5f+8Big1xz7UAmxqVmHBuFUI9Dh8DEFG2D1ocgjMm1tEzYXJDr3urCQGNnX9M/cYtNhEcGfyontIgJw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-1.5.0.tgz", + "integrity": "sha512-dRBJjnYhEa6XoF9BNf9sW4sHuXmigfBbbatA5djbRXRBDExrXsMydMpEWQqKYhd7XwdwFatuh2q+UkVbXriUKA==", + "license": "Apache-2.0", "peer": true }, "node_modules/@openfeature/flagd-core": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@openfeature/flagd-core/-/flagd-core-0.1.11.tgz", - "integrity": "sha512-tLIqTNTSb5UNQbfbm7nFUhPGe3TicjJUw42NgkWss76K+opwIuGS8eDzKWhshn3269W+3rLC6MA8iuZb6go8pQ==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@openfeature/flagd-core/-/flagd-core-0.2.3.tgz", + "integrity": "sha512-dhinXEfFmyTPVuI53Nq1pEC7SJP78LgpmJriMlVjcNaDRkA8VneyjuttijDnHw8PcrBit5I3DZNelXzrUkkiLw==", "dependencies": { "ajv": "^8.12.0", "imurmurhash": "0.1.4", - "json-logic-engine": "1.3.1", + "json-logic-engine": "1.3.4", "object-hash": "3.0.0", "semver": "7.5.3", "tslib": "^2.3.0" @@ -92,10 +94,23 @@ "@openfeature/core": ">=0.0.16" } }, + "node_modules/@openfeature/flagd-core/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@openfeature/flagd-core/node_modules/semver": { "version": "7.5.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -107,13 +122,13 @@ } }, "node_modules/@openfeature/flagd-provider": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@openfeature/flagd-provider/-/flagd-provider-0.13.0.tgz", - "integrity": "sha512-78w/oCDkZxoGbaPiGPu9YaWQLvJLR0wsftEf/QD5uS1b8BW1sLXoqVh/AfYwZSZ54NTJtfpGNh3/oE0zjJUXBg==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@openfeature/flagd-provider/-/flagd-provider-0.13.1.tgz", + "integrity": "sha512-X+sNmgmHN08U1kE0I1lLNDdvvvUTmPpXxFuppB8ak+6+d5lHCLMIhhEGlE56C8VhyWBP0d+chl42O4IqdypqDA==", "dependencies": { - "@openfeature/flagd-core": "~0.1.10", + "@openfeature/flagd-core": "0.2.3", "@protobuf-ts/runtime-rpc": "2.9.4", - "lru-cache": "10.2.0", + "lru-cache": "10.2.2", "util": "0.12.5" }, "peerDependencies": { @@ -121,95 +136,92 @@ "@openfeature/server-sdk": "^1.13.0" } }, - "node_modules/@openfeature/flagd-provider/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/@openfeature/server-sdk": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.14.0.tgz", - "integrity": "sha512-PGPI6OZdyAy2FZVUiH1suw/WuWZJsIlK2xd1KbRl5rlMLawYk2bKGBGgZYX9rcozsGKOZM6/vaFjCSB6QCjCfw==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.16.2.tgz", + "integrity": "sha512-bGK3Lgf9JY06s1vJkBs1PgSH+taxrwBx/SJFTNWAmA5TfV3c5SgLCGlU2xYEda5Ba3885ly+foWeRJrXdZGQ+g==", + "license": "Apache-2.0", "engines": { "node": ">=18" }, "peerDependencies": { - "@openfeature/core": "1.2.0" + "@openfeature/core": "^1.5.0" } }, "node_modules/@opentelemetry/api": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", - "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", "engines": { "node": ">=8.0.0" } }, "node_modules/@opentelemetry/api-logs": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.51.1.tgz", - "integrity": "sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.56.0.tgz", + "integrity": "sha512-Wr39+94UNNG3Ei9nv3pHd4AJ63gq5nSemMRpCd8fPwDL9rN3vK26lzxfH27mw16XzOSO+TpyQwBAMaLxaPWG0g==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" }, "engines": { "node": ">=14" } }, "node_modules/@opentelemetry/auto-instrumentations-node": { - "version": "0.46.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.46.1.tgz", - "integrity": "sha512-s0CwmY9KYtPawOhV5YO2Gf62uVOQRNvT6Or8IZ0S4gr/kPVNhoMehTsQvqBwSWQfoFrkmW3KKOHiKJEp4dVGXg==", - "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/instrumentation-amqplib": "^0.37.0", - "@opentelemetry/instrumentation-aws-lambda": "^0.41.1", - "@opentelemetry/instrumentation-aws-sdk": "^0.41.0", - "@opentelemetry/instrumentation-bunyan": "^0.38.0", - "@opentelemetry/instrumentation-cassandra-driver": "^0.38.0", - "@opentelemetry/instrumentation-connect": "^0.36.1", - "@opentelemetry/instrumentation-cucumber": "^0.6.0", - "@opentelemetry/instrumentation-dataloader": "^0.9.0", - "@opentelemetry/instrumentation-dns": "^0.36.1", - "@opentelemetry/instrumentation-express": "^0.39.0", - "@opentelemetry/instrumentation-fastify": "^0.36.1", - "@opentelemetry/instrumentation-fs": "^0.12.0", - "@opentelemetry/instrumentation-generic-pool": "^0.36.0", - "@opentelemetry/instrumentation-graphql": "^0.40.0", - "@opentelemetry/instrumentation-grpc": "^0.51.0", - "@opentelemetry/instrumentation-hapi": "^0.38.0", - "@opentelemetry/instrumentation-http": "^0.51.0", - "@opentelemetry/instrumentation-ioredis": "^0.40.0", - "@opentelemetry/instrumentation-knex": "^0.36.1", - "@opentelemetry/instrumentation-koa": "^0.40.0", - "@opentelemetry/instrumentation-lru-memoizer": "^0.37.0", - "@opentelemetry/instrumentation-memcached": "^0.36.0", - "@opentelemetry/instrumentation-mongodb": "^0.43.0", - "@opentelemetry/instrumentation-mongoose": "^0.38.1", - "@opentelemetry/instrumentation-mysql": "^0.38.1", - "@opentelemetry/instrumentation-mysql2": "^0.38.1", - "@opentelemetry/instrumentation-nestjs-core": "^0.37.1", - "@opentelemetry/instrumentation-net": "^0.36.0", - "@opentelemetry/instrumentation-pg": "^0.41.0", - "@opentelemetry/instrumentation-pino": "^0.39.0", - "@opentelemetry/instrumentation-redis": "^0.39.1", - "@opentelemetry/instrumentation-redis-4": "^0.39.0", - "@opentelemetry/instrumentation-restify": "^0.38.0", - "@opentelemetry/instrumentation-router": "^0.37.0", - "@opentelemetry/instrumentation-socket.io": "^0.39.0", - "@opentelemetry/instrumentation-tedious": "^0.10.1", - "@opentelemetry/instrumentation-undici": "^0.2.0", - "@opentelemetry/instrumentation-winston": "^0.37.0", - "@opentelemetry/resource-detector-alibaba-cloud": "^0.28.9", - "@opentelemetry/resource-detector-aws": "^1.5.0", - "@opentelemetry/resource-detector-azure": "^0.2.6", - "@opentelemetry/resource-detector-container": "^0.3.9", - "@opentelemetry/resource-detector-gcp": "^0.29.9", + "version": "0.54.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.54.0.tgz", + "integrity": "sha512-MJYh3hUN7FupIXGy/cOiMoTIM3lTELXFiu9dFXD6YK9AE/Uez2YfgRnHyotD9h/qJeL7uDcI5DHAGkbb/2EdOQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation-amqplib": "^0.45.0", + "@opentelemetry/instrumentation-aws-lambda": "^0.49.0", + "@opentelemetry/instrumentation-aws-sdk": "^0.48.0", + "@opentelemetry/instrumentation-bunyan": "^0.44.0", + "@opentelemetry/instrumentation-cassandra-driver": "^0.44.0", + "@opentelemetry/instrumentation-connect": "^0.42.0", + "@opentelemetry/instrumentation-cucumber": "^0.12.0", + "@opentelemetry/instrumentation-dataloader": "^0.15.0", + "@opentelemetry/instrumentation-dns": "^0.42.0", + "@opentelemetry/instrumentation-express": "^0.46.0", + "@opentelemetry/instrumentation-fastify": "^0.43.0", + "@opentelemetry/instrumentation-fs": "^0.18.0", + "@opentelemetry/instrumentation-generic-pool": "^0.42.0", + "@opentelemetry/instrumentation-graphql": "^0.46.0", + "@opentelemetry/instrumentation-grpc": "^0.56.0", + "@opentelemetry/instrumentation-hapi": "^0.44.0", + "@opentelemetry/instrumentation-http": "^0.56.0", + "@opentelemetry/instrumentation-ioredis": "^0.46.0", + "@opentelemetry/instrumentation-kafkajs": "^0.6.0", + "@opentelemetry/instrumentation-knex": "^0.43.0", + "@opentelemetry/instrumentation-koa": "^0.46.0", + "@opentelemetry/instrumentation-lru-memoizer": "^0.43.0", + "@opentelemetry/instrumentation-memcached": "^0.42.0", + "@opentelemetry/instrumentation-mongodb": "^0.50.0", + "@opentelemetry/instrumentation-mongoose": "^0.45.0", + "@opentelemetry/instrumentation-mysql": "^0.44.0", + "@opentelemetry/instrumentation-mysql2": "^0.44.0", + "@opentelemetry/instrumentation-nestjs-core": "^0.43.0", + "@opentelemetry/instrumentation-net": "^0.42.0", + "@opentelemetry/instrumentation-pg": "^0.49.0", + "@opentelemetry/instrumentation-pino": "^0.45.0", + "@opentelemetry/instrumentation-redis": "^0.45.0", + "@opentelemetry/instrumentation-redis-4": "^0.45.0", + "@opentelemetry/instrumentation-restify": "^0.44.0", + "@opentelemetry/instrumentation-router": "^0.43.0", + "@opentelemetry/instrumentation-socket.io": "^0.45.0", + "@opentelemetry/instrumentation-tedious": "^0.17.0", + "@opentelemetry/instrumentation-undici": "^0.9.0", + "@opentelemetry/instrumentation-winston": "^0.43.0", + "@opentelemetry/resource-detector-alibaba-cloud": "^0.29.6", + "@opentelemetry/resource-detector-aws": "^1.9.0", + "@opentelemetry/resource-detector-azure": "^0.4.0", + "@opentelemetry/resource-detector-container": "^0.5.2", + "@opentelemetry/resource-detector-gcp": "^0.31.0", "@opentelemetry/resources": "^1.24.0", - "@opentelemetry/sdk-node": "^0.51.0" + "@opentelemetry/sdk-node": "^0.56.0" }, "engines": { "node": ">=14" @@ -219,43 +231,156 @@ } }, "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.24.1.tgz", - "integrity": "sha512-R5r6DO4kgEOVBxFXhXjwospLQkv+sYxwCfjvoZBe7Zm6KKXAV9kDSJhi/D1BweowdZmO+sdbENLs374gER8hpQ==", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.29.0.tgz", + "integrity": "sha512-TKT91jcFXgHyIDF1lgJF3BHGIakn6x0Xp7Tq3zoS3TMPzT9IlP0xEavWP8C1zGjU9UmZP2VR1tJhW9Az1A3w8Q==", + "license": "Apache-2.0", "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "node_modules/@opentelemetry/core": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz", - "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.29.0.tgz", + "integrity": "sha512-gmT7vAreXl0DTHD2rVZcw3+l2g84+5XiHIqdBUxXbExymPCvSsGOpiwMmn8nkiJur28STV31wnhIDrzWDPzjfA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/exporter-logs-otlp-grpc": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-grpc/-/exporter-logs-otlp-grpc-0.56.0.tgz", + "integrity": "sha512-/ef8wcphVKZ0uI7A1oqQI/gEMiBUlkeBkM9AGx6AviQFIbgPVSdNK3+bHBkyq5qMkyWgkeQCSJ0uhc5vJpf0dw==", + "license": "Apache-2.0", + "dependencies": { + "@grpc/grpc-js": "^1.7.1", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/otlp-grpc-exporter-base": "0.56.0", + "@opentelemetry/otlp-transformer": "0.56.0", + "@opentelemetry/sdk-logs": "0.56.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/exporter-logs-otlp-grpc/node_modules/@opentelemetry/sdk-logs": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.56.0.tgz", + "integrity": "sha512-OS0WPBJF++R/cSl+terUjQH5PebloidB1Jbbecgg2rnCmQbTST9xsRes23bLfDQVRvmegmHqDh884h0aRdJyLw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/semantic-conventions": "1.24.1" + "@opentelemetry/api-logs": "0.56.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/resources": "1.29.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" + "@opentelemetry/api": ">=1.4.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/exporter-logs-otlp-http": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.56.0.tgz", + "integrity": "sha512-gN/itg2B30pa+yAqiuIHBCf3E77sSBlyWVzb+U/MDLzEMOwfnexlMvOWULnIO1l2xR2MNLEuPCQAOrL92JHEJg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.56.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/otlp-exporter-base": "0.56.0", + "@opentelemetry/otlp-transformer": "0.56.0", + "@opentelemetry/sdk-logs": "0.56.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/exporter-logs-otlp-http/node_modules/@opentelemetry/sdk-logs": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.56.0.tgz", + "integrity": "sha512-OS0WPBJF++R/cSl+terUjQH5PebloidB1Jbbecgg2rnCmQbTST9xsRes23bLfDQVRvmegmHqDh884h0aRdJyLw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.56.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/resources": "1.29.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/exporter-logs-otlp-proto": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-proto/-/exporter-logs-otlp-proto-0.56.0.tgz", + "integrity": "sha512-MaO+eGrdksd8MpEbDDLbWegHc3w6ualZV6CENxNOm3wqob0iOx78/YL2NVIKyP/0ktTUIs7xIppUYqfY3ogFLQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.56.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/otlp-exporter-base": "0.56.0", + "@opentelemetry/otlp-transformer": "0.56.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/sdk-logs": "0.56.0", + "@opentelemetry/sdk-trace-base": "1.29.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/exporter-logs-otlp-proto/node_modules/@opentelemetry/sdk-logs": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.56.0.tgz", + "integrity": "sha512-OS0WPBJF++R/cSl+terUjQH5PebloidB1Jbbecgg2rnCmQbTST9xsRes23bLfDQVRvmegmHqDh884h0aRdJyLw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.56.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/resources": "1.29.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, "node_modules/@opentelemetry/exporter-metrics-otlp-grpc": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.51.1.tgz", - "integrity": "sha512-YhND/e3zvQMvChrF9nduDqT+rZN4X5BDZUidiupYtHe+yhLyUSACkJcTuygMLrJfrGccJiwCZoZxJmz8hw0Vog==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.56.0.tgz", + "integrity": "sha512-yqxN9UiIu020XYX/vny06VdQIQ7/f7f+z0xEL8QGbrO9fZB8lRMvea2pxbjqW9mzZ5m7kV6t3zsOALcEg5ky1w==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.24.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.51.1", - "@opentelemetry/otlp-exporter-base": "0.51.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.51.1", - "@opentelemetry/otlp-transformer": "0.51.1", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/sdk-metrics": "1.24.1" + "@opentelemetry/core": "1.29.0", + "@opentelemetry/exporter-metrics-otlp-http": "0.56.0", + "@opentelemetry/otlp-exporter-base": "0.56.0", + "@opentelemetry/otlp-grpc-exporter-base": "0.56.0", + "@opentelemetry/otlp-transformer": "0.56.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/sdk-metrics": "1.29.0" }, "engines": { "node": ">=14" @@ -265,15 +390,16 @@ } }, "node_modules/@opentelemetry/exporter-metrics-otlp-http": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.51.1.tgz", - "integrity": "sha512-oFXvif9iksHUxrzG3P8ohMLt7xSrl+oDMqxD/3XXndU761RFAKSbRDpfrQs25U5D+A2aMV3qk+4kfUWdJhZ77g==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.56.0.tgz", + "integrity": "sha512-GD5QuCT6js+mDpb5OBO6OSyCH+k2Gy3xPHJV9BnjV8W6kpSuY8y2Samzs5vl23UcGMq6sHLAbs+Eq/VYsLMiVw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1", - "@opentelemetry/otlp-exporter-base": "0.51.1", - "@opentelemetry/otlp-transformer": "0.51.1", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/sdk-metrics": "1.24.1" + "@opentelemetry/core": "1.29.0", + "@opentelemetry/otlp-exporter-base": "0.56.0", + "@opentelemetry/otlp-transformer": "0.56.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/sdk-metrics": "1.29.0" }, "engines": { "node": ">=14" @@ -283,70 +409,73 @@ } }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.51.1.tgz", - "integrity": "sha512-P9+Hkszih95ITvldGZ+kXvj9HpD1QfS+PwooyHK72GYA+Bgm+yUSAsDkUkDms8+s9HW6poxURv3LcjaMuBBpVQ==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.56.0.tgz", + "integrity": "sha512-9hRHue78CV2XShAt30HadBK8XEtOBiQmnkYquR1RQyf2RYIdJvhiypEZ+Jh3NGW8Qi14icTII/1oPTQlhuyQdQ==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.24.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.51.1", - "@opentelemetry/otlp-transformer": "0.51.1", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/sdk-trace-base": "1.24.1" + "@opentelemetry/core": "1.29.0", + "@opentelemetry/otlp-grpc-exporter-base": "0.56.0", + "@opentelemetry/otlp-transformer": "0.56.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/sdk-trace-base": "1.29.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/exporter-trace-otlp-http": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.51.1.tgz", - "integrity": "sha512-n+LhLPsX07URh+HhV2SHVSvz1t4G/l/CE5BjpmhAPqeTceFac1VpyQkavWEJbvnK5bUEXijWt4LxAxFpt2fXyw==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.56.0.tgz", + "integrity": "sha512-vqVuJvcwameA0r0cNrRzrZqPLB0otS+95g0XkZdiKOXUo81wYdY6r4kyrwz4nSChqTBEFm0lqi/H2OWGboOa6g==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1", - "@opentelemetry/otlp-exporter-base": "0.51.1", - "@opentelemetry/otlp-transformer": "0.51.1", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/sdk-trace-base": "1.24.1" + "@opentelemetry/core": "1.29.0", + "@opentelemetry/otlp-exporter-base": "0.56.0", + "@opentelemetry/otlp-transformer": "0.56.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/sdk-trace-base": "1.29.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/exporter-trace-otlp-proto": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.51.1.tgz", - "integrity": "sha512-SE9f0/6V6EeXC9i+WA4WFjS1EYgaBCpAnI5+lxWvZ7iO7EU1IvHvZhP6Kojr0nLldo83gqg6G7OWFqsID3uF+w==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.56.0.tgz", + "integrity": "sha512-UYVtz8Kp1QZpZFg83ZrnwRIxF2wavNyi1XaIKuQNFjlYuGCh8JH4+GOuHUU4G8cIzOkWdjNR559vv0Q+MCz+1w==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1", - "@opentelemetry/otlp-exporter-base": "0.51.1", - "@opentelemetry/otlp-proto-exporter-base": "0.51.1", - "@opentelemetry/otlp-transformer": "0.51.1", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/sdk-trace-base": "1.24.1" + "@opentelemetry/core": "1.29.0", + "@opentelemetry/otlp-exporter-base": "0.56.0", + "@opentelemetry/otlp-transformer": "0.56.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/sdk-trace-base": "1.29.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/exporter-zipkin": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.24.1.tgz", - "integrity": "sha512-+Rl/VFmu2n6eaRMnVbyfZx1DqR/1KNyWebYuHyQBZaEAVIn/ZLgmofRpXN1X2nhJ4BNaptQUNxAstCYYz6dKoQ==", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.29.0.tgz", + "integrity": "sha512-9wNUxbl/sju2AvA3UhL2kLF1nfhJ4dVJgvktc3hx80Bg/fWHvF6ik4R3woZ/5gYFqZ97dcuik0dWPQEzLPNBtg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/sdk-trace-base": "1.24.1", - "@opentelemetry/semantic-conventions": "1.24.1" + "@opentelemetry/core": "1.29.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/sdk-trace-base": "1.29.0", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -356,13 +485,14 @@ } }, "node_modules/@opentelemetry/instrumentation": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.51.1.tgz", - "integrity": "sha512-JIrvhpgqY6437QIqToyozrUG1h5UhwHkaGK/WAX+fkrpyPtc+RO5FkRtUd9BH0MibabHHvqsnBGKfKVijbmp8w==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.56.0.tgz", + "integrity": "sha512-2KkGBKE+FPXU1F0zKww+stnlUxUTlBvLCiWdP63Z9sqXYeNI/ziNzsxAp4LAdUcTQmXjw1IWgvm5CAb/BHy99w==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.51.1", - "@types/shimmer": "^1.0.2", - "import-in-the-middle": "1.7.4", + "@opentelemetry/api-logs": "0.56.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", "semver": "^7.5.2", "shimmer": "^1.2.1" @@ -375,13 +505,14 @@ } }, "node_modules/@opentelemetry/instrumentation-amqplib": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.37.0.tgz", - "integrity": "sha512-XjOHeAOreh0XX4jlzTTUWWqu1dIGvMWM8yvd43JJdRMAmTZisezjKsxLjMEMIvF0PzQdoXwh9DiS9nYE4/QmpA==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.45.0.tgz", + "integrity": "sha512-SlKLsOS65NGMIBG1Lh/hLrMDU9WzTUF25apnV6ZmWZB1bBmUwan7qrwwrTu1cL5LzJWCXOdZPuTaxP7pC9qxnQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -391,15 +522,14 @@ } }, "node_modules/@opentelemetry/instrumentation-aws-lambda": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.41.1.tgz", - "integrity": "sha512-/BLG+0DQr2tCILFGJKJH2Fg6eyjhqOlVflYpNddUEXnzyQ/PAhTdgirkqbICFgeSW2XYcEY9zXpuRldrVNw9cA==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.49.0.tgz", + "integrity": "sha512-FIKQSzX/MSzfARqgm7lX9p/QUj7USyicioBYI5BFGuOOoLefxBlJINAcRs3EvCh1taEnJ7/LpbrhlcF7r4Yqvg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/propagator-aws-xray": "^1.3.1", - "@opentelemetry/resources": "^1.8.0", - "@opentelemetry/semantic-conventions": "^1.22.0", - "@types/aws-lambda": "8.10.122" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/aws-lambda": "8.10.143" }, "engines": { "node": ">=14" @@ -409,14 +539,15 @@ } }, "node_modules/@opentelemetry/instrumentation-aws-sdk": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.41.0.tgz", - "integrity": "sha512-7+8WMY0LQeqv6KIObXK+Py44qNFLeCU0ZLLxSZtXEbZ2wJlQISP1St65jRto0NV7isnZoyuOxb2+ZpypPPNv7Q==", + "version": "0.48.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.48.0.tgz", + "integrity": "sha512-Bl4geb9DS5Zxr5mOsDcDTLjwrfipQ4KDl1ZT5gmoOvVuZPp308reGdtnO1QmqbvMwcgMxD2aBdWUoYgtx1WgWw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/propagation-utils": "^0.30.9", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/propagation-utils": "^0.30.14", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -426,12 +557,13 @@ } }, "node_modules/@opentelemetry/instrumentation-bunyan": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.38.0.tgz", - "integrity": "sha512-ThNcgTE22W7PKzTzz5qfGxb5Gf7rA3EORousYo2nJWHHcF6gqiMNv2+GXY3MdpjLBr8IgCfhtvbQdD6rlIPUpA==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.44.0.tgz", + "integrity": "sha512-9JHcfUPejOx5ULuxrH5K5qOZ9GJSTisuMSZZFVkDigZJ42pMn26Zgmb1HhuiZXd/ZcFgOeLZcwQNpBmF1whftg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "^0.51.0", - "@opentelemetry/instrumentation": "^0.51.0", + "@opentelemetry/api-logs": "^0.56.0", + "@opentelemetry/instrumentation": "^0.56.0", "@types/bunyan": "1.8.9" }, "engines": { @@ -442,12 +574,13 @@ } }, "node_modules/@opentelemetry/instrumentation-cassandra-driver": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.38.0.tgz", - "integrity": "sha512-ML4Vw0it2uIpETfX6skuSIGLHF9D3TUKOfdfrk9lnrzzWSzg2aS6pl3UeepkQX4wXHdzlxVRB0USrUqsmxMd5Q==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.44.0.tgz", + "integrity": "sha512-HbhNoqAelB1T4QtgKJbOy7wB26R15HToLyMmYwNFICyDtfY7nhRmGRSzPt6akpwXpyCq43/P+L6XYTmqSWTK/Q==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.0.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -457,13 +590,14 @@ } }, "node_modules/@opentelemetry/instrumentation-connect": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.36.1.tgz", - "integrity": "sha512-xI5Q/CMmzBmHshPnzzjD19ptFaYO/rQWzokpNio4QixZYWhJsa35QgRvN9FhPkwgtuJIbt/CWWAufJ3egJNHEA==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.42.0.tgz", + "integrity": "sha512-bOoYHBmbnq/jFaLHmXJ55VQ6jrH5fHDMAPjFM0d3JvR0dvIqW7anEoNC33QqYGFYUfVJ50S0d/eoyF61ALqQuA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0", + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0", "@types/connect": "3.4.36" }, "engines": { @@ -474,12 +608,13 @@ } }, "node_modules/@opentelemetry/instrumentation-cucumber": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.6.0.tgz", - "integrity": "sha512-90eAF2JPSbPAsOuGfYyctYaoYXqy4Clbxt0j/uUgg6dto4oqwUw3AvTyHQEztLGxeXwEzC1EQigDtVPg5ZexYA==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.12.0.tgz", + "integrity": "sha512-0sAhKYaxi5/SM+z8nbwmezNVlnJGkcZgMA7ClenVMIoH5xjow/b2gzJOWr3Ch7FPEXBcyoY/sIqfYWRwmRXWiw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.0.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -489,11 +624,12 @@ } }, "node_modules/@opentelemetry/instrumentation-dataloader": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.9.0.tgz", - "integrity": "sha512-fiyCOAw+tlbneok1x7P5UseoGW5nS60CWWx7NXzYW+WOexpSmDQQW7olttGa8fqE6/sVCoi1l+QdfVoETZi/NQ==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.15.0.tgz", + "integrity": "sha512-5fP35A2jUPk4SerVcduEkpbRAIoqa2PaP5rWumn01T1uSbavXNccAr3Xvx1N6xFtZxXpLJq4FYqGFnMgDWgVng==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0" + "@opentelemetry/instrumentation": "^0.56.0" }, "engines": { "node": ">=14" @@ -503,13 +639,12 @@ } }, "node_modules/@opentelemetry/instrumentation-dns": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.36.1.tgz", - "integrity": "sha512-NWRbQ7q0E3co/CNTWLZZvUzZoKhB1iTitY282IM8HDTXkA6VRssCfOcvaHw5ezOh23TJbAeYxmmpVj4hFvDPYQ==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.42.0.tgz", + "integrity": "sha512-HsKYWwMADJAcdY4UkNNbvcg9cm5Xhz5wxBPyT15z7wigatiEoCXPrbbbRDmCe+eKTc2tRxUPmg49u6MsIGcUmg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "semver": "^7.5.4" + "@opentelemetry/instrumentation": "^0.56.0" }, "engines": { "node": ">=14" @@ -519,13 +654,14 @@ } }, "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.39.0.tgz", - "integrity": "sha512-AG8U7z7D0JcBu/7dDcwb47UMEzj9/FMiJV2iQZqrsZnxR3FjB9J9oIH2iszJYci2eUdp2WbdvtpD9RV/zmME5A==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.46.0.tgz", + "integrity": "sha512-BCEClDj/HPq/1xYRAlOr6z+OUnbp2eFp18DSrgyQz4IT9pkdYk8eWHnMi9oZSqlC6J5mQzkFmaW5RrKb1GLQhg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -535,13 +671,14 @@ } }, "node_modules/@opentelemetry/instrumentation-fastify": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.36.1.tgz", - "integrity": "sha512-3Nfm43PI0I+3EX+1YbSy6xbDu276R1Dh1tqAk68yd4yirnIh52Kd5B+nJ8CgHA7o3UKakpBjj6vSzi5vNCzJIA==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.43.0.tgz", + "integrity": "sha512-Lmdsg7tYiV+K3/NKVAQfnnLNGmakUOFdB0PhoTh2aXuSyCmyNnnDvhn2MsArAPTZ68wnD5Llh5HtmiuTkf+DyQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -551,12 +688,13 @@ } }, "node_modules/@opentelemetry/instrumentation-fs": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.12.0.tgz", - "integrity": "sha512-Waf+2hekJRxIwq1PmivxOWLdMOtYbY22hKr34gEtfbv2CArSv8FBJH4BmQxB9o5ZcwkdKu589qs009dbuSfNmQ==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.18.0.tgz", + "integrity": "sha512-kC40y6CEMONm8/MWwoF5GHWIC7gOdF+g3sgsjfwJaUkgD6bdWV+FgG0XApqSbTQndICKzw3RonVk8i7s6mHqhA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.51.0" + "@opentelemetry/instrumentation": "^0.56.0" }, "engines": { "node": ">=14" @@ -566,12 +704,12 @@ } }, "node_modules/@opentelemetry/instrumentation-generic-pool": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.36.0.tgz", - "integrity": "sha512-CExAEqJvK8jYxrhN8cl6EaGg57EGJi+qsSKouLC5lndXi68gZLOKbZIMZg4pF0kNfp/D4BFaGmA6Ap7d5WoPTw==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.42.0.tgz", + "integrity": "sha512-J4QxqiQ1imtB9ogzsOnHra0g3dmmLAx4JCeoK3o0rFes1OirljNHnO8Hsj4s1jAir8WmWvnEEQO1y8yk6j2tog==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.0.0" + "@opentelemetry/instrumentation": "^0.56.0" }, "engines": { "node": ">=14" @@ -581,11 +719,12 @@ } }, "node_modules/@opentelemetry/instrumentation-graphql": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.40.0.tgz", - "integrity": "sha512-LVRdEHWACWOczv2imD+mhUrLMxsEjPPi32vIZJT57zygR5aUiA4em8X3aiGOCycgbMWkIu8xOSGSxdx3JmzN+w==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.46.0.tgz", + "integrity": "sha512-tplk0YWINSECcK89PGM7IVtOYenXyoOuhOQlN0X0YrcDUfMS4tZMKkVc0vyhNWYYrexnUHwNry2YNBNugSpjlQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0" + "@opentelemetry/instrumentation": "^0.56.0" }, "engines": { "node": ">=14" @@ -595,12 +734,13 @@ } }, "node_modules/@opentelemetry/instrumentation-grpc": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.51.1.tgz", - "integrity": "sha512-coRTugFL7De/VNH/1NqPlxnfik87jS+jBXsny+Y/lMhXIA3x8t71IyL9ihuewkD+lNtIxIz6Y7Sq6kPuOqz5dQ==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.56.0.tgz", + "integrity": "sha512-cmqCZqyKtyu4oLx3rQmPMeqAo69er7ULnbEBTFCW0++AAimIoAXJptrEvB5X9HYr0NP2TqF8As/vlV3IVmY5OQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "0.51.1", - "@opentelemetry/semantic-conventions": "1.24.1" + "@opentelemetry/instrumentation": "0.56.0", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -610,13 +750,14 @@ } }, "node_modules/@opentelemetry/instrumentation-hapi": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.38.0.tgz", - "integrity": "sha512-ZcOqEuwuutTDYIjhDIStix22ECblG/i9pHje23QGs4Q4YS4RMaZ5hKCoQJxW88Z4K7T53rQkdISmoXFKDV8xMg==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.44.0.tgz", + "integrity": "sha512-4HdNIMNXWK1O6nsaQOrACo83QWEVoyNODTdVDbUqtqXiv2peDfD0RAPhSQlSGWLPw3S4d9UoOmrV7s2HYj6T2A==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.0.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -626,13 +767,15 @@ } }, "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.51.1.tgz", - "integrity": "sha512-6b3nZnFFEz/3xZ6w8bVxctPUWIPWiXuPQ725530JgxnN1cvYFd8CJ75PrHZNjynmzSSnqBkN3ef4R9N+RpMh8Q==", - "dependencies": { - "@opentelemetry/core": "1.24.1", - "@opentelemetry/instrumentation": "0.51.1", - "@opentelemetry/semantic-conventions": "1.24.1", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.56.0.tgz", + "integrity": "sha512-/bWHBUAq8VoATnH9iLk5w8CE9+gj+RgYSUphe7hry472n6fYl7+4PvuScoQMdmSUTprKq/gyr2kOWL6zrC7FkQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.29.0", + "@opentelemetry/instrumentation": "0.56.0", + "@opentelemetry/semantic-conventions": "1.28.0", + "forwarded-parse": "2.1.2", "semver": "^7.5.2" }, "engines": { @@ -643,13 +786,30 @@ } }, "node_modules/@opentelemetry/instrumentation-ioredis": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.40.0.tgz", - "integrity": "sha512-Jv/fH7KhpWe4KBirsiqeUJIYrsdR2iu2l4nWhfOlRvaZ+zYIiLEzTQR6QhBbyRoAbU4OuYJzjWusOmmpGBnwng==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.46.0.tgz", + "integrity": "sha512-sOdsq8oGi29V58p1AkefHvuB3l2ymP1IbxRIX3y4lZesQWKL8fLhBmy8xYjINSQ5gHzWul2yoz7pe7boxhZcqQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", + "@opentelemetry/instrumentation": "^0.56.0", "@opentelemetry/redis-common": "^0.36.2", - "@opentelemetry/semantic-conventions": "^1.0.0" + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-kafkajs": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.6.0.tgz", + "integrity": "sha512-MGQrzqEUAl0tacKJUFpuNHJesyTi51oUzSVizn7FdvJplkRIdS11FukyZBZJEscofSEdk7Ycmg+kNMLi5QHUFg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -659,12 +819,13 @@ } }, "node_modules/@opentelemetry/instrumentation-knex": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.36.1.tgz", - "integrity": "sha512-6bEuiI+yMf3D0+ZWZE2AKmXhIhBvZ0brdO/0A8lUqeqeS+sS4fTcjA1F2CclsCNxYWEgcs8o3QyQqPceBeVRlg==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.43.0.tgz", + "integrity": "sha512-mOp0TRQNFFSBj5am0WF67fRO7UZMUmsF3/7HSDja9g3H4pnj+4YNvWWyZn4+q0rGrPtywminAXe0rxtgaGYIqg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -674,15 +835,14 @@ } }, "node_modules/@opentelemetry/instrumentation-koa": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.40.0.tgz", - "integrity": "sha512-dJc3H/bKMcgUYcQpLF+1IbmUKus0e5Fnn/+ru/3voIRHwMADT3rFSUcGLWSczkg68BCgz0vFWGDTvPtcWIFr7A==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.46.0.tgz", + "integrity": "sha512-RcWXMQdJQANnPUaXbHY5G0Fg6gmleZ/ZtZeSsekWPaZmQq12FGk0L1UwodIgs31OlYfviAZ4yTeytoSUkgo5vQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0", - "@types/koa": "2.14.0", - "@types/koa__router": "12.0.3" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -692,11 +852,12 @@ } }, "node_modules/@opentelemetry/instrumentation-lru-memoizer": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.37.0.tgz", - "integrity": "sha512-dHLrn55qVWsHJQYdForPWPUWDk2HZ2jjzkT+WoQSqpYT1j4HxfoiLfBTF+I3EbEYFAJnDRmRAUfA6nU5GPdCLQ==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.43.0.tgz", + "integrity": "sha512-fZc+1eJUV+tFxaB3zkbupiA8SL3vhDUq89HbDNg1asweYrEb9OlHIB+Ot14ZiHUc1qCmmWmZHbPTwa56mVVwzg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0" + "@opentelemetry/instrumentation": "^0.56.0" }, "engines": { "node": ">=14" @@ -706,12 +867,13 @@ } }, "node_modules/@opentelemetry/instrumentation-memcached": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.36.0.tgz", - "integrity": "sha512-5efkT8ZfN8il5z+yfKYFGm2YR3mhlhaJoGfNOAylKE/6tUH3WDTTWaP7nrURtWGc+fuvDktcEch18Se8qsGS7w==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.42.0.tgz", + "integrity": "sha512-6peg2nImB4JNpK+kW95b12B6tRSwRpc0KCm6Ol41uDYPli800J9vWi+DGoPsmTrgZpkEfCe9Z9Ob9Z6Fth2zwg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.0.0", + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0", "@types/memcached": "^2.2.6" }, "engines": { @@ -722,13 +884,13 @@ } }, "node_modules/@opentelemetry/instrumentation-mongodb": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.43.0.tgz", - "integrity": "sha512-bMKej7Y76QVUD3l55Q9YqizXybHUzF3pujsBFjqbZrRn2WYqtsDtTUlbCK7fvXNPwFInqZ2KhnTqd0gwo8MzaQ==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.50.0.tgz", + "integrity": "sha512-DtwJMjYFXFT5auAvv8aGrBj1h3ciA/dXQom11rxL7B1+Oy3FopSpanvwYxJ+z0qmBrQ1/iMuWELitYqU4LnlkQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/sdk-metrics": "^1.9.1", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -738,13 +900,14 @@ } }, "node_modules/@opentelemetry/instrumentation-mongoose": { - "version": "0.38.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.38.1.tgz", - "integrity": "sha512-zaeiasdnRjXe6VhYCBMdkmAVh1S5MmXC/0spet+yqoaViGnYst/DOxPvhwg3yT4Yag5crZNWsVXnA538UjP6Ow==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.45.0.tgz", + "integrity": "sha512-zHgNh+A01C5baI2mb5dAGyMC7DWmUpOfwpV8axtC0Hd5Uzqv+oqKgKbVDIVhOaDkPxjgVJwYF9YQZl2pw2qxIA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -754,13 +917,14 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql": { - "version": "0.38.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.38.1.tgz", - "integrity": "sha512-+iBAawUaTfX/HAlvySwozx0C2B6LBfNPXX1W8Z2On1Uva33AGkw2UjL9XgIg1Pj4eLZ9R4EoJ/aFz+Xj4E/7Fw==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.44.0.tgz", + "integrity": "sha512-al7jbXvT/uT1KV8gdNDzaWd5/WXf+mrjrsF0/NtbnqLa0UUFGgQnoK3cyborgny7I+KxWhL8h7YPTf6Zq4nKsg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0", - "@types/mysql": "2.15.22" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/mysql": "2.15.26" }, "engines": { "node": ">=14" @@ -770,12 +934,13 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql2": { - "version": "0.38.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.38.1.tgz", - "integrity": "sha512-qkpHMgWSDTYVB1vlZ9sspf7l2wdS5DDq/rbIepDwX5BA0N0068JTQqh0CgAh34tdFqSCnWXIhcyOXC2TtRb0sg==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.44.0.tgz", + "integrity": "sha512-e9QY4AGsjGFwmfHd6kBa4yPaQZjAq2FuxMb0BbKlXCAjG+jwqw+sr9xWdJGR60jMsTq52hx3mAlE3dUJ9BipxQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0", + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1" }, "engines": { @@ -786,12 +951,13 @@ } }, "node_modules/@opentelemetry/instrumentation-nestjs-core": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.37.1.tgz", - "integrity": "sha512-ebYQjHZEmGHWEALwwDGhSQVLBaurFnuLIkZD5igPXrt7ohfF4lc5/4al1LO+vKc0NHk8SJWStuRueT86ISA8Vg==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.43.0.tgz", + "integrity": "sha512-NEo4RU7HTjiaXk3curqXUvCb9alRiFWxQY//+hvDXwWLlADX2vB6QEmVCeEZrKO+6I/tBrI4vNdAnbCY9ldZVg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.0.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -801,12 +967,13 @@ } }, "node_modules/@opentelemetry/instrumentation-net": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.36.0.tgz", - "integrity": "sha512-rZlbSgwAJys8lpug+xIeAdO98ypYMAPVqrHqc4AHuUl5S4MULHEcjGLMZLoE/guEGO4xAQ5XUezpRFGM1SAnsg==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.42.0.tgz", + "integrity": "sha512-RCX1e4aHBxpTdm3xyQWDF6dbfclRY1xXAzZnEwuFj1IO+DAqnu8oO11NRBIfH6TNRBmeBKbpiaGbmzCV9ULwIA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.0.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -816,15 +983,17 @@ } }, "node_modules/@opentelemetry/instrumentation-pg": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.41.0.tgz", - "integrity": "sha512-BSlhpivzBD77meQNZY9fS4aKgydA8AJBzv2dqvxXFy/Hq64b7HURgw/ztbmwFeYwdF5raZZUifiiNSMLpOJoSA==", - "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.49.0.tgz", + "integrity": "sha512-3alvNNjPXVdAPdY1G7nGRVINbDxRK02+KAugDiEpzw0jFQfU8IzFkSWA4jyU4/GbMxKvHD+XIOEfSjpieSodKw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "^1.26.0", + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "1.27.0", "@opentelemetry/sql-common": "^0.40.1", "@types/pg": "8.6.1", - "@types/pg-pool": "2.0.4" + "@types/pg-pool": "2.0.6" }, "engines": { "node": ">=14" @@ -833,12 +1002,24 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", + "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/instrumentation-pino": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.39.0.tgz", - "integrity": "sha512-uA17F2iP77o3NculB63QD2zv3jkJ093Gfb0GxHLEqTIqpYs1ToJ53ybWwjJwqFByxk7GrliaxaxVtWC23PKzBg==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.45.0.tgz", + "integrity": "sha512-u7XwRdMDPzB6PHRo1EJNxTmjpHPnLpssYlr5t89aWFXP6fP3M2oRKjyX8EZHTSky/6GOMy860mzmded2VVFvfg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0" + "@opentelemetry/api-logs": "^0.56.0", + "@opentelemetry/core": "^1.25.0", + "@opentelemetry/instrumentation": "^0.56.0" }, "engines": { "node": ">=14" @@ -848,13 +1029,14 @@ } }, "node_modules/@opentelemetry/instrumentation-redis": { - "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.39.1.tgz", - "integrity": "sha512-HUjTerD84jRJnSyDrRPqn6xQ7K91o9qLflRPZqzRvq0GRj5PMfc6TJ/z3q/ayWy/2Kzffhrp7HCIVp0u0TkgUg==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.45.0.tgz", + "integrity": "sha512-IKooJ9pUwPhL5nGEMi9QXvO6pMhwgJe6BzmZ0BMoZweKasC0Y0GekKjPw86Lhx+X1xoJCOFJhoWE9c5SnBJVcw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", + "@opentelemetry/instrumentation": "^0.56.0", "@opentelemetry/redis-common": "^0.36.2", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -864,13 +1046,14 @@ } }, "node_modules/@opentelemetry/instrumentation-redis-4": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.39.0.tgz", - "integrity": "sha512-Zpfqfi83KeKgVQ0C2083GZPon3ZPYQ5E59v9FAbhubtOoUb9Rh7n111YD8FPW3sgx6JKp1odXmBmfQhWCaTOpQ==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.45.0.tgz", + "integrity": "sha512-Sjgym1xn3mdxPRH5CNZtoz+bFd3E3NlGIu7FoYr4YrQouCc9PbnmoBcmSkEdDy5LYgzNildPgsjx9l0EKNjKTQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", + "@opentelemetry/instrumentation": "^0.56.0", "@opentelemetry/redis-common": "^0.36.2", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -880,13 +1063,14 @@ } }, "node_modules/@opentelemetry/instrumentation-restify": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.38.0.tgz", - "integrity": "sha512-VYK47Z9GBaZX5MQLL7kZDdzQDdyUtHRD4J/GSr6kdwmIpdpUQXLsV3EnboeB8P+BlpucF57FyJKE8yWTOEMfnA==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.44.0.tgz", + "integrity": "sha512-JUIs6NcSkH+AtUgaUknD+1M4GQA5vOPKqwJqdaJbaEQzHo+QTDn8GY1iiSKXktL68OwRddbyQv6tu2NyCGcKSw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -896,12 +1080,13 @@ } }, "node_modules/@opentelemetry/instrumentation-router": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.37.0.tgz", - "integrity": "sha512-+OPcm7C9I5oPqnpStE+1WkdPWjRx0k5XKratxQmIDFZrmhRcqvMte3vrrzE/OBPg9iqh2tKrSe0y7+0sRfTJyQ==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.43.0.tgz", + "integrity": "sha512-IkSBWfzlpwLZSJMj3rDG21bDYqbWvW3D/HEx5yCxjUUWVbcz9tRKXjxwG1LB6ZJfnXwwVIOgbz+7XW0HyAXr9Q==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -911,11 +1096,12 @@ } }, "node_modules/@opentelemetry/instrumentation-runtime-node": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-runtime-node/-/instrumentation-runtime-node-0.10.0.tgz", - "integrity": "sha512-hvwbi9iSqiclqSkRNFLW/3/v5drUPfD8V9zAmXZWZA68X0yygb2nPQlGce9Aba7p3l+Z4wGL8WcPtHDN2XzpoQ==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-runtime-node/-/instrumentation-runtime-node-0.11.0.tgz", + "integrity": "sha512-d7ZdzwnCpqaqvHkjowh8WA7/ZYr1jbGIo8QIpNPO+fqaxcm5NkzwP4kGpxI4PTnmeUTKcd6Bl/cPcKkR89u0ng==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.55.0" + "@opentelemetry/instrumentation": "^0.56.0" }, "engines": { "node": ">=17.4.0" @@ -924,54 +1110,14 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-runtime-node/node_modules/@opentelemetry/api-logs": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.55.0.tgz", - "integrity": "sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==", - "dependencies": { - "@opentelemetry/api": "^1.3.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@opentelemetry/instrumentation-runtime-node/node_modules/@opentelemetry/instrumentation": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.55.0.tgz", - "integrity": "sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==", - "dependencies": { - "@opentelemetry/api-logs": "0.55.0", - "@types/shimmer": "^1.2.0", - "import-in-the-middle": "^1.8.1", - "require-in-the-middle": "^7.1.1", - "semver": "^7.5.2", - "shimmer": "^1.2.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-runtime-node/node_modules/import-in-the-middle": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.2.tgz", - "integrity": "sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA==", - "dependencies": { - "acorn": "^8.8.2", - "acorn-import-attributes": "^1.9.5", - "cjs-module-lexer": "^1.2.2", - "module-details-from-path": "^1.0.3" - } - }, "node_modules/@opentelemetry/instrumentation-socket.io": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.39.0.tgz", - "integrity": "sha512-4J2ehk5mJyDT6j2yJCOuPxAjit5QB1Fwzhx0LID5jjvhI9LxzZIGDNAPTTHyghSiaRDeNMzceXKkkEQJkg2MNw==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.45.0.tgz", + "integrity": "sha512-X/CUjHqX1mZHEqXjD4AgVA5VXW1JHIauj1LDEjUDky/3RCsUTysj031x0Sq+8yBwcPyHF6k9vZ8DNw+CfxscOQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.0.0" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -981,13 +1127,14 @@ } }, "node_modules/@opentelemetry/instrumentation-tedious": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.10.1.tgz", - "integrity": "sha512-maSXMxgS0szU52khQzAROV4nWr+3M8mZajMQOc3/7tYjo+Q3HlWAowOuagPvp4pwROK4x6oDaFYlY+ZSj1qjYA==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.17.0.tgz", + "integrity": "sha512-yRBz2409an03uVd1Q2jWMt3SqwZqRFyKoWYYX3hBAtPDazJ4w5L+1VOij71TKwgZxZZNdDBXImTQjii+VeuzLg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.51.0", - "@opentelemetry/semantic-conventions": "^1.22.0", - "@types/tedious": "^4.0.10" + "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/tedious": "^4.0.14" }, "engines": { "node": ">=14" @@ -997,12 +1144,13 @@ } }, "node_modules/@opentelemetry/instrumentation-undici": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.2.0.tgz", - "integrity": "sha512-RH9WdVRtpnyp8kvya2RYqKsJouPxvHl7jKPsIfrbL8u2QCKloAGi0uEqDHoOS15ZRYPQTDXZ7d8jSpUgSQmvpA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.9.0.tgz", + "integrity": "sha512-lxc3cpUZ28CqbrWcUHxGW/ObDpMOYbuxF/ZOzeFZq54P9uJ2Cpa8gcrC9F716mtuiMaekwk8D6n34vg/JtkkxQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.51.0" + "@opentelemetry/instrumentation": "^0.56.0" }, "engines": { "node": ">=14" @@ -1012,12 +1160,13 @@ } }, "node_modules/@opentelemetry/instrumentation-winston": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.37.0.tgz", - "integrity": "sha512-vOx55fxdNjo2XojJf8JN4jP7VVvQCh7UQzzQ2Q2FpGJpt8Z3EErKaY8xOBkOuJH0TtL/Q72rmIn9c+mRG46BxA==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.43.0.tgz", + "integrity": "sha512-TVvRwqjmf4+CcjsdkXc+VHiIG0Qzzim5dx8cN5wXRt4+UYIjyZpnhi/WmSjC0fJdkKb6DNjTIw7ktmB/eRj/jQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "^0.51.0", - "@opentelemetry/instrumentation": "^0.51.0" + "@opentelemetry/api-logs": "^0.56.0", + "@opentelemetry/instrumentation": "^0.56.0" }, "engines": { "node": ">=14" @@ -1027,75 +1176,82 @@ } }, "node_modules/@opentelemetry/otlp-exporter-base": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.51.1.tgz", - "integrity": "sha512-UYlnOYyDdzo1Gw559EHCzru0RwhvuXCwoH8jGo9J4gO1TE58GjnEmIjomMsKBCym3qWNJfIQXw+9SZCV0DdQNg==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.56.0.tgz", + "integrity": "sha512-eURvv0fcmBE+KE1McUeRo+u0n18ZnUeSc7lDlW/dzlqFYasEbsztTK4v0Qf8C4vEY+aMTjPKUxBG0NX2Te3Pmw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1" + "@opentelemetry/core": "1.29.0", + "@opentelemetry/otlp-transformer": "0.56.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/otlp-grpc-exporter-base": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.51.1.tgz", - "integrity": "sha512-ZAS+4pq8o7dsugGTwV9s6JMKSxi+guIHdn0acOv0bqj26e9pWDFx5Ky+bI0aY46uR9Y0JyXqY+KAEYM/SO3DFA==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.56.0.tgz", + "integrity": "sha512-QqM4si8Ew8CW5xVk4mYbfusJzMXyk6tkYA5SI0w/5NBxmiZZaYPwQQ2cu58XUH2IMPAsi71yLJVJQaWBBCta0A==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.24.1", - "@opentelemetry/otlp-exporter-base": "0.51.1", - "protobufjs": "^7.2.3" + "@opentelemetry/core": "1.29.0", + "@opentelemetry/otlp-exporter-base": "0.56.0", + "@opentelemetry/otlp-transformer": "0.56.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/otlp-proto-exporter-base": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.51.1.tgz", - "integrity": "sha512-gxxxwfk0inDMb5DLeuxQ3L8TtptxSiTNHE4nnAJH34IQXAVRhXSXW1rK8PmDKDngRPIZ6J7ncUCjjIn8b+AgqQ==", + "node_modules/@opentelemetry/otlp-transformer": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.56.0.tgz", + "integrity": "sha512-kVkH/W2W7EpgWWpyU5VnnjIdSD7Y7FljQYObAQSKdRcejiwMj2glypZtUdfq1LTJcv4ht0jyTrw1D3CCxssNtQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1", - "@opentelemetry/otlp-exporter-base": "0.51.1", - "protobufjs": "^7.2.3" + "@opentelemetry/api-logs": "0.56.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/sdk-logs": "0.56.0", + "@opentelemetry/sdk-metrics": "1.29.0", + "@opentelemetry/sdk-trace-base": "1.29.0", + "protobufjs": "^7.3.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/otlp-transformer": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.51.1.tgz", - "integrity": "sha512-OppYOXwV9LQqqtYUCywqoOqX/JT9LQ5/FMuPZ//eTkvuHdUC4ZMwz2c6uSoT2R90GWvvGnF1iEqTGyTT3xAt2Q==", + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/sdk-logs": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.56.0.tgz", + "integrity": "sha512-OS0WPBJF++R/cSl+terUjQH5PebloidB1Jbbecgg2rnCmQbTST9xsRes23bLfDQVRvmegmHqDh884h0aRdJyLw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.51.1", - "@opentelemetry/core": "1.24.1", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/sdk-logs": "0.51.1", - "@opentelemetry/sdk-metrics": "1.24.1", - "@opentelemetry/sdk-trace-base": "1.24.1" + "@opentelemetry/api-logs": "0.56.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/resources": "1.29.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.9.0" + "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, "node_modules/@opentelemetry/propagation-utils": { - "version": "0.30.9", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.9.tgz", - "integrity": "sha512-DP2Y91zyw2uNgKLbej6c3IIjyF27sKnRK/UY/6msMIVGPIbZgtH9L0JOioN5L5kYjEkH4CDvt921SjutN7hY4A==", + "version": "0.30.14", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.14.tgz", + "integrity": "sha512-RsdKGFd0PYG5Aop9aq8khYbR8Oq+lYTQBX/9/pk7b+8+0WwdFqrvGDmRxpBAH9hgIvtUgETeshlYctwjo2l9SQ==", + "license": "Apache-2.0", "engines": { "node": ">=14" }, @@ -1103,63 +1259,54 @@ "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@opentelemetry/propagator-aws-xray": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.24.1.tgz", - "integrity": "sha512-RzwoLe6QzsYGcpmxxDbbbgSpe3ncxSM4dtFHXh/rCYGjyq0nZGXKvk26mJtWZ4kQ3nuiIoqSZueIuGmt/mvOTA==", - "dependencies": { - "@opentelemetry/core": "1.24.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" - } - }, "node_modules/@opentelemetry/propagator-b3": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.24.1.tgz", - "integrity": "sha512-nda97ZwhpZKyUJTXqQuKzNhPMUgMLunbbGWn8kroBwegn+nh6OhtyGkrVQsQLNdVKJl0KeB5z0ZgeWszrYhwFw==", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.29.0.tgz", + "integrity": "sha512-ktsNDlqhu+/IPGEJRMj81upg2JupUp+SwW3n1ZVZTnrDiYUiMUW41vhaziA7Q6UDhbZvZ58skDpQhe2ZgNIPvg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1" + "@opentelemetry/core": "1.29.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.24.1.tgz", - "integrity": "sha512-7bRBJn3FG1l195A1m+xXRHvgzAOBsfmRi9uZ5Da18oTh7BLmNDiA8+kpk51FpTsU1PCikPVpRDNPhKVB6lyzZg==", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.29.0.tgz", + "integrity": "sha512-EXIEYmFgybnFMijVgqx1mq/diWwSQcd0JWVksytAVQEnAiaDvP45WuncEVQkFIAC0gVxa2+Xr8wL5pF5jCVKbg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1" + "@opentelemetry/core": "1.29.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "node_modules/@opentelemetry/redis-common": { "version": "0.36.2", "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz", "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==", + "license": "Apache-2.0", "engines": { "node": ">=14" } }, "node_modules/@opentelemetry/resource-detector-alibaba-cloud": { - "version": "0.28.9", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.28.9.tgz", - "integrity": "sha512-cTV2YFFkKAZUZgs5SMknIX4MmFb/0KQhrJuiz2dtJKnI1n7OanCgnMkuXzJ5+CbifRB57I2g3HnwcSPOx3zsKw==", + "version": "0.29.6", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.29.6.tgz", + "integrity": "sha512-BrwutS9Koh08jFhwencsc1t60qEUueMxN+YcN78LE+3r6JMkYgrQzk7C8rJe0nww8KpjZ6A2n7PW+C0FAr8oxg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/resources": "^1.0.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/core": "^1.26.0", + "@opentelemetry/resources": "^1.10.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1169,13 +1316,14 @@ } }, "node_modules/@opentelemetry/resource-detector-aws": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.5.0.tgz", - "integrity": "sha512-JNk/kSzzNQaiMo/F0b/bm8S3Qtr/m89BckN9B4U/cPHSqKLdxX03vgRBOqkXJ5KlAD8kc6K1Etcr8QfvGw6+uA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.9.0.tgz", + "integrity": "sha512-oah9Gek5rrpohjMhQYESnXMDw79wrfhOp0NhjMSjKY9EvNJuDurk/HU3TJ8r2xd/xpGZlcHRZcsJ+qR+tLiQ4g==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", - "@opentelemetry/resources": "^1.0.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/resources": "^1.10.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1185,12 +1333,14 @@ } }, "node_modules/@opentelemetry/resource-detector-azure": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.2.7.tgz", - "integrity": "sha512-+R3VnPaK6rc+kKfdvhgQlYDGXy0+JMAjPNDjcRQSeXY8pVOzHGCIrY+gT6gUrpjsw8w1EgNBVofr+qeNOr+o4A==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.4.0.tgz", + "integrity": "sha512-Ix3DwsbUWyLbBCZ1yqT3hJxc5wFPaJ6dvsIgJA/nmjScwscRCWQqTWXywY4+Q+tytLPnuAKZWbBhxcNvNlcn5Q==", + "license": "Apache-2.0", "dependencies": { + "@opentelemetry/core": "^1.25.1", "@opentelemetry/resources": "^1.10.1", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1200,12 +1350,14 @@ } }, "node_modules/@opentelemetry/resource-detector-container": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.3.9.tgz", - "integrity": "sha512-kfJ78av51EKk09fn5cwe5UNt+G7UBLvPTmfK/nZzvmNs7enw/TGB8X0j0JUHb9487ypRGph6MBoeP1+qZh+w1A==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.5.2.tgz", + "integrity": "sha512-P06PiIC3kDa/UTLupClJvhLeub84x3eNkDth2yXaMP3UZe/BRGv+R6eeUbMN/MvZhARkpSFnoWpXBHpnq/JiYQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/resources": "^1.0.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/core": "^1.26.0", + "@opentelemetry/resources": "^1.10.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1215,13 +1367,14 @@ } }, "node_modules/@opentelemetry/resource-detector-gcp": { - "version": "0.29.9", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.29.9.tgz", - "integrity": "sha512-rTUm0U0cF8f75JzeMpMLbQ4m1uLph+Q31DQKk8ekdDe6SZ1EPD4rM1JgRnbxZtsC2sE8ju87s5nEio77xPz7dQ==", + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.31.0.tgz", + "integrity": "sha512-KNd2Ab3hc0PsBVtWMie11AbQ7i1KXNPYlgTsyGPCHBed6KARVfPekfjWbPEbTXwart4la98abxL0sJLsfgyJSA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", - "@opentelemetry/resources": "^1.0.0", - "@opentelemetry/semantic-conventions": "^1.22.0", + "@opentelemetry/resources": "^1.10.0", + "@opentelemetry/semantic-conventions": "^1.27.0", "gcp-metadata": "^6.0.0" }, "engines": { @@ -1232,117 +1385,126 @@ } }, "node_modules/@opentelemetry/resources": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.24.1.tgz", - "integrity": "sha512-cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ==", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.29.0.tgz", + "integrity": "sha512-s7mLXuHZE7RQr1wwweGcaRp3Q4UJJ0wazeGlc/N5/XSe6UyXfsh1UQGMADYeg7YwD+cEdMtU1yJAUXdnFzYzyQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1", - "@opentelemetry/semantic-conventions": "1.24.1" + "@opentelemetry/core": "1.29.0", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@opentelemetry/sdk-logs": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.51.1.tgz", - "integrity": "sha512-ULQQtl82b673PpZc5/0EtH4V+BrwVOgKJZEB7tYZnGTG3I98tQVk89S9/JSixomDr++F4ih+LSJTCqIKBz+MQQ==", + "node_modules/@opentelemetry/sdk-metrics": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.29.0.tgz", + "integrity": "sha512-MkVtuzDjXZaUJSuJlHn6BSXjcQlMvHcsDV7LjY4P6AJeffMa4+kIGDjzsCf6DkAh6Vqlwag5EWEam3KZOX5Drw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1", - "@opentelemetry/resources": "1.24.1" + "@opentelemetry/core": "1.29.0", + "@opentelemetry/resources": "1.29.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.4.0 <1.9.0", - "@opentelemetry/api-logs": ">=0.39.1" + "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, - "node_modules/@opentelemetry/sdk-metrics": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.24.1.tgz", - "integrity": "sha512-FrAqCbbGao9iKI+Mgh+OsC9+U2YMoXnlDHe06yH7dvavCKzE3S892dGtX54+WhSFVxHR/TMRVJiK/CV93GR0TQ==", + "node_modules/@opentelemetry/sdk-node": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.56.0.tgz", + "integrity": "sha512-FOY7tWboBBxqftLNHPJFmDXo9fRoPd2PlzfEvSd6058BJM9gY4pWCg8lbVlu03aBrQjcfCTAhXk/tz1Yqd/m6g==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1", - "@opentelemetry/resources": "1.24.1", - "lodash.merge": "^4.6.2" + "@opentelemetry/api-logs": "0.56.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/exporter-logs-otlp-grpc": "0.56.0", + "@opentelemetry/exporter-logs-otlp-http": "0.56.0", + "@opentelemetry/exporter-logs-otlp-proto": "0.56.0", + "@opentelemetry/exporter-trace-otlp-grpc": "0.56.0", + "@opentelemetry/exporter-trace-otlp-http": "0.56.0", + "@opentelemetry/exporter-trace-otlp-proto": "0.56.0", + "@opentelemetry/exporter-zipkin": "1.29.0", + "@opentelemetry/instrumentation": "0.56.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/sdk-logs": "0.56.0", + "@opentelemetry/sdk-metrics": "1.29.0", + "@opentelemetry/sdk-trace-base": "1.29.0", + "@opentelemetry/sdk-trace-node": "1.29.0", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.9.0" + "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, - "node_modules/@opentelemetry/sdk-node": { - "version": "0.51.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.51.1.tgz", - "integrity": "sha512-GgmNF9C+6esr8PIJxCqHw84rEOkYm6XdFWZ2+Wyc3qaUt92ACoN7uSw5iKNvaUq62W0xii1wsGxwHzyENtPP8w==", + "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/sdk-logs": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.56.0.tgz", + "integrity": "sha512-OS0WPBJF++R/cSl+terUjQH5PebloidB1Jbbecgg2rnCmQbTST9xsRes23bLfDQVRvmegmHqDh884h0aRdJyLw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.51.1", - "@opentelemetry/core": "1.24.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.51.1", - "@opentelemetry/exporter-trace-otlp-http": "0.51.1", - "@opentelemetry/exporter-trace-otlp-proto": "0.51.1", - "@opentelemetry/exporter-zipkin": "1.24.1", - "@opentelemetry/instrumentation": "0.51.1", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/sdk-logs": "0.51.1", - "@opentelemetry/sdk-metrics": "1.24.1", - "@opentelemetry/sdk-trace-base": "1.24.1", - "@opentelemetry/sdk-trace-node": "1.24.1", - "@opentelemetry/semantic-conventions": "1.24.1" + "@opentelemetry/api-logs": "0.56.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/resources": "1.29.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.9.0" + "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.24.1.tgz", - "integrity": "sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg==", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.29.0.tgz", + "integrity": "sha512-hEOpAYLKXF3wGJpXOtWsxEtqBgde0SCv+w+jvr3/UusR4ll3QrENEGnSl1WDCyRrpqOQ5NCNOvZch9UFVa7MnQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.24.1", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/semantic-conventions": "1.24.1" + "@opentelemetry/core": "1.29.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.24.1.tgz", - "integrity": "sha512-/FZX8uWaGIAwsDhqI8VvQ+qWtfMNlXjaFYGc+vmxgdRFppCSSIRwrPyIhJO1qx61okyYhoyxVEZAfoiNxrfJCg==", - "dependencies": { - "@opentelemetry/context-async-hooks": "1.24.1", - "@opentelemetry/core": "1.24.1", - "@opentelemetry/propagator-b3": "1.24.1", - "@opentelemetry/propagator-jaeger": "1.24.1", - "@opentelemetry/sdk-trace-base": "1.24.1", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.29.0.tgz", + "integrity": "sha512-ZpGYt+VnMu6O0SRKzhuIivr7qJm3GpWnTCMuJspu4kt3QWIpIenwixo5Vvjuu3R4h2Onl/8dtqAiPIs92xd5ww==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/context-async-hooks": "1.29.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/propagator-b3": "1.29.0", + "@opentelemetry/propagator-jaeger": "1.29.0", + "@opentelemetry/sdk-trace-base": "1.29.0", "semver": "^7.5.2" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz", - "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==", + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "license": "Apache-2.0", "engines": { "node": ">=14" } @@ -1351,6 +1513,7 @@ "version": "0.40.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz", "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.1.0" }, @@ -1428,32 +1591,17 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, - "node_modules/@types/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/aws-lambda": { - "version": "8.10.122", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.122.tgz", - "integrity": "sha512-vBkIh9AY22kVOCEKo5CJlyCgmSWvasC+SWUxL/x/vOwRobMpI/HG1xp/Ae3AqmSiZeLUbOhW0FCD3ZjqqUxmXw==" - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } + "version": "8.10.143", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.143.tgz", + "integrity": "sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==", + "license": "MIT" }, "node_modules/@types/bunyan": { "version": "1.8.9", "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.9.tgz", "integrity": "sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1462,111 +1610,25 @@ "version": "3.4.36", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/content-disposition": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz", - "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==" - }, - "node_modules/@types/cookies": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.0.tgz", - "integrity": "sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==", - "dependencies": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.3", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz", - "integrity": "sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-assert": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.5.tgz", - "integrity": "sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==" - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" - }, - "node_modules/@types/keygrip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz", - "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==" - }, - "node_modules/@types/koa": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.14.0.tgz", - "integrity": "sha512-DTDUyznHGNHAl+wd1n0z1jxNajduyTh8R53xoewuerdBzGo6Ogj6F2299BFtrexJw4NtgjsI5SMPCmV9gZwGXA==", - "dependencies": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "node_modules/@types/koa__router": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@types/koa__router/-/koa__router-12.0.3.tgz", - "integrity": "sha512-5YUJVv6NwM1z7m6FuYpKfNLTZ932Z6EF6xy2BbtpJSyn13DKNQEkXVffFVSnJHxvwwWh2SAeumpjAYUELqgjyw==", - "dependencies": { - "@types/koa": "*" - } - }, - "node_modules/@types/koa-compose": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz", - "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==", - "dependencies": { - "@types/koa": "*" - } - }, "node_modules/@types/memcached": { "version": "2.2.10", "resolved": "https://registry.npmjs.org/@types/memcached/-/memcached-2.2.10.tgz", "integrity": "sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" - }, "node_modules/@types/mysql": { - "version": "2.15.22", - "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.22.tgz", - "integrity": "sha512-wK1pzsJVVAjYCSZWQoWHziQZbNggXFDUEIGf54g4ZM/ERuP86uGdWeKZWMYlqTPMZfHJJvLPyogXGvCOg87yLQ==", + "version": "2.15.26", + "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz", + "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1583,6 +1645,7 @@ "version": "8.6.1", "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", + "license": "MIT", "dependencies": { "@types/node": "*", "pg-protocol": "*", @@ -1590,70 +1653,34 @@ } }, "node_modules/@types/pg-pool": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.4.tgz", - "integrity": "sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz", + "integrity": "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==", + "license": "MIT", "dependencies": { "@types/pg": "*" } }, - "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, "node_modules/@types/shimmer": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", - "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" + "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==", + "license": "MIT" }, "node_modules/@types/tedious": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz", "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1665,30 +1692,30 @@ "version": "1.9.5", "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "license": "MIT", "peerDependencies": { "acorn": "^8" } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dependencies": { - "debug": "^4.3.4" - }, + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "license": "MIT", "engines": { "node": ">= 14" } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -1721,6 +1748,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -1739,56 +1767,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/bignumber.js": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", "engines": { "node": "*" } }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -1808,9 +1795,10 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "license": "MIT" }, "node_modules/cliui": { "version": "8.0.1", @@ -1842,11 +1830,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1905,31 +1894,17 @@ "node": ">=6" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-redact": { "version": "3.3.0", @@ -1939,6 +1914,12 @@ "node": ">=6" } }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "license": "BSD-3-Clause" + }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -1947,6 +1928,12 @@ "is-callable": "^1.1.3" } }, + "node_modules/forwarded-parse": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/forwarded-parse/-/forwarded-parse-2.1.2.tgz", + "integrity": "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==", + "license": "MIT" + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -1956,9 +1943,10 @@ } }, "node_modules/gaxios": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.6.0.tgz", - "integrity": "sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "license": "Apache-2.0", "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^7.0.1", @@ -1970,10 +1958,24 @@ "node": ">=14" } }, + "node_modules/gaxios/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/gcp-metadata": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz", "integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==", + "license": "Apache-2.0", "dependencies": { "gaxios": "^6.0.0", "json-bigint": "^1.0.0" @@ -2020,13 +2022,14 @@ } }, "node_modules/grpc-js-health-check": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grpc-js-health-check/-/grpc-js-health-check-1.1.0.tgz", - "integrity": "sha512-kmCXpt9jmkG5zlVvcC2tSN+3287X2Z8VF6HdhcsS644FonCN8mQe1xEHSYNJsyOeK4Knaz1R1RGy1MNte2Vnbg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/grpc-js-health-check/-/grpc-js-health-check-1.2.2.tgz", + "integrity": "sha512-Zp+oL1JXnX7KitxzApbnp8cJgiJ9jlK2bbZq++aBJyqUumyBadKU5BxmJ3BJgi3q0vrGa2/F5Yj6iJDcylPSyA==", + "license": "ISC", "dependencies": { - "@grpc/grpc-js": "^1.8.12", - "@grpc/proto-loader": "^0.7.5", - "lodash": "^4.17.20" + "@grpc/grpc-js": "^1.9.13", + "@grpc/proto-loader": "^0.7.10", + "lodash": "^4.17.21" } }, "node_modules/has-property-descriptors": { @@ -2077,9 +2080,10 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -2088,40 +2092,23 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { "node": ">= 14" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/import-in-the-middle": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.7.4.tgz", - "integrity": "sha512-Lk+qzWmiQuRPPulGQeK5qq0v32k2bHnWrRPFgqyvhw7Kkov5L6MOLOIU3pcWeujc9W4q54Cp3Q2WV16eQkc7Bg==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.12.0.tgz", + "integrity": "sha512-yAgSE7GmtRcu4ZUSFX/4v69UGXwugFFSdIQJ14LHPOPPQrWv8Y7O9PHsw8Ovk7bKCLe4sjXMbZFqGFcLHpZ89w==", + "license": "Apache-2.0", "dependencies": { "acorn": "^8.8.2", "acorn-import-attributes": "^1.9.5", @@ -2133,6 +2120,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -2169,11 +2157,15 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.0.tgz", + "integrity": "sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==", + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2205,6 +2197,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -2230,14 +2223,16 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", "dependencies": { "bignumber.js": "^9.0.0" } }, "node_modules/json-logic-engine": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/json-logic-engine/-/json-logic-engine-1.3.1.tgz", - "integrity": "sha512-ek2rHlbzVjsWG/5HM8P/ljYrYS5nDFYtSHk2r/U4oaUGKRWyZo7bDyDiLmYSfEmZp2LJMgnjVo2b0tHc+cqVHQ==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/json-logic-engine/-/json-logic-engine-1.3.4.tgz", + "integrity": "sha512-p+WXFVTDWjZiM45+H2MSnAz984PPt2QampUGeMmgxWllsJjF8j8ucA3llmbL0xJkkV/7uj4MhhgJIYZ1MbkGiA==", + "license": "MIT", "engines": { "node": ">=12.22.7" } @@ -2245,7 +2240,8 @@ "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" }, "node_modules/lodash": { "version": "4.17.21", @@ -2257,41 +2253,37 @@ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, "node_modules/long": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "license": "ISC", "engines": { - "node": ">=10" + "node": "14 || >=16.14" } }, "node_modules/module-details-from-path": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" + "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", + "license": "MIT" }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -2311,6 +2303,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -2326,25 +2319,29 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/pg-int8": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", "engines": { "node": ">=4.0.0" } }, "node_modules/pg-protocol": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", - "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz", + "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==", + "license": "MIT" }, "node_modules/pg-types": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", @@ -2357,39 +2354,41 @@ } }, "node_modules/pino": { - "version": "8.16.1", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.16.1.tgz", - "integrity": "sha512-3bKsVhBmgPjGV9pyn4fO/8RtoVDR8ssW1ev819FsRXlRNgW8gR/9Kx+gCK4UPWd4JjrRDLWpzd/pb1AyWm3MGA==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.1.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^2.0.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.7.0", - "thread-stream": "^2.0.0" + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" }, "bin": { "pino": "bin.js" } }, "node_modules/pino-abstract-transport": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz", - "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "license": "MIT", "dependencies": { - "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, "node_modules/pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "license": "MIT" }, "node_modules/possible-typed-array-names": { "version": "1.0.0", @@ -2403,6 +2402,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", "engines": { "node": ">=4" } @@ -2411,6 +2411,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2419,6 +2420,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2427,6 +2429,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", "dependencies": { "xtend": "^4.0.0" }, @@ -2434,24 +2437,18 @@ "node": ">=0.10.0" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/process-warning": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.3.2.tgz", - "integrity": "sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "license": "MIT" }, "node_modules/protobufjs": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", - "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -2470,38 +2467,16 @@ "node": ">=12.0.0" } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, "node_modules/quick-format-unescaped": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" }, - "node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/real-require": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "license": "MIT", "engines": { "node": ">= 12.13.0" } @@ -2518,29 +2493,32 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-in-the-middle": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.3.0.tgz", - "integrity": "sha512-nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz", + "integrity": "sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==", + "license": "MIT", "dependencies": { - "debug": "^4.1.1", + "debug": "^4.3.5", "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" + "resolve": "^1.22.8" }, "engines": { "node": ">=8.6.0" } }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.9", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.9.tgz", + "integrity": "sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -2551,25 +2529,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/safe-stable-stringify": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", @@ -2579,9 +2538,10 @@ } }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -2608,7 +2568,8 @@ "node_modules/shimmer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", + "license": "BSD-2-Clause" }, "node_modules/simple-card-validator": { "version": "1.1.0", @@ -2616,9 +2577,10 @@ "integrity": "sha512-ag7OoeyWwzDrDyiffyrIWumxDJ7+VCbhOoHxzY6ck8b7qmGEA7A5NS9GxXbqmuE2wIgBAQ0S5vNiIclHtgliQg==" }, "node_modules/sonic-boom": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.7.0.tgz", - "integrity": "sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" } @@ -2627,18 +2589,11 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", "engines": { "node": ">= 10.x" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -2667,6 +2622,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2675,9 +2631,10 @@ } }, "node_modules/thread-stream": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz", - "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "license": "MIT", "dependencies": { "real-require": "^0.2.0" } @@ -2685,26 +2642,20 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -2718,26 +2669,29 @@ } }, "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.3.tgz", + "integrity": "sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -2781,6 +2735,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", "engines": { "node": ">=0.4" } @@ -2796,7 +2751,8 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", diff --git a/src/paymentservice/package.json b/src/paymentservice/package.json index 4071520ea9..2c0365b0c1 100644 --- a/src/paymentservice/package.json +++ b/src/paymentservice/package.json @@ -1,37 +1,34 @@ { "name": "paymentservice", - "version": "1.4.0", - "description": "Payment Microservice", + "description": "Payment Service", "repository": "https://github.com/opentelemetry/opentelemetry-demo", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "lint": "semistandard *.js", "start": "node --require ./opentelemetry.js index.js" }, "author": "Jonathan Lui", "license": "ISC", "dependencies": { - "@grpc/grpc-js": "1.10.8", + "@grpc/grpc-js": "1.10.11", "@grpc/proto-loader": "0.7.13", - "@openfeature/flagd-provider": "0.13.0", - "@openfeature/server-sdk": "1.14.0", - "@opentelemetry/auto-instrumentations-node": "0.46.1", - "@opentelemetry/core": "1.24.1", - "@opentelemetry/resources": "1.24.1", - "@opentelemetry/api": "1.8.0", - "@opentelemetry/sdk-metrics": "1.24.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.51.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.51.1", - "@opentelemetry/sdk-node": "0.51.1", - "@opentelemetry/instrumentation-runtime-node": "^0.10.0", - "@opentelemetry/resource-detector-alibaba-cloud": "0.28.9", - "@opentelemetry/resource-detector-aws": "1.5.0", - "@opentelemetry/resource-detector-container": "0.3.9", - "@opentelemetry/resource-detector-gcp": "0.29.9", - "grpc-js-health-check": "1.1.0", - "pino": "8.16.1", + "@openfeature/flagd-provider": "0.13.1", + "@openfeature/server-sdk": "1.16.2", + "@opentelemetry/api": "1.9.0", + "@opentelemetry/auto-instrumentations-node": "0.54.0", + "@opentelemetry/core": "1.29.0", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.56.0", + "@opentelemetry/exporter-trace-otlp-grpc": "0.56.0", + "@opentelemetry/instrumentation-runtime-node": "0.11.0", + "@opentelemetry/resource-detector-alibaba-cloud": "0.29.6", + "@opentelemetry/resource-detector-aws": "1.9.0", + "@opentelemetry/resource-detector-container": "0.5.2", + "@opentelemetry/resource-detector-gcp": "0.31.0", + "@opentelemetry/resources": "1.29.0", + "@opentelemetry/sdk-metrics": "1.29.0", + "@opentelemetry/sdk-node": "0.56.0", + "grpc-js-health-check": "1.2.2", + "pino": "9.5.0", "simple-card-validator": "1.1.0", - "uuid": "9.0.1" + "uuid": "11.0.3" } } From fca8fd1374081a3df2699f08cf5784dab16919a3 Mon Sep 17 00:00:00 2001 From: Sozhan Natarajan Date: Fri, 20 Dec 2024 00:20:19 +0530 Subject: [PATCH 041/178] [shipping] rename shippingservice to shipping (#1842) --- .dockerignore | 2 +- .env | 6 ++--- .github/workflows/component-build-images.yml | 4 ++-- .gitignore | 4 ++-- CHANGELOG.md | 2 ++ docker-compose-tests.yml | 4 ++-- docker-compose.minimal.yml | 24 +++++++++---------- docker-compose.yml | 24 +++++++++---------- docker-gen-proto.sh | 2 +- ide-gen-proto.sh | 2 +- renovate.json5 | 4 ++-- src/checkoutservice/main.go | 2 +- src/frontend/gateways/rpc/Shipping.gateway.ts | 4 ++-- src/frontend/next.config.js | 4 ++-- .../.dockerignore | 0 src/{shippingservice => shipping}/Cargo.lock | 2 +- src/{shippingservice => shipping}/Cargo.toml | 4 ++-- src/{shippingservice => shipping}/Dockerfile | 12 +++++----- src/{shippingservice => shipping}/README.md | 2 +- src/{shippingservice => shipping}/build.rs | 0 src/{shippingservice => shipping}/src/main.rs | 2 +- .../src/shipping_service.rs | 4 ++-- .../src/shipping_service/quote.rs | 0 .../src/shipping_service/tracking.rs | 0 .../src/telemetry.rs | 0 .../src/telemetry/logs_conf.rs | 0 .../src/telemetry/resources_conf.rs | 0 .../src/telemetry/traces_conf.rs | 0 test/tracetesting/run.bash | 6 ++--- .../{shippingservice => shipping}/all.yaml | 0 .../empty-quote.yaml | 2 +- .../{shippingservice => shipping}/order.yaml | 2 +- .../{shippingservice => shipping}/quote.yaml | 2 +- 33 files changed, 64 insertions(+), 62 deletions(-) rename src/{shippingservice => shipping}/.dockerignore (100%) rename src/{shippingservice => shipping}/Cargo.lock (99%) rename src/{shippingservice => shipping}/Cargo.toml (96%) rename src/{shippingservice => shipping}/Dockerfile (91%) rename src/{shippingservice => shipping}/README.md (91%) rename src/{shippingservice => shipping}/build.rs (100%) rename src/{shippingservice => shipping}/src/main.rs (91%) rename src/{shippingservice => shipping}/src/shipping_service.rs (98%) rename src/{shippingservice => shipping}/src/shipping_service/quote.rs (100%) rename src/{shippingservice => shipping}/src/shipping_service/tracking.rs (100%) rename src/{shippingservice => shipping}/src/telemetry.rs (100%) rename src/{shippingservice => shipping}/src/telemetry/logs_conf.rs (100%) rename src/{shippingservice => shipping}/src/telemetry/resources_conf.rs (100%) rename src/{shippingservice => shipping}/src/telemetry/traces_conf.rs (100%) rename test/tracetesting/{shippingservice => shipping}/all.yaml (100%) rename test/tracetesting/{shippingservice => shipping}/empty-quote.yaml (96%) rename test/tracetesting/{shippingservice => shipping}/order.yaml (96%) rename test/tracetesting/{shippingservice => shipping}/quote.yaml (96%) diff --git a/.dockerignore b/.dockerignore index 31fcb382d4..95710cb92a 100644 --- a/.dockerignore +++ b/.dockerignore @@ -28,7 +28,7 @@ src/*/*/Dockerfile ################################### # shippingservice -./src/shippingservice/target +./src/shipping/target ################################### # Mix artifacts diff --git a/.env b/.env index 02d6da5e4b..f55b2216d8 100644 --- a/.env +++ b/.env @@ -122,9 +122,9 @@ RECOMMENDATION_SERVICE_ADDR=recommendationservice:${RECOMMENDATION_SERVICE_PORT} RECOMMENDATION_SERVICE_DOCKERFILE=./src/recommendationservice/Dockerfile # Shipping Service -SHIPPING_SERVICE_PORT=50050 -SHIPPING_SERVICE_ADDR=shippingservice:${SHIPPING_SERVICE_PORT} -SHIPPING_SERVICE_DOCKERFILE=./src/shippingservice/Dockerfile +SHIPPING_PORT=50050 +SHIPPING_ADDR=shipping:${SHIPPING_PORT} +SHIPPING_DOCKERFILE=./src/shipping/Dockerfile # ****************** # Dependent Services diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index f1733c1ee8..a36b8fbbac 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -119,8 +119,8 @@ jobs: tag_suffix: recommendationservice context: ./ setup-qemu: true - - file: ./src/shippingservice/Dockerfile - tag_suffix: shippingservice + - file: ./src/shipping/Dockerfile + tag_suffix: shipping context: ./ setup-qemu: true - file: ./src/flagd-ui/Dockerfile diff --git a/.gitignore b/.gitignore index d63384d14e..530fd480e9 100644 --- a/.gitignore +++ b/.gitignore @@ -39,7 +39,7 @@ composer.lock src/frontend/cypress/videos src/frontend/cypress/screenshots -src/shippingservice/target/ +src/shipping/target/ test/tracetesting/tracetesting-vars.yaml # Ignore copied/generated protobuf files @@ -53,5 +53,5 @@ test/tracetesting/tracetesting-vars.yaml /src/frontend/pb/ /src/frontend/protos/ /src/paymentservice/demo.proto -/src/shippingservice/proto/ +/src/shipping/proto/ /src/currencyservice/proto diff --git a/CHANGELOG.md b/CHANGELOG.md index fbaefcb1d1..3cbdb4bd13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,8 @@ the release. ([#1841](https://github.com/open-telemetry/opentelemetry-demo/pull/1841)) * [cart] rename cartservice to cart ([#1839](https://github.com/open-telemetry/opentelemetry-demo/pull/1839)) +* [shipping] rename shippingservice to shipping + ([#1842](https://github.com/open-telemetry/opentelemetry-demo/pull/1842)) ## 1.12.0 diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index 6d388d46c2..ef1269a2c1 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -46,7 +46,7 @@ services: - PAYMENT_SERVICE_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - RECOMMENDATION_SERVICE_ADDR - - SHIPPING_SERVICE_ADDR + - SHIPPING_ADDR - KAFKA_SERVICE_ADDR extra_hosts: - "host.docker.internal:host-gateway" @@ -81,7 +81,7 @@ services: condition: service_started recommendationservice: condition: service_started - shippingservice: + shipping: condition: service_started flagd: condition: service_started diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 71b66a05e4..01ef2d74f6 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -104,7 +104,7 @@ services: - FLAGD_HOST - PAYMENT_SERVICE_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - - SHIPPING_SERVICE_ADDR + - SHIPPING_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES @@ -120,7 +120,7 @@ services: condition: service_started productcatalogservice: condition: service_started - shippingservice: + shipping: condition: service_started otel-collector: condition: service_started @@ -205,7 +205,7 @@ services: - CURRENCY_SERVICE_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - RECOMMENDATION_SERVICE_ADDR - - SHIPPING_SERVICE_ADDR + - SHIPPING_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES} - ENV_PLATFORM @@ -231,7 +231,7 @@ services: condition: service_started recommendationservice: condition: service_started - shippingservice: + shipping: condition: service_started otel-collector: condition: service_started @@ -468,27 +468,27 @@ services: logging: *logging # Shipping service - shippingservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-shippingservice - container_name: shipping-service + shipping: + image: ${IMAGE_NAME}:${DEMO_VERSION}-shipping + container_name: shipping build: context: ./ - dockerfile: ${SHIPPING_SERVICE_DOCKERFILE} + dockerfile: ${SHIPPING_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-shippingservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-shipping deploy: resources: limits: memory: 20M restart: unless-stopped ports: - - "${SHIPPING_SERVICE_PORT}" + - "${SHIPPING_PORT}" environment: - - SHIPPING_SERVICE_PORT + - SHIPPING_PORT - QUOTE_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_GRPC} - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=shippingservice + - OTEL_SERVICE_NAME=shipping depends_on: otel-collector: condition: service_started diff --git a/docker-compose.yml b/docker-compose.yml index 3bc8cde7ed..1c6614936c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -137,7 +137,7 @@ services: - EMAIL_SERVICE_ADDR - PAYMENT_SERVICE_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - - SHIPPING_SERVICE_ADDR + - SHIPPING_ADDR - KAFKA_SERVICE_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE @@ -154,7 +154,7 @@ services: condition: service_started productcatalogservice: condition: service_started - shippingservice: + shipping: condition: service_started otel-collector: condition: service_started @@ -277,7 +277,7 @@ services: - CURRENCY_SERVICE_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - RECOMMENDATION_SERVICE_ADDR - - SHIPPING_SERVICE_ADDR + - SHIPPING_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES} - ENV_PLATFORM @@ -303,7 +303,7 @@ services: condition: service_started recommendationservice: condition: service_started - shippingservice: + shipping: condition: service_started otel-collector: condition: service_started @@ -553,27 +553,27 @@ services: logging: *logging # Shipping service - shippingservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-shippingservice - container_name: shipping-service + shipping: + image: ${IMAGE_NAME}:${DEMO_VERSION}-shipping + container_name: shipping build: context: ./ - dockerfile: ${SHIPPING_SERVICE_DOCKERFILE} + dockerfile: ${SHIPPING_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-shippingservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-shipping deploy: resources: limits: memory: 20M restart: unless-stopped ports: - - "${SHIPPING_SERVICE_PORT}" + - "${SHIPPING_PORT}" environment: - - SHIPPING_SERVICE_PORT + - SHIPPING_PORT - QUOTE_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_GRPC} - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=shippingservice + - OTEL_SERVICE_NAME=shipping depends_on: otel-collector: condition: service_started diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index c7b7842418..a1600f71e4 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -32,4 +32,4 @@ gen_proto_go checkoutservice gen_proto_go productcatalogservice #gen_proto_php quote gen_proto_python recommendationservice -#gen_proto_rust shippingservice +#gen_proto_rust shipping diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index cd456f40c5..e393ec5dd2 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -76,4 +76,4 @@ gen_proto_js paymentservice gen_proto_go productcatalogservice # gen_proto_php quote gen_proto_python recommendationservice -gen_proto_rust shippingservice +gen_proto_rust shipping diff --git a/renovate.json5 b/renovate.json5 index ba6eaeee8e..e261118a44 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -91,8 +91,8 @@ "groupName": "recommendationservice", }, { - "matchFileNames": ["src/shippingservice/**"], - "groupName": "shippingservice", + "matchFileNames": ["src/shipping/**"], + "groupName": "shipping", }, { // intentionally using Java 11 in some examples diff --git a/src/checkoutservice/main.go b/src/checkoutservice/main.go index 3258976320..b3f84cacac 100644 --- a/src/checkoutservice/main.go +++ b/src/checkoutservice/main.go @@ -167,7 +167,7 @@ func main() { svc := new(checkoutService) - mustMapEnv(&svc.shippingSvcAddr, "SHIPPING_SERVICE_ADDR") + mustMapEnv(&svc.shippingSvcAddr, "SHIPPING_ADDR") c := mustCreateClient(svc.shippingSvcAddr) svc.shippingSvcClient = pb.NewShippingServiceClient(c) defer c.Close() diff --git a/src/frontend/gateways/rpc/Shipping.gateway.ts b/src/frontend/gateways/rpc/Shipping.gateway.ts index 3ebaedd64c..17fde68570 100644 --- a/src/frontend/gateways/rpc/Shipping.gateway.ts +++ b/src/frontend/gateways/rpc/Shipping.gateway.ts @@ -4,9 +4,9 @@ import { ChannelCredentials } from '@grpc/grpc-js'; import { Address, CartItem, GetQuoteResponse, ShippingServiceClient } from '../../protos/demo'; -const { SHIPPING_SERVICE_ADDR = '' } = process.env; +const { SHIPPING_ADDR = '' } = process.env; -const client = new ShippingServiceClient(SHIPPING_SERVICE_ADDR, ChannelCredentials.createInsecure()); +const client = new ShippingServiceClient(SHIPPING_ADDR, ChannelCredentials.createInsecure()); const ShippingGateway = () => ({ getShippingCost(itemList: CartItem[], address: Address) { diff --git a/src/frontend/next.config.js b/src/frontend/next.config.js index e81a2ebc80..4c680c1fe3 100755 --- a/src/frontend/next.config.js +++ b/src/frontend/next.config.js @@ -19,7 +19,7 @@ const { CURRENCY_SERVICE_ADDR = '', PRODUCT_CATALOG_SERVICE_ADDR = '', RECOMMENDATION_SERVICE_ADDR = '', - SHIPPING_SERVICE_ADDR = '', + SHIPPING_ADDR = '', ENV_PLATFORM = '', OTEL_EXPORTER_OTLP_TRACES_ENDPOINT = '', OTEL_SERVICE_NAME = 'frontend', @@ -51,7 +51,7 @@ const nextConfig = { CURRENCY_SERVICE_ADDR, PRODUCT_CATALOG_SERVICE_ADDR, RECOMMENDATION_SERVICE_ADDR, - SHIPPING_SERVICE_ADDR, + SHIPPING_ADDR, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT, NEXT_PUBLIC_PLATFORM: ENV_PLATFORM, NEXT_PUBLIC_OTEL_SERVICE_NAME: OTEL_SERVICE_NAME, diff --git a/src/shippingservice/.dockerignore b/src/shipping/.dockerignore similarity index 100% rename from src/shippingservice/.dockerignore rename to src/shipping/.dockerignore diff --git a/src/shippingservice/Cargo.lock b/src/shipping/Cargo.lock similarity index 99% rename from src/shippingservice/Cargo.lock rename to src/shipping/Cargo.lock index 3e7f850370..a73020c8e8 100644 --- a/src/shippingservice/Cargo.lock +++ b/src/shipping/Cargo.lock @@ -1131,7 +1131,7 @@ dependencies = [ ] [[package]] -name = "shippingservice" +name = "shipping" version = "1.8.0" dependencies = [ "log", diff --git a/src/shippingservice/Cargo.toml b/src/shipping/Cargo.toml similarity index 96% rename from src/shippingservice/Cargo.toml rename to src/shipping/Cargo.toml index d285fd6701..59152ee6b5 100644 --- a/src/shippingservice/Cargo.toml +++ b/src/shipping/Cargo.toml @@ -1,12 +1,12 @@ [package] -name = "shippingservice" +name = "shipping" version = "1.8.0" edition = "2021" [[bin]] -name = "shippingservice" +name = "shipping" path = "src/main.rs" [features] diff --git a/src/shippingservice/Dockerfile b/src/shipping/Dockerfile similarity index 91% rename from src/shippingservice/Dockerfile rename to src/shipping/Dockerfile index 8ff400ff3e..72927b241f 100644 --- a/src/shippingservice/Dockerfile +++ b/src/shipping/Dockerfile @@ -27,7 +27,7 @@ RUN if [ "${TARGETPLATFORM}" = "${BUILDPLATFORM}" ] ; then \ WORKDIR /app/ -COPY /src/shippingservice/ /app/ +COPY /src/shipping/ /app/ COPY /pb/ /app/proto/ # Compile or crosscompile @@ -38,13 +38,13 @@ RUN if [ "${TARGETPLATFORM}" = "${BUILDPLATFORM}" ] ; then \ CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc \ CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++ \ cargo build -r --features="dockerproto" --target aarch64-unknown-linux-gnu && \ - cp /app/target/aarch64-unknown-linux-gnu/release/shippingservice /app/target/release/shippingservice; \ + cp /app/target/aarch64-unknown-linux-gnu/release/shipping /app/target/release/shipping; \ elif [ "${TARGETPLATFORM}" = "linux/amd64" ] ; then \ env CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=x86_64-linux-gnu-gcc \ CC_x86_64_unknown_linux_gnu=x86_64-linux-gnu-gcc \ CXX_x86_64_unknown_linux_gnu=x86_64-linux-gnu-g++ \ cargo build -r --features="dockerproto" --target x86_64-unknown-linux-gnu && \ - cp /app/target/x86_64-unknown-linux-gnu/release/shippingservice /app/target/release/shippingservice; \ + cp /app/target/x86_64-unknown-linux-gnu/release/shipping /app/target/release/shipping; \ else \ echo "${TARGETPLATFORM} is not supported"; \ exit 1; \ @@ -58,8 +58,8 @@ RUN wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health FROM debian:bookworm-slim AS release WORKDIR /app -COPY --from=builder /app/target/release/shippingservice /app/shippingservice +COPY --from=builder /app/target/release/shipping /app/shipping COPY --from=builder /bin/grpc_health_probe /bin/grpc_health_probe -EXPOSE ${SHIPPING_SERVICE_PORT} -ENTRYPOINT ["/app/shippingservice"] +EXPOSE ${SHIPPING_PORT} +ENTRYPOINT ["/app/shipping"] diff --git a/src/shippingservice/README.md b/src/shipping/README.md similarity index 91% rename from src/shippingservice/README.md rename to src/shipping/README.md index fa49736038..9845726348 100644 --- a/src/shippingservice/README.md +++ b/src/shipping/README.md @@ -13,7 +13,7 @@ rust [here](https://www.rust-lang.org/tools/install). From `../../`, run: ```sh -docker compose build shippingservice +docker compose build shipping ``` ## Test diff --git a/src/shippingservice/build.rs b/src/shipping/build.rs similarity index 100% rename from src/shippingservice/build.rs rename to src/shipping/build.rs diff --git a/src/shippingservice/src/main.rs b/src/shipping/src/main.rs similarity index 91% rename from src/shippingservice/src/main.rs rename to src/shipping/src/main.rs index 37a4121088..93cec643a9 100644 --- a/src/shippingservice/src/main.rs +++ b/src/shipping/src/main.rs @@ -28,7 +28,7 @@ async fn main() -> Result<(), Box> { init_reqwest_tracing(init_tracer()?)?; info!("OTel pipeline created"); - let port = env::var("SHIPPING_SERVICE_PORT").expect("$SHIPPING_SERVICE_PORT is not set"); + let port = env::var("SHIPPING_PORT").expect("$SHIPPING_PORT is not set"); let addr = format!("0.0.0.0:{}", port).parse()?; info!("listening on {}", addr); let shipper = ShippingServer::default(); diff --git a/src/shippingservice/src/shipping_service.rs b/src/shipping/src/shipping_service.rs similarity index 98% rename from src/shippingservice/src/shipping_service.rs rename to src/shipping/src/shipping_service.rs index dbb2ccc23d..aca8c1096f 100644 --- a/src/shippingservice/src/shipping_service.rs +++ b/src/shipping/src/shipping_service.rs @@ -70,7 +70,7 @@ impl ShippingService for ShippingServer { // We may want to ask another service for product pricing / info // (although now everything is assumed to be the same price) // check out the create_quote_from_count method to see how we use the span created here - let tracer = global::tracer("shippingservice"); + let tracer = global::tracer("shipping"); let mut span = tracer .span_builder("oteldemo.ShippingService/GetQuote") .with_kind(SpanKind::Server) @@ -125,7 +125,7 @@ impl ShippingService for ShippingServer { global::get_text_map_propagator(|prop| prop.extract(&MetadataMap(request.metadata()))); // in this case, generating a tracking ID is trivial // we'll create a span and associated events all in this function. - let tracer = global::tracer("shippingservice"); + let tracer = global::tracer("shipping"); let mut span = tracer .span_builder("oteldemo.ShippingService/ShipOrder") .with_kind(SpanKind::Server) diff --git a/src/shippingservice/src/shipping_service/quote.rs b/src/shipping/src/shipping_service/quote.rs similarity index 100% rename from src/shippingservice/src/shipping_service/quote.rs rename to src/shipping/src/shipping_service/quote.rs diff --git a/src/shippingservice/src/shipping_service/tracking.rs b/src/shipping/src/shipping_service/tracking.rs similarity index 100% rename from src/shippingservice/src/shipping_service/tracking.rs rename to src/shipping/src/shipping_service/tracking.rs diff --git a/src/shippingservice/src/telemetry.rs b/src/shipping/src/telemetry.rs similarity index 100% rename from src/shippingservice/src/telemetry.rs rename to src/shipping/src/telemetry.rs diff --git a/src/shippingservice/src/telemetry/logs_conf.rs b/src/shipping/src/telemetry/logs_conf.rs similarity index 100% rename from src/shippingservice/src/telemetry/logs_conf.rs rename to src/shipping/src/telemetry/logs_conf.rs diff --git a/src/shippingservice/src/telemetry/resources_conf.rs b/src/shipping/src/telemetry/resources_conf.rs similarity index 100% rename from src/shippingservice/src/telemetry/resources_conf.rs rename to src/shipping/src/telemetry/resources_conf.rs diff --git a/src/shippingservice/src/telemetry/traces_conf.rs b/src/shipping/src/telemetry/traces_conf.rs similarity index 100% rename from src/shippingservice/src/telemetry/traces_conf.rs rename to src/shipping/src/telemetry/traces_conf.rs diff --git a/test/tracetesting/run.bash b/test/tracetesting/run.bash index ce2f914d1f..3e043a86e5 100755 --- a/test/tracetesting/run.bash +++ b/test/tracetesting/run.bash @@ -8,7 +8,7 @@ set -e # Availalble services to test -ALL_SERVICES=("ad" "cart" "currencyservice" "checkoutservice" "frontend" "emailservice" "paymentservice" "productcatalogservice" "recommendationservice" "shippingservice") +ALL_SERVICES=("ad" "cart" "currencyservice" "checkoutservice" "frontend" "emailservice" "paymentservice" "productcatalogservice" "recommendationservice" "shipping") ## Script variables # Will contain the list of services to test @@ -52,8 +52,8 @@ spec: value: $PRODUCT_CATALOG_SERVICE_ADDR - key: RECOMMENDATION_SERVICE_ADDR value: $RECOMMENDATION_SERVICE_ADDR - - key: SHIPPING_SERVICE_ADDR - value: $SHIPPING_SERVICE_ADDR + - key: SHIPPING_ADDR + value: $SHIPPING_ADDR - key: KAFKA_SERVICE_ADDR value: $KAFKA_SERVICE_ADDR EOF diff --git a/test/tracetesting/shippingservice/all.yaml b/test/tracetesting/shipping/all.yaml similarity index 100% rename from test/tracetesting/shippingservice/all.yaml rename to test/tracetesting/shipping/all.yaml diff --git a/test/tracetesting/shippingservice/empty-quote.yaml b/test/tracetesting/shipping/empty-quote.yaml similarity index 96% rename from test/tracetesting/shippingservice/empty-quote.yaml rename to test/tracetesting/shipping/empty-quote.yaml index 6c85ee1fcf..ae422d1bf0 100644 --- a/test/tracetesting/shippingservice/empty-quote.yaml +++ b/test/tracetesting/shipping/empty-quote.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:SHIPPING_SERVICE_ADDR} + address: ${var:SHIPPING_ADDR} method: oteldemo.ShippingService.GetQuote request: |- { diff --git a/test/tracetesting/shippingservice/order.yaml b/test/tracetesting/shipping/order.yaml similarity index 96% rename from test/tracetesting/shippingservice/order.yaml rename to test/tracetesting/shipping/order.yaml index 1544fb9d2e..8c18f1e594 100644 --- a/test/tracetesting/shippingservice/order.yaml +++ b/test/tracetesting/shipping/order.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:SHIPPING_SERVICE_ADDR} + address: ${var:SHIPPING_ADDR} method: oteldemo.ShippingService.ShipOrder request: |- { diff --git a/test/tracetesting/shippingservice/quote.yaml b/test/tracetesting/shipping/quote.yaml similarity index 96% rename from test/tracetesting/shippingservice/quote.yaml rename to test/tracetesting/shipping/quote.yaml index c4d8fad6ed..c263fa8cc6 100644 --- a/test/tracetesting/shippingservice/quote.yaml +++ b/test/tracetesting/shipping/quote.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:SHIPPING_SERVICE_ADDR} + address: ${var:SHIPPING_ADDR} method: oteldemo.ShippingService.GetQuote request: |- { From cb75eba86b2649ab59000dc37334d2d7f08c8c7c Mon Sep 17 00:00:00 2001 From: Jonathan Munz Date: Thu, 19 Dec 2024 15:50:27 -0500 Subject: [PATCH 042/178] Add a React Native example app to the demo (#1781) --- .gitignore | 3 + .licenserc.json | 6 + CHANGELOG.md | 2 + CONTRIBUTING.md | 5 + Makefile | 5 +- ide-gen-proto.sh | 1 + src/react-native-app/.dockerignore | 6 + src/react-native-app/.env | 3 + src/react-native-app/.eslintrc.js | 10 + src/react-native-app/.gitignore | 22 + src/react-native-app/.prettierignore | 1 + src/react-native-app/.ruby-version | 1 + src/react-native-app/Gemfile | 2 + src/react-native-app/Gemfile.lock | 114 + src/react-native-app/README.md | 150 + src/react-native-app/android.Dockerfile | 21 + src/react-native-app/android/.gitignore | 16 + src/react-native-app/android/app/build.gradle | 132 + .../android/app/debug.keystore | Bin 0 -> 2257 bytes .../android/app/proguard-rules.pro | 14 + .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 33 + .../app/src/main/ic_launcher-playstore.png | Bin 0 -> 50017 bytes .../reactnativeapp/MainActivity.kt | 61 + .../reactnativeapp/MainApplication.kt | 55 + .../res/drawable-hdpi/splashscreen_image.png | Bin 0 -> 50017 bytes .../res/drawable-mdpi/splashscreen_image.png | Bin 0 -> 44751 bytes .../res/drawable-xhdpi/splashscreen_image.png | Bin 0 -> 50017 bytes .../drawable-xxhdpi/splashscreen_image.png | Bin 0 -> 50017 bytes .../drawable-xxxhdpi/splashscreen_image.png | Bin 0 -> 50017 bytes .../res/drawable/ic_launcher_background.xml | 74 + .../res/drawable/rn_edit_text_material.xml | 37 + .../src/main/res/drawable/splashscreen.xml | 3 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2297 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 3691 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4306 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1457 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 2260 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2686 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3197 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 5499 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6279 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5156 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 9956 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10213 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 7459 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 15875 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15171 bytes .../app/src/main/res/values-night/colors.xml | 1 + .../app/src/main/res/values/colors.xml | 6 + .../res/values/ic_launcher_background.xml | 4 + .../app/src/main/res/values/strings.xml | 6 + .../app/src/main/res/values/styles.xml | 17 + src/react-native-app/android/build.gradle | 41 + .../android/gradle.properties | 56 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43462 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + src/react-native-app/android/gradlew | 249 + src/react-native-app/android/gradlew.bat | 92 + src/react-native-app/android/settings.gradle | 18 + src/react-native-app/app.json | 38 + src/react-native-app/app/(tabs)/_layout.tsx | 49 + src/react-native-app/app/(tabs)/cart.tsx | 145 + src/react-native-app/app/(tabs)/index.tsx | 39 + src/react-native-app/app/_layout.tsx | 59 + .../assets/fonts/SpaceMono-Regular.ttf | Bin 0 -> 93252 bytes .../assets/images/adaptive-icon.png | Bin 0 -> 20843 bytes .../assets/images/favicon.png | Bin 0 -> 2652 bytes src/react-native-app/assets/images/icon.png | Bin 0 -> 20843 bytes src/react-native-app/assets/images/splash.png | Bin 0 -> 50017 bytes src/react-native-app/babel.config.js | 8 + .../components/CheckoutForm/CheckoutForm.tsx | 198 + .../components/CheckoutForm/index.ts | 3 + .../components/EmptyCart/EmptyCart.tsx | 37 + .../components/EmptyCart/index.ts | 3 + src/react-native-app/components/Field.tsx | 30 + .../components/ProductCard/ProductCard.tsx | 102 + .../components/ProductCard/index.ts | 3 + .../components/ProductList/ProductList.tsx | 50 + .../components/ProductList/index.ts | 3 + .../components/ThemedScrollView.tsx | 23 + .../components/ThemedText.tsx | 62 + .../components/ThemedView.tsx | 24 + .../components/navigation/TabBarIcon.tsx | 14 + src/react-native-app/constants/Colors.ts | 28 + src/react-native-app/gateways/Api.gateway.ts | 150 + .../gateways/Session.gateway.ts | 43 + src/react-native-app/hooks/useColorScheme.ts | 3 + .../hooks/useColorScheme.web.ts | 10 + src/react-native-app/hooks/useThemeColor.ts | 24 + src/react-native-app/hooks/useTracer.ts | 123 + src/react-native-app/ios/.gitignore | 30 + src/react-native-app/ios/.xcode.env | 11 + src/react-native-app/ios/Podfile | 58 + src/react-native-app/ios/Podfile.lock | 1609 ++ .../ios/Podfile.properties.json | 4 + .../reactnativeapp.xcodeproj/project.pbxproj | 543 + .../xcschemes/reactnativeapp.xcscheme | 88 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../ios/reactnativeapp/AppDelegate.h | 9 + .../ios/reactnativeapp/AppDelegate.mm | 62 + .../App-Icon-1024x1024@1x.png | Bin 0 -> 191330 bytes .../AppIcon.appiconset/Contents.json | 14 + .../Images.xcassets/Contents.json | 6 + .../SplashScreen.imageset/Contents.json | 21 + .../SplashScreen.imageset/image.png | Bin 0 -> 50017 bytes .../Contents.json | 21 + .../SplashScreenBackground.imageset/image.png | Bin 0 -> 68 bytes .../ios/reactnativeapp/Info.plist | 77 + .../ios/reactnativeapp/PrivacyInfo.xcprivacy | 48 + .../reactnativeapp/SplashScreen.storyboard | 51 + .../ios/reactnativeapp/Supporting/Expo.plist | 12 + .../ios/reactnativeapp/main.m | 10 + .../ios/reactnativeapp/noop-file.swift | 0 .../reactnativeapp-Bridging-Header.h | 5 + .../reactnativeapp.entitlements | 6 + src/react-native-app/metro.config.js | 16 + src/react-native-app/package-lock.json | 19603 ++++++++++++++++ src/react-native-app/package.json | 76 + src/react-native-app/protos/demo.ts | 4027 ++++ .../providers/Cart.provider.tsx | 82 + src/react-native-app/tsconfig.json | 17 + src/react-native-app/types/Cart.ts | 25 + src/react-native-app/utils/Localhost.ts | 14 + src/react-native-app/utils/Request.ts | 42 + .../utils/SessionIdProcessor.ts | 32 + 129 files changed, 29198 insertions(+), 1 deletion(-) create mode 100644 src/react-native-app/.dockerignore create mode 100644 src/react-native-app/.env create mode 100644 src/react-native-app/.eslintrc.js create mode 100644 src/react-native-app/.gitignore create mode 100644 src/react-native-app/.prettierignore create mode 100644 src/react-native-app/.ruby-version create mode 100644 src/react-native-app/Gemfile create mode 100644 src/react-native-app/Gemfile.lock create mode 100644 src/react-native-app/README.md create mode 100644 src/react-native-app/android.Dockerfile create mode 100644 src/react-native-app/android/.gitignore create mode 100644 src/react-native-app/android/app/build.gradle create mode 100644 src/react-native-app/android/app/debug.keystore create mode 100644 src/react-native-app/android/app/proguard-rules.pro create mode 100644 src/react-native-app/android/app/src/debug/AndroidManifest.xml create mode 100644 src/react-native-app/android/app/src/main/AndroidManifest.xml create mode 100644 src/react-native-app/android/app/src/main/ic_launcher-playstore.png create mode 100644 src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainActivity.kt create mode 100644 src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainApplication.kt create mode 100644 src/react-native-app/android/app/src/main/res/drawable-hdpi/splashscreen_image.png create mode 100644 src/react-native-app/android/app/src/main/res/drawable-mdpi/splashscreen_image.png create mode 100644 src/react-native-app/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png create mode 100644 src/react-native-app/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png create mode 100644 src/react-native-app/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png create mode 100644 src/react-native-app/android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src/react-native-app/android/app/src/main/res/drawable/rn_edit_text_material.xml create mode 100644 src/react-native-app/android/app/src/main/res/drawable/splashscreen.xml create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 src/react-native-app/android/app/src/main/res/values-night/colors.xml create mode 100644 src/react-native-app/android/app/src/main/res/values/colors.xml create mode 100644 src/react-native-app/android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 src/react-native-app/android/app/src/main/res/values/strings.xml create mode 100644 src/react-native-app/android/app/src/main/res/values/styles.xml create mode 100644 src/react-native-app/android/build.gradle create mode 100644 src/react-native-app/android/gradle.properties create mode 100644 src/react-native-app/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 src/react-native-app/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 src/react-native-app/android/gradlew create mode 100644 src/react-native-app/android/gradlew.bat create mode 100644 src/react-native-app/android/settings.gradle create mode 100644 src/react-native-app/app.json create mode 100644 src/react-native-app/app/(tabs)/_layout.tsx create mode 100644 src/react-native-app/app/(tabs)/cart.tsx create mode 100644 src/react-native-app/app/(tabs)/index.tsx create mode 100644 src/react-native-app/app/_layout.tsx create mode 100755 src/react-native-app/assets/fonts/SpaceMono-Regular.ttf create mode 100644 src/react-native-app/assets/images/adaptive-icon.png create mode 100644 src/react-native-app/assets/images/favicon.png create mode 100644 src/react-native-app/assets/images/icon.png create mode 100644 src/react-native-app/assets/images/splash.png create mode 100644 src/react-native-app/babel.config.js create mode 100644 src/react-native-app/components/CheckoutForm/CheckoutForm.tsx create mode 100644 src/react-native-app/components/CheckoutForm/index.ts create mode 100644 src/react-native-app/components/EmptyCart/EmptyCart.tsx create mode 100644 src/react-native-app/components/EmptyCart/index.ts create mode 100644 src/react-native-app/components/Field.tsx create mode 100644 src/react-native-app/components/ProductCard/ProductCard.tsx create mode 100644 src/react-native-app/components/ProductCard/index.ts create mode 100644 src/react-native-app/components/ProductList/ProductList.tsx create mode 100644 src/react-native-app/components/ProductList/index.ts create mode 100644 src/react-native-app/components/ThemedScrollView.tsx create mode 100644 src/react-native-app/components/ThemedText.tsx create mode 100644 src/react-native-app/components/ThemedView.tsx create mode 100644 src/react-native-app/components/navigation/TabBarIcon.tsx create mode 100644 src/react-native-app/constants/Colors.ts create mode 100644 src/react-native-app/gateways/Api.gateway.ts create mode 100644 src/react-native-app/gateways/Session.gateway.ts create mode 100644 src/react-native-app/hooks/useColorScheme.ts create mode 100644 src/react-native-app/hooks/useColorScheme.web.ts create mode 100644 src/react-native-app/hooks/useThemeColor.ts create mode 100644 src/react-native-app/hooks/useTracer.ts create mode 100644 src/react-native-app/ios/.gitignore create mode 100644 src/react-native-app/ios/.xcode.env create mode 100644 src/react-native-app/ios/Podfile create mode 100644 src/react-native-app/ios/Podfile.lock create mode 100644 src/react-native-app/ios/Podfile.properties.json create mode 100644 src/react-native-app/ios/reactnativeapp.xcodeproj/project.pbxproj create mode 100644 src/react-native-app/ios/reactnativeapp.xcodeproj/xcshareddata/xcschemes/reactnativeapp.xcscheme create mode 100644 src/react-native-app/ios/reactnativeapp.xcworkspace/contents.xcworkspacedata create mode 100644 src/react-native-app/ios/reactnativeapp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 src/react-native-app/ios/reactnativeapp/AppDelegate.h create mode 100644 src/react-native-app/ios/reactnativeapp/AppDelegate.mm create mode 100644 src/react-native-app/ios/reactnativeapp/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png create mode 100644 src/react-native-app/ios/reactnativeapp/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 src/react-native-app/ios/reactnativeapp/Images.xcassets/Contents.json create mode 100644 src/react-native-app/ios/reactnativeapp/Images.xcassets/SplashScreen.imageset/Contents.json create mode 100644 src/react-native-app/ios/reactnativeapp/Images.xcassets/SplashScreen.imageset/image.png create mode 100644 src/react-native-app/ios/reactnativeapp/Images.xcassets/SplashScreenBackground.imageset/Contents.json create mode 100644 src/react-native-app/ios/reactnativeapp/Images.xcassets/SplashScreenBackground.imageset/image.png create mode 100644 src/react-native-app/ios/reactnativeapp/Info.plist create mode 100644 src/react-native-app/ios/reactnativeapp/PrivacyInfo.xcprivacy create mode 100644 src/react-native-app/ios/reactnativeapp/SplashScreen.storyboard create mode 100644 src/react-native-app/ios/reactnativeapp/Supporting/Expo.plist create mode 100644 src/react-native-app/ios/reactnativeapp/main.m create mode 100644 src/react-native-app/ios/reactnativeapp/noop-file.swift create mode 100644 src/react-native-app/ios/reactnativeapp/reactnativeapp-Bridging-Header.h create mode 100644 src/react-native-app/ios/reactnativeapp/reactnativeapp.entitlements create mode 100644 src/react-native-app/metro.config.js create mode 100644 src/react-native-app/package-lock.json create mode 100644 src/react-native-app/package.json create mode 100644 src/react-native-app/protos/demo.ts create mode 100644 src/react-native-app/providers/Cart.provider.tsx create mode 100644 src/react-native-app/tsconfig.json create mode 100644 src/react-native-app/types/Cart.ts create mode 100644 src/react-native-app/utils/Localhost.ts create mode 100644 src/react-native-app/utils/Request.ts create mode 100644 src/react-native-app/utils/SessionIdProcessor.ts diff --git a/.gitignore b/.gitignore index 530fd480e9..ce60ae8696 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,6 @@ test/tracetesting/tracetesting-vars.yaml /src/paymentservice/demo.proto /src/shipping/proto/ /src/currencyservice/proto + +# Android +*.apk diff --git a/.licenserc.json b/.licenserc.json index fe6d6fa34f..6c3d85a679 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -45,6 +45,12 @@ "src/featureflagservice/assets/vendor/", "src/featureflagservice/priv/", "src/productcatalogservice/genproto/", + "src/react-native-app/ios/Pods/", + "src/react-native-app/ios/build/", + "src/react-native-app/android/app/build/", + "src/react-native-app/android/.gradle/", + "src/react-native-app/.expo/", + "src/react-native-app/expo-env.d.ts", "src/recommendationservice/demo_pb2.py", "src/recommendationservice/demo_pb2_grpc.py", "internal/tools/" diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cbdb4bd13..fb2d647ffc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,8 @@ the release. ([#1839](https://github.com/open-telemetry/opentelemetry-demo/pull/1839)) * [shipping] rename shippingservice to shipping ([#1842](https://github.com/open-telemetry/opentelemetry-demo/pull/1842)) +* [react-native-app] Add React Native example app + ([#1781](https://github.com/open-telemetry/opentelemetry-demo/pull/1781)) ## 1.12.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 31db3038e9..9d619c2be2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -103,6 +103,11 @@ documentation as well as the code. When making changes to any service or feature remember to find the related docs and update those as well. Most (but not all) documentation can be found on the OTel website under [Demo docs][docs]. +### Running the React Native example + +If you are interested in running the React Native example app in this repo please +review [these instructions](src/react-native-app/README.md). + ## Create Your First Pull Request ### How to Send Pull Requests diff --git a/Makefile b/Makefile index 11f9e9258c..7f6e6640b7 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # All documents to be used in spell check. -ALL_DOCS := $(shell find . -type f -name '*.md' -not -path './.github/*' -not -path '*/node_modules/*' -not -path '*/_build/*' -not -path '*/deps/*' | sort) +ALL_DOCS := $(shell find . -type f -name '*.md' -not -path './.github/*' -not -path '*/node_modules/*' -not -path '*/_build/*' -not -path '*/deps/*' -not -path */Pods/* -not -path */.expo/* | sort) PWD := $(shell pwd) TOOLS_DIR := ./internal/tools @@ -218,3 +218,6 @@ else @echo "Please provide a service name using `service=[service name]` or `SERVICE=[service name]`" endif +.PHONY: build-react-native-android +build-react-native-android: + docker build -f src/react-native-app/android.Dockerfile --platform=linux/amd64 --output=. src/react-native-app diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index e393ec5dd2..52fa222f4b 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -72,6 +72,7 @@ gen_proto_go checkoutservice # gen_proto_cpp currencyservice # gen_proto_ruby emailservice gen_proto_ts frontend +gen_proto_ts react-native-app gen_proto_js paymentservice gen_proto_go productcatalogservice # gen_proto_php quote diff --git a/src/react-native-app/.dockerignore b/src/react-native-app/.dockerignore new file mode 100644 index 0000000000..a19ce7eb0e --- /dev/null +++ b/src/react-native-app/.dockerignore @@ -0,0 +1,6 @@ +node_modules/ +.expo/ +dist/ +android/build/ +ios/build/ +ios/Pods/ diff --git a/src/react-native-app/.env b/src/react-native-app/.env new file mode 100644 index 0000000000..8379d191a1 --- /dev/null +++ b/src/react-native-app/.env @@ -0,0 +1,3 @@ +# https://docs.expo.dev/guides/environment-variables/ + +EXPO_PUBLIC_FRONTEND_PROXY_PORT=8080 diff --git a/src/react-native-app/.eslintrc.js b/src/react-native-app/.eslintrc.js new file mode 100644 index 0000000000..854aefe125 --- /dev/null +++ b/src/react-native-app/.eslintrc.js @@ -0,0 +1,10 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +// https://docs.expo.dev/guides/using-eslint/ +module.exports = { + extends: ["expo", "prettier"], + plugins: ["prettier"], + rules: { + "prettier/prettier": "error", + }, +}; diff --git a/src/react-native-app/.gitignore b/src/react-native-app/.gitignore new file mode 100644 index 0000000000..20efda6e41 --- /dev/null +++ b/src/react-native-app/.gitignore @@ -0,0 +1,22 @@ +node_modules/ +.expo/ +dist/ +npm-debug.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision +*.orig.* +web-build/ +pb/demo.proto + +# macOS +.DS_Store + +# @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb +# The following patterns were generated by expo-cli + +expo-env.d.ts +# @end expo-cli + diff --git a/src/react-native-app/.prettierignore b/src/react-native-app/.prettierignore new file mode 100644 index 0000000000..01f3e99067 --- /dev/null +++ b/src/react-native-app/.prettierignore @@ -0,0 +1 @@ +expo-env.d.ts diff --git a/src/react-native-app/.ruby-version b/src/react-native-app/.ruby-version new file mode 100644 index 0000000000..49cdd668e1 --- /dev/null +++ b/src/react-native-app/.ruby-version @@ -0,0 +1 @@ +2.7.6 diff --git a/src/react-native-app/Gemfile b/src/react-native-app/Gemfile new file mode 100644 index 0000000000..57df847493 --- /dev/null +++ b/src/react-native-app/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'cocoapods', '1.16.2' diff --git a/src/react-native-app/Gemfile.lock b/src/react-native-app/Gemfile.lock new file mode 100644 index 0000000000..7dbad28461 --- /dev/null +++ b/src/react-native-app/Gemfile.lock @@ -0,0 +1,114 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.7) + base64 + nkf + rexml + activesupport (7.1.5.1) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + mutex_m + securerandom (>= 0.3) + tzinfo (~> 2.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + algoliasearch (1.27.5) + httpclient (~> 2.8, >= 2.8.3) + json (>= 1.5.1) + atomos (0.1.3) + base64 (0.2.0) + benchmark (0.4.0) + bigdecimal (3.1.8) + claide (1.1.0) + cocoapods (1.16.2) + addressable (~> 2.8) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.16.2) + cocoapods-deintegrate (>= 1.0.3, < 2.0) + cocoapods-downloader (>= 2.1, < 3.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.6.0, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) + colored2 (~> 3.1) + escape (~> 0.0.4) + fourflusher (>= 2.3.0, < 3.0) + gh_inspector (~> 1.0) + molinillo (~> 0.8.0) + nap (~> 1.0) + ruby-macho (>= 2.3.0, < 3.0) + xcodeproj (>= 1.27.0, < 2.0) + cocoapods-core (1.16.2) + activesupport (>= 5.0, < 8) + addressable (~> 2.8) + algoliasearch (~> 1.0) + concurrent-ruby (~> 1.1) + fuzzy_match (~> 2.0.4) + nap (~> 1.0) + netrc (~> 0.11) + public_suffix (~> 4.0) + typhoeus (~> 1.0) + cocoapods-deintegrate (1.0.5) + cocoapods-downloader (2.1) + cocoapods-plugins (1.0.0) + nap + cocoapods-search (1.0.1) + cocoapods-trunk (1.6.0) + nap (>= 0.8, < 2.0) + netrc (~> 0.11) + cocoapods-try (1.2.0) + colored2 (3.1.2) + concurrent-ruby (1.3.4) + connection_pool (2.4.1) + drb (2.2.1) + escape (0.0.4) + ethon (0.16.0) + ffi (>= 1.15.0) + ffi (1.17.0) + fourflusher (2.3.1) + fuzzy_match (2.0.4) + gh_inspector (1.1.3) + httpclient (2.8.3) + i18n (1.14.6) + concurrent-ruby (~> 1.0) + json (2.9.1) + logger (1.6.3) + minitest (5.25.4) + molinillo (0.8.0) + mutex_m (0.3.0) + nanaimo (0.4.0) + nap (1.1.0) + netrc (0.11.0) + nkf (0.2.0) + public_suffix (4.0.7) + rexml (3.4.0) + ruby-macho (2.5.1) + securerandom (0.3.2) + typhoeus (1.4.1) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + xcodeproj (1.27.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.4.0) + rexml (>= 3.3.6, < 4.0) + +PLATFORMS + ruby + +DEPENDENCIES + cocoapods (= 1.16.2) + +BUNDLED WITH + 2.1.4 diff --git a/src/react-native-app/README.md b/src/react-native-app/README.md new file mode 100644 index 0000000000..88b2bd3b87 --- /dev/null +++ b/src/react-native-app/README.md @@ -0,0 +1,150 @@ +# Example React Native app + +This was created using [`npx create-expo-app@latest`](https://reactnative.dev/docs/environment-setup#start-a-new-react-native-project-with-expo) + +Content was taken from the web app example in src/frontend and modified to work +in a React Native environment. + +## Get started + +Start the OpenTelemetry demo from the root of this repo: + +```bash +cd ../.. +make start # or start-minimal +``` + +## Building the app + +Unlike the other components under src/ which run within containers this +app must be built and then run on a mobile simulator on your machine or a physical +device. If this is your first time running a React Native app then in order to +execute the steps under "Build on your host machine" you will need to setup your +local environment for Android or iOS development or both following +[this guide](https://reactnative.dev/docs/set-up-your-environment). Alternatively +for Android you can instead follow the steps under "Build within a container" to +leverage a container to build the app's apk for you. + +### Build on your host machine + +Build and run the React Native app for a given platform by navigating to this folder +and running: + +```bash +cd src/react-native-app +npm install +``` + +To run on Android: + +```bash +npm run android +``` + +Note that for the above command a server is also spun up to serve the JS bundle +to the deployed app. + +To run on iOS you may find it cleanest to build through the XCode IDE. First spin +up the react native dev server with the following (feel free to ignore the output +commands referring to opening an iOS simulator, we'll do that directly through +XCode in a later step): + +```bash +npm run start +``` + +Then install the pods for the project: + +```bash +cd ios +pod install +``` + +Note that the above is the quickest way to get going but you may end up with +slightly different versions of the Pods than what has been committed to this repo, +in order to install the precise versions first setup [rbenv](https://github.com/rbenv/rbenv#installation) +followed by: + +```bash +rbenv install 2.7.6 # the version of ruby we've pinned for this app +bundle install +cd ios +bundle exec pod install +``` + +Then open XCode, open this as an existing project by opening `src/react-native-app/ios/react-native-app.xcworkspace` +then trigger the build by hitting the Play button or from the menu using Product->Run. + +Or alternatively build and run from the command-line: + +```bash +npm run ios +``` + +Note that for the above command a server is also spun up to serve the JS bundle +to the deployed apps. + +### Build within a container + +For Android builds you can produce an apk using Docker without requiring the dev +tools to be installed on your host. From the project root run: + +```bash +make build-react-native-android +``` + +Or directly from this folder using: + +```bash +docker build -f android.Dockerfile --platform=linux/amd64 --output=. . +``` + +This will produce `react-native-app.apk` in the directory where you ran the command. +If you have an Android emulator running on your machine then you can simply drag +and drop this file onto the emulator's window in order to install it following +[these steps](https://developer.android.com/studio/run/emulator-install-add-files). + +TODO: For a physical device you can install this by sending the apk file to your +device, giving the "Install unknown apps" permission to the app you will be opening +the file with, and then installing it. However this won't be able to hit the APIs +because they are hard-coded to be localhost, need those to be configurable before +this method would work. + +## Troubleshooting + +### iOS build issues + +If you see a build failure related to pods try forcing a clean install with and +then attempt another build after: + +```bash + cd src/react-native-app/ios + rm Podfile.lock + pod cache clean --all + pod repo update --verbose + pod deintegrate + pod install --repo-update --verbose +``` + +If there is an error compiling or running the app try closing any open simulators +and clearing all derived data: + +```bash +rm -rf ~/Library/Developer/Xcode/DerivedData +``` + +### Android build issues + +Try stopping and cleaning local services (in case there are unknown issues related +to the start of the app): + +```bash + cd src/react-native-app/android + ./gradlew --stop // stop daemons + rm -rf ~/.gradle/caches/ +``` + +### JS build issues + +Try removing the `src/react-native-app/node_modules/` folder and then re-run +`npm install` from inside `src/react-native-app`. diff --git a/src/react-native-app/android.Dockerfile b/src/react-native-app/android.Dockerfile new file mode 100644 index 0000000000..cd50ffe159 --- /dev/null +++ b/src/react-native-app/android.Dockerfile @@ -0,0 +1,21 @@ +# syntax=docker/dockerfile:1 + +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +# https://github.com/react-native-community/docker-android +# Choosing a tag where the Android build tools match what we have in android/build.gradle to avoid the +# container having to download them +FROM reactnativecommunity/react-native-android:v13.2.1 AS builder + +WORKDIR /reactnativesrc/ +COPY . . + +RUN npm install +WORKDIR android/ +RUN chmod +x gradlew +RUN ./gradlew assembleRelease + +FROM scratch +COPY --from=builder /reactnativesrc/android/app/build/outputs/apk/release/app-release.apk /reactnativeapp.apk +ENTRYPOINT ["/reactnativeapp.apk"] diff --git a/src/react-native-app/android/.gitignore b/src/react-native-app/android/.gitignore new file mode 100644 index 0000000000..8a6be07718 --- /dev/null +++ b/src/react-native-app/android/.gitignore @@ -0,0 +1,16 @@ +# OSX +# +.DS_Store + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml +*.hprof +.cxx/ + +# Bundle artifacts +*.jsbundle diff --git a/src/react-native-app/android/app/build.gradle b/src/react-native-app/android/app/build.gradle new file mode 100644 index 0000000000..c0c3d72e99 --- /dev/null +++ b/src/react-native-app/android/app/build.gradle @@ -0,0 +1,132 @@ +apply plugin: "com.android.application" +apply plugin: "org.jetbrains.kotlin.android" +apply plugin: "com.facebook.react" + +def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath() + +/** + * This is the configuration block to customize your React Native Android app. + */ +react { + entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim()) + reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() + hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc" + codegenDir = new File(["node", "--print", "require.resolve('@react-native/codegen/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() + + // Use Expo CLI to bundle the app, this ensures the Metro config + // works correctly with Expo projects. + cliFile = new File(["node", "--print", "require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })"].execute(null, rootDir).text.trim()) + bundleCommand = "export:embed" +} + +/** + * Set this to true to Run Proguard on Release builds to minify the Java bytecode. + */ +def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean() + +/** + * The preferred build flavor of JavaScriptCore (JSC) + * + * For example, to use the international variant, you can use: + * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` + * + * The international variant includes ICU i18n library and necessary data + * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that + * give correct results when using with locales other than en-US. Note that + * this variant is about 6MiB larger per architecture than default. + */ +def jscFlavor = 'org.webkit:android-jsc:+' + +android { + ndkVersion rootProject.ext.ndkVersion + + buildToolsVersion rootProject.ext.buildToolsVersion + compileSdk rootProject.ext.compileSdkVersion + + namespace 'io.opentelemetry.reactnativeapp' + defaultConfig { + applicationId 'io.opentelemetry.reactnativeapp' + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0.0" + } + signingConfigs { + debug { + storeFile file('debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + } + buildTypes { + debug { + signingConfig signingConfigs.debug + } + release { + // Caution! In production, you need to generate your own keystore file. + // see https://reactnative.dev/docs/signed-apk-android. + signingConfig signingConfigs.debug + shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false) + minifyEnabled enableProguardInReleaseBuilds + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + } + } + packagingOptions { + jniLibs { + useLegacyPackaging (findProperty('expo.useLegacyPackaging')?.toBoolean() ?: false) + } + } +} + +// Apply static values from `gradle.properties` to the `android.packagingOptions` +// Accepts values in comma delimited lists, example: +// android.packagingOptions.pickFirsts=/LICENSE,**/picasa.ini +["pickFirsts", "excludes", "merges", "doNotStrip"].each { prop -> + // Split option: 'foo,bar' -> ['foo', 'bar'] + def options = (findProperty("android.packagingOptions.$prop") ?: "").split(","); + // Trim all elements in place. + for (i in 0.. 0) { + println "android.packagingOptions.$prop += $options ($options.length)" + // Ex: android.packagingOptions.pickFirsts += '**/SCCS/**' + options.each { + android.packagingOptions[prop] += it + } + } +} + +dependencies { + // The version of react-native is set by the React Native Gradle Plugin + implementation("com.facebook.react:react-android") + + def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; + def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; + def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; + + if (isGifEnabled) { + // For animated gif support + implementation("com.facebook.fresco:animated-gif:${reactAndroidLibs.versions.fresco.get()}") + } + + if (isWebpEnabled) { + // For webp support + implementation("com.facebook.fresco:webpsupport:${reactAndroidLibs.versions.fresco.get()}") + if (isWebpAnimatedEnabled) { + // Animated webp support + implementation("com.facebook.fresco:animated-webp:${reactAndroidLibs.versions.fresco.get()}") + } + } + + if (hermesEnabled.toBoolean()) { + implementation("com.facebook.react:hermes-android") + } else { + implementation jscFlavor + } +} + +apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); +applyNativeModulesAppBuildGradle(project) diff --git a/src/react-native-app/android/app/debug.keystore b/src/react-native-app/android/app/debug.keystore new file mode 100644 index 0000000000000000000000000000000000000000..364e105ed39fbfd62001429a68140672b06ec0de GIT binary patch literal 2257 zcmchYXEfYt8;7T1^dLH$VOTZ%2NOdOH5j5LYLtZ0q7x-V8_6gU5)#7dkq{HTmsfNq zB3ZqcAxeY^G10@?efK?Q&)M(qInVv!xjx+IKEL}p*K@LYvIzo#AZG>st5|P)KF1_Z;y){W{<7K{nl!CPuE z_^(!C(Ol0n8 zK13*rzAtW>(wULKPRYLd7G18F8#1P`V*9`(Poj26eOXYyBVZPno~Cvvhx7vPjAuZo zF?VD!zB~QG(!zbw#qsxT8%BSpqMZ4f70ZPn-3y$L8{EVbbN9$H`B&Z1quk9tgp5FM zuxp3pJ0b8u|3+#5bkJ4SRnCF2l7#DyLYXYY8*?OuAwK4E6J{0N=O3QNVzQ$L#FKkR zi-c@&!nDvezOV$i$Lr}iF$XEcwnybQ6WZrMKuw8gCL^U#D;q3t&HpTbqyD%vG=TeDlzCT~MXUPC|Leb-Uk+ z=vnMd(|>ld?Fh>V8poP;q;;nc@en$|rnP0ytzD&fFkCeUE^kG9Kx4wUh!!rpjwKDP zyw_e|a^x_w3E zP}}@$g>*LLJ4i0`Gx)qltL}@;mDv}D*xR^oeWcWdPkW@Uu)B^X&4W1$p6}ze!zudJ zyiLg@uggoMIArBr*27EZV7djDg@W1MaL+rcZ-lrANJQ%%>u8)ZMWU@R2qtnmG(acP z0d_^!t>}5W zpT`*2NR+0+SpTHb+6Js4b;%LJB;B_-ChhnU5py}iJtku*hm5F0!iql8Hrpcy1aYbT z1*dKC5ua6pMX@@iONI?Hpr%h;&YaXp9n!ND7-=a%BD7v&g zOO41M6EbE24mJ#S$Ui0-brR5ML%@|ndz^)YLMMV1atna{Fw<;TF@>d&F|!Z>8eg>>hkFrV)W+uv=`^F9^e zzzM2*oOjT9%gLoub%(R57p-`TXFe#oh1_{&N-YN z<}artH|m=d8TQuKSWE)Z%puU|g|^^NFwC#N=@dPhasyYjoy(fdEVfKR@cXKHZV-`06HsP`|Ftx;8(YD$fFXumLWbGnu$GMqRncXYY9mwz9$ap zQtfZB^_BeNYITh^hA7+(XNFox5WMeG_LtJ%*Q}$8VKDI_p8^pqX)}NMb`0e|wgF7D zuQACY_Ua<1ri{;Jwt@_1sW9zzdgnyh_O#8y+C;LcZq6=4e^cs6KvmK@$vVpKFGbQ= z$)Eux5C|Fx;Gtmv9^#Y-g@7Rt7*eLp5n!gJmn7&B_L$G?NCN`AP>cXQEz}%F%K;vUs{+l4Q{}eWW;ATe2 zqvXzxoIDy(u;F2q1JH7Sf;{jy_j})F+cKlIOmNfjBGHoG^CN zM|Ho&&X|L-36f}Q-obEACz`sI%2f&k>z5c$2TyTSj~vmO)BW~+N^kt`Jt@R|s!){H ze1_eCrlNaPkJQhL$WG&iRvF*YG=gXd1IyYQ9ew|iYn7r~g!wOnw;@n42>enAxBv*A zEmV*N#sxdicyNM=A4|yaOC5MByts}s_Hpfj|y<6G=o=!3S@eIFKDdpR7|FY>L&Wat&oW&cm&X~ z5Bt>Fcq(fgnvlvLSYg&o6>&fY`ODg4`V^lWWD=%oJ#Kbad2u~! zLECFS*??>|vDsNR&pH=Ze0Eo`sC_G`OjoEKVHY|wmwlX&(XBE<@sx3Hd^gtd-fNwUHsylg06p`U2y_={u}Bc + + + + + diff --git a/src/react-native-app/android/app/src/main/AndroidManifest.xml b/src/react-native-app/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..cb215168e6 --- /dev/null +++ b/src/react-native-app/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/react-native-app/android/app/src/main/ic_launcher-playstore.png b/src/react-native-app/android/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..cc4aaad5cd24faadd190afdaf5b4e50d3ca79473 GIT binary patch literal 50017 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 + */ + override fun invokeDefaultOnBackPressed() { + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) { + if (!moveTaskToBack(false)) { + // For non-root activities, use the default implementation to finish them. + super.invokeDefaultOnBackPressed() + } + return + } + + // Use the default back button implementation on Android S + // because it's doing more than [Activity.moveTaskToBack] in fact. + super.invokeDefaultOnBackPressed() + } +} diff --git a/src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainApplication.kt b/src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainApplication.kt new file mode 100644 index 0000000000..75f2a2c26f --- /dev/null +++ b/src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainApplication.kt @@ -0,0 +1,55 @@ +package io.opentelemetry.reactnativeapp + +import android.app.Application +import android.content.res.Configuration + +import com.facebook.react.PackageList +import com.facebook.react.ReactApplication +import com.facebook.react.ReactNativeHost +import com.facebook.react.ReactPackage +import com.facebook.react.ReactHost +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load +import com.facebook.react.defaults.DefaultReactNativeHost +import com.facebook.soloader.SoLoader + +import expo.modules.ApplicationLifecycleDispatcher +import expo.modules.ReactNativeHostWrapper + +class MainApplication : Application(), ReactApplication { + + override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper( + this, + object : DefaultReactNativeHost(this) { + override fun getPackages(): List { + // Packages that cannot be autolinked yet can be added manually here, for example: + // packages.add(new MyReactNativePackage()); + return PackageList(this).packages + } + + override fun getJSMainModuleName(): String = ".expo/.virtual-metro-entry" + + override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG + + override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED + override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED + } + ) + + override val reactHost: ReactHost + get() = ReactNativeHostWrapper.createReactHost(applicationContext, reactNativeHost) + + override fun onCreate() { + super.onCreate() + SoLoader.init(this, false) + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig) + } +} diff --git a/src/react-native-app/android/app/src/main/res/drawable-hdpi/splashscreen_image.png b/src/react-native-app/android/app/src/main/res/drawable-hdpi/splashscreen_image.png new file mode 100644 index 0000000000000000000000000000000000000000..cc4aaad5cd24faadd190afdaf5b4e50d3ca79473 GIT binary patch literal 50017 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 MovLiDv}xG?0Reff@Bjb+ literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png b/src/react-native-app/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png new file mode 100644 index 0000000000000000000000000000000000000000..cc4aaad5cd24faadd190afdaf5b4e50d3ca79473 GIT binary patch literal 50017 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/react-native-app/android/app/src/main/res/drawable/rn_edit_text_material.xml b/src/react-native-app/android/app/src/main/res/drawable/rn_edit_text_material.xml new file mode 100644 index 0000000000..8f0aa55924 --- /dev/null +++ b/src/react-native-app/android/app/src/main/res/drawable/rn_edit_text_material.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + diff --git a/src/react-native-app/android/app/src/main/res/drawable/splashscreen.xml b/src/react-native-app/android/app/src/main/res/drawable/splashscreen.xml new file mode 100644 index 0000000000..bab718fa99 --- /dev/null +++ b/src/react-native-app/android/app/src/main/res/drawable/splashscreen.xml @@ -0,0 +1,3 @@ + + + diff --git a/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000000..80b730f367 --- /dev/null +++ b/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000000..80b730f367 --- /dev/null +++ b/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..91ef4d2dd9d1fab572763eac72367cae99424b4b GIT binary patch literal 2297 zcmVK156S=G?yMFJ&RfH*N}2pLIe<2+1WBm@FZOo-#y*S^;d-@fl$U+2D3UmKNsO+*wNkU#}cL8c5Lzv z@aK6*7P1%FjqHgt=snYWrx@nx#TZqSF2v(Br0UkKTR@DBjm15oSgPD^_cVE|h8xJn zCw63|4uip9Ad#S$P*637C?$gNnuI4$rK8{Pe^!#C{uJUJj4Qx#9JI8wESAS?sD)0R z;_-NPC8{7KAP553?e={XYb=89cDY>tq|Opi5XFRz1RbJSV-Ymf>2&5uovB|S0bqh` zHrx9YYpj9}P-h7)=rF|^lc0ftfrHdpA`5D2YWg?DniQnvOC%^Lz?k4gJmQglSD&Nh z%OEHS!RyuFKbr==(x-tt{v+VZW`od@jgkU7=PO8XK>-f<&$7Uq{}^~adPsq8-O=X+w7oLK{bp;i#O3)zvYc%D7( zE&M(Nhnls0X_*{?g26Em1Z7r?di?Bh^|@iNeh7W#;H!Qaxbk0u_rz@Q9{UM+KK{0t zB`AS!&4J*}HW03y2JZAi@Sr%#EWw_m?N6V{A*i*(35~YvFyI`8VHXG29Bv2%L}7w} z^+Zq&1(f4&%mj}#JLNrsVjdo^G5ILrQZewINASEXl(R_8oPsAp)4Rd!oD6~-gC5wD zRmlXoF>C(v_ZnzzA7sx-lGO0c`%uWY7+mFY@YQTUDc=nV!n#xS5?c(CM1S2@%&w=| zuoBweH&S=xm@9~~W8a~ASo}&c*z5z)?-+ruo*_1Ulbq`VbbM$r8PmfMRPc<0^W^CQ)ws#y!w>WSJ=G^j%i*$3d|AY$24EN^*`{d zbw}aXzdfc1bm5vpNPVpoo?BN0rIt>XF*G!KuMESszm7|lv-~$Da3J>rT<+?Cz`%L% z7ENdM$A5micymnWJs89sL8BfXR&6e2ML8w4P!TN6XbVD*(a)RzQ~_yklxsvvr0+Pz zmI&egafi-#eFVI1FO2aX&1*-AIf5u7)@&)$1RE_|vMexop%_!BG3I9$O8|Dk5PrvePFAkZbn&9!qwuIgq91m z$(5d`ojwh}>bgF*!BxLr6ig051WnbJnjUyz!}x6vJr`Jx5?xdq=xoiH(fs5R(N3;XQ?|prRx!2 zf=nPOC;~}A5l9M(KvGZyl7b>|M+7DOcQsJZVTv^-K~ASLVKazgB0MW@9pBV89#X?`nbi3VPPHa0e4j1N()p_q-g{QP_pbbm@p%50m>)-*gk3_Q;RbsW#o zuyVOvP+wnfn>%;z&nd=?j11$$OWx+pne$aVJcvA*ot?eCtgI~8YPA+wES7?*s;WXc zm6er>pVhw`J?HWJ|VWi;MO@xgdHk T>Z4?E00000NkvXXu0mjfgcx2W literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..1a3953790a156941b6441756e828af4bc486ccd4 GIT binary patch literal 3691 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 literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..a8c4d2064d58463d09d0c4ca611bb89089a1e7f8 GIT binary patch literal 4306 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 AWdHyG literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..9ee6bda88e037327d7dfef366586881248405389 GIT binary patch literal 1457 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 I-tW%;02p9ROaK4? literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..b95d1b40e8fb5afc5f131298e172b9e960a9b7bd GIT binary patch literal 2686 zcmV-^3W4>BP)bgFIb-e#P3+LEo~qg<5M4sxV-*0 zleTDxgOCqDb%bJpVJ`n}fsJUk??`myw=!`opE9nl#|)_pg4DwG)@U4VOSBVN;oEA} z<*MmZU_5{ngl_S>*XunPjY~{Inr^_#QY3kmzk0*tif}LjnY_@kNg`F6^u+ahVlP7OcD=)=pbUfhqk*~9u+!Zg8%e`}`*H47Ra|oJ#&1H*S1S%h4d(yl1a1FrY1}JH?I80cyD1OAe<;_smbe zD<{d3K9B5xBrhB&ULzd9IK`pAzyCi>O>oq54T%a5ul_ns>WsPD_hBA1f%+Xc$!~2SUr!}@8jo<=d{eBv_o|6}*9*vdC5OpBK+aR&C4cY5i22}xMdc_o znM|h7YB?(hghzI}9cLR%f*6VD(A{e%wm38+Wk=wUcAV$Z0bc1xI8}Z?PSa1=f!V?V*SS^X@2lt3Sx3$@&yXW) zAxGj&u$@M+r#N+Wb)A_Mu7x=KBQ}Wc?(To}&h|4wP4Q(DF^$v|-ae zYB{-)TpuL{(}r{2`5_nf@dwF&t5%Hd>vtOLX`#4vc6OFB=Wr`Eo6XZ)E*D+{M|GgG zwo8zHc0)F8-&Melq_aaO$nxLohE%%IIY`fK|4@tv)^B=~s#Bj6^&n~@_i=KVeoTIQ zhrv!XfE&`hr>Cc7_wL>Ih8(D@to$->6gSl%{X{KJn_K9q-=x!$-)7L0{1e1}u_lw& zykMf!1(!vEBMKKUb<)#6EyMVYtqthjL(GV4&;p;lr~- z4pdZB%;gQNPYu#f)FRW=Ku%k1G!jrN=gO`c>LW}l zh+Ec?J5X?J&;f4w-TU|NpBr)@F){I8r_&iz5qI3QiNe(r9S(ng*AlV0=^gQUN8G$3 zpd8@cxMjtP6<-KBz%rFz8cNh4{lrKm0owfXzYRo(L(<+NvdZ@8bb86*&>ySegwL>p zM}y*a?b?pB}P0>-0Zf|rkC;!WQW6M9((yppCNs26F5l>ajjB*e*Pc9 zIpQdBa^SBA%jo%}$Q>CQA$IS?-DYZR=^Zt-n9~q*9OB~+Wo2a{eemrxd=?`4 zdbViMqFEfGCOIjlS4u>}TzZ8z?8p;G3@uS?bnyup^mIaGl(1_j?JcI7hHls~=+pyT z&_22QG%r}NV78XC)(Lp@se*!n9rzZ5f(gVBg`k1p{%|zAme#&_I%0>$F+(BQc}`V zaN~n#^bcD~q!XVvnM}LTa}mCv4@LtM3E4J>_(h8{Gc)&qQ`FSa3lEB0x^yW*bYEFn zSqk1kSw5C8(+ZM&01Id~n^VCBoWM=bH>${bK&a-FmzSTCkq{x(8yjz^w1Lgi($ZY! z@F2JhoA<*B1$XGFjJd_d#Yg$HDx5%3p{wZ)j}_1f-LQeQ;ckePe+V4R*m3VfjYU&9t`-gepyCu}5+mB9&o33%+-v16~awY4=N z)F7k;UPxlY0-_l&(gnIwQc_-J-CuzX*n-VS7ULkY2P37vG=2K?g@+Cu+EGIuU|COAFE(xq>;NBUt~P8Y}v9W_&EMD z9|lu74Jqa~7=y8x!*lUv0Xpu6&Ye4V8vk%HQ9|MWGXZDt z%^pN%Gaj2UW5zcYFJAn3e0=;*0bJuAp2;y7i#g)03c7+?{||zQpi|V=)}rW8Cn`Gl s{|}#$z%}lnpCiAgU=HSnHQkx~58(UP;8810_W%F@07*qoM6N<$g8W`W2><{9 literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..cbd068f88bbc9503b6c1592fcb31b123478d2ada GIT binary patch literal 3197 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 j)BsBFU?>7X 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 pN$`hdsnYyUJ{14|Cfm%UD~g5fuf;0dC literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..9cc7421c0362aa85cf7060c34a479eaac46668db GIT binary patch literal 6279 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 literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..91ff16d1cdfb85a1998d01381484b2f2307733ca GIT binary patch literal 5156 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 P{i86_Gt+&m?GpE2z17i` literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..d0dfe92ad2ee12dfdaf58509cfe373cb77994ae4 GIT binary patch literal 9956 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 literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..ce2d1b2978b64a90e584afd042dcd201f4c61295 GIT binary patch literal 15875 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 LL!nCU)7Sq4PvRk! literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..59e8b6bf8362f32e373ae688e98243d7480e12e4 GIT binary patch literal 15171 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%0AH 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 literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/app/src/main/res/values-night/colors.xml b/src/react-native-app/android/app/src/main/res/values-night/colors.xml new file mode 100644 index 0000000000..ea100eaef3 --- /dev/null +++ b/src/react-native-app/android/app/src/main/res/values-night/colors.xml @@ -0,0 +1 @@ + diff --git a/src/react-native-app/android/app/src/main/res/values/colors.xml b/src/react-native-app/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000000..c68b0528be --- /dev/null +++ b/src/react-native-app/android/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + #ffffff + #ffffff + #023c69 + #ffffff + diff --git a/src/react-native-app/android/app/src/main/res/values/ic_launcher_background.xml b/src/react-native-app/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000000..f42ada656e --- /dev/null +++ b/src/react-native-app/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + diff --git a/src/react-native-app/android/app/src/main/res/values/strings.xml b/src/react-native-app/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000..c35abcbd3b --- /dev/null +++ b/src/react-native-app/android/app/src/main/res/values/strings.xml @@ -0,0 +1,6 @@ + + Astronomy Shop App + contain + false + automatic + diff --git a/src/react-native-app/android/app/src/main/res/values/styles.xml b/src/react-native-app/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000..333e6289ec --- /dev/null +++ b/src/react-native-app/android/app/src/main/res/values/styles.xml @@ -0,0 +1,17 @@ + + + + + diff --git a/src/react-native-app/android/build.gradle b/src/react-native-app/android/build.gradle new file mode 100644 index 0000000000..932bf7b34b --- /dev/null +++ b/src/react-native-app/android/build.gradle @@ -0,0 +1,41 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext { + buildToolsVersion = findProperty('android.buildToolsVersion') ?: '34.0.0' + minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '23') + compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '34') + targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '34') + kotlinVersion = findProperty('android.kotlinVersion') ?: '1.9.23' + + ndkVersion = "26.1.10909125" + } + repositories { + google() + mavenCentral() + } + dependencies { + classpath('com.android.tools.build:gradle') + classpath('com.facebook.react:react-native-gradle-plugin') + classpath('org.jetbrains.kotlin:kotlin-gradle-plugin') + } +} + +apply plugin: "com.facebook.react.rootproject" + +allprojects { + repositories { + maven { + // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm + url(new File(['node', '--print', "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), '../android')) + } + maven { + // Android JSC is installed from npm + url(new File(['node', '--print', "require.resolve('jsc-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), '../dist')) + } + + google() + mavenCentral() + maven { url 'https://www.jitpack.io' } + } +} diff --git a/src/react-native-app/android/gradle.properties b/src/react-native-app/android/gradle.properties new file mode 100644 index 0000000000..41b173c48a --- /dev/null +++ b/src/react-native-app/android/gradle.properties @@ -0,0 +1,56 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true + +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true + +# Use this property to specify which architecture you want to build. +# You can also override it from the CLI using +# ./gradlew -PreactNativeArchitectures=x86_64 +reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 + +# Use this property to enable support to the new architecture. +# This will allow you to use TurboModules and the Fabric render in +# your application. You should enable this flag either if you want +# to write custom TurboModules/Fabric components OR use libraries that +# are providing them. +newArchEnabled=false + +# Use this property to enable or disable the Hermes JS engine. +# If set to false, you will be using JSC instead. +hermesEnabled=true + +# Enable GIF support in React Native images (~200 B increase) +expo.gif.enabled=true +# Enable webp support in React Native images (~85 KB increase) +expo.webp.enabled=true +# Enable animated webp support (~3.4 MB increase) +# Disabled by default because iOS doesn't support animated webp +expo.webp.animated=false + +# Enable network inspector +EX_DEV_CLIENT_NETWORK_INSPECTOR=true + +# Use legacy packaging to compress native libraries in the resulting APK. +expo.useLegacyPackaging=false diff --git a/src/react-native-app/android/gradle/wrapper/gradle-wrapper.jar b/src/react-native-app/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..d64cd4917707c1f8861d8cb53dd15194d4248596 GIT binary patch literal 43462 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 literal 0 HcmV?d00001 diff --git a/src/react-native-app/android/gradle/wrapper/gradle-wrapper.properties b/src/react-native-app/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000..2ea3535dc0 --- /dev/null +++ b/src/react-native-app/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/src/react-native-app/android/gradlew b/src/react-native-app/android/gradlew new file mode 100755 index 0000000000..1aa94a4269 --- /dev/null +++ b/src/react-native-app/android/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/src/react-native-app/android/gradlew.bat b/src/react-native-app/android/gradlew.bat new file mode 100644 index 0000000000..25da30dbde --- /dev/null +++ b/src/react-native-app/android/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/src/react-native-app/android/settings.gradle b/src/react-native-app/android/settings.gradle new file mode 100644 index 0000000000..0079352548 --- /dev/null +++ b/src/react-native-app/android/settings.gradle @@ -0,0 +1,18 @@ +rootProject.name = 'reactnativeapp' + +dependencyResolutionManagement { + versionCatalogs { + reactAndroidLibs { + from(files(new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), "../gradle/libs.versions.toml"))) + } + } +} + +apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle"); +useExpoModules() + +apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); +applyNativeModulesSettingsGradle(settings) + +include ':app' +includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile()) diff --git a/src/react-native-app/app.json b/src/react-native-app/app.json new file mode 100644 index 0000000000..50a97b4c2a --- /dev/null +++ b/src/react-native-app/app.json @@ -0,0 +1,38 @@ +{ + "expo": { + "name": "Astronomy Shop App", + "slug": "astronomyshopapp", + "version": "1.0.0", + "orientation": "portrait", + "icon": "./assets/images/icon.png", + "scheme": "myapp", + "userInterfaceStyle": "automatic", + "splash": { + "image": "./assets/images/splash.png", + "resizeMode": "contain", + "backgroundColor": "#ffffff" + }, + "ios": { + "supportsTablet": true, + "bundleIdentifier": "io.opentelemetry.reactnativeapp" + }, + "android": { + "adaptiveIcon": { + "foregroundImage": "./assets/images/adaptive-icon.png", + "backgroundColor": "#ffffff" + }, + "package": "io.opentelemetry.reactnativeapp" + }, + "web": { + "bundler": "metro", + "output": "static", + "favicon": "./assets/images/favicon.png" + }, + "plugins": [ + "expo-router" + ], + "experiments": { + "typedRoutes": true + } + } +} diff --git a/src/react-native-app/app/(tabs)/_layout.tsx b/src/react-native-app/app/(tabs)/_layout.tsx new file mode 100644 index 0000000000..177d3cd902 --- /dev/null +++ b/src/react-native-app/app/(tabs)/_layout.tsx @@ -0,0 +1,49 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +import { Tabs } from "expo-router"; +import React from "react"; +import { TabBarIcon } from "@/components/navigation/TabBarIcon"; +import { useCart } from "@/providers/Cart.provider"; + +export default function TabLayout() { + const { + cart: { items }, + } = useCart(); + + let itemsInCart = 0; + items.forEach((item) => { + itemsInCart += item.quantity; + }); + + return ( + + ( + + ), + }} + /> + ( + + ), + }} + /> + + ); +} diff --git a/src/react-native-app/app/(tabs)/cart.tsx b/src/react-native-app/app/(tabs)/cart.tsx new file mode 100644 index 0000000000..c91f84728e --- /dev/null +++ b/src/react-native-app/app/(tabs)/cart.tsx @@ -0,0 +1,145 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Copied with modification from src/frontend/components/Cart/CartDetail.tsx + */ +import { router } from "expo-router"; +import { ThemedView } from "@/components/ThemedView"; +import { ThemedText } from "@/components/ThemedText"; +import { Pressable, StyleSheet } from "react-native"; +import { useCart } from "@/providers/Cart.provider"; +import CheckoutForm from "@/components/CheckoutForm"; +import EmptyCart from "@/components/EmptyCart"; +import { ThemedScrollView } from "@/components/ThemedScrollView"; +import { useCallback, useMemo } from "react"; +import { IFormData } from "@/components/CheckoutForm/CheckoutForm"; +import Toast from "react-native-toast-message"; +import SessionGateway from "@/gateways/Session.gateway"; +import { useThemeColor } from "@/hooks/useThemeColor"; + +export default function Cart() { + const tint = useThemeColor({}, "tint"); + const styles = useMemo(() => getStyles(tint), [tint]); + const { + cart: { items }, + emptyCart, + placeOrder, + } = useCart(); + + const onEmptyCart = useCallback(() => { + emptyCart(); + Toast.show({ + type: "success", + position: "bottom", + text1: "Your cart was emptied", + }); + }, [emptyCart]); + + const onPlaceOrder = useCallback( + async ({ + email, + state, + streetAddress, + country, + city, + zipCode, + creditCardCvv, + creditCardExpirationMonth, + creditCardExpirationYear, + creditCardNumber, + }: IFormData) => { + const { userId } = await SessionGateway.getSession(); + await placeOrder({ + userId, + email, + address: { + streetAddress, + state, + country, + city, + zipCode, + }, + // TODO simplify react native demo for now by hard-coding the selected currency + userCurrency: "USD", + creditCard: { + creditCardCvv, + creditCardExpirationMonth, + creditCardExpirationYear, + creditCardNumber, + }, + }); + + Toast.show({ + type: "success", + position: "bottom", + text1: "Your order is Complete!", + text2: "We've sent you a confirmation email.", + }); + + router.replace("/"); + }, + [placeOrder], + ); + + if (!items.length) { + return ; + } + + return ( + + + + {items.map((item) => ( + + {item.product.name} + {item.quantity} + + ))} + + + + + Empty Cart + + + + + ); +} + +const getStyles = (tint: string) => + StyleSheet.create({ + container: { + flex: 1, + gap: 20, + justifyContent: "flex-start", + }, + emptyCartContainer: { + display: "flex", + alignItems: "flex-end", + }, + emptyCart: { + borderRadius: 4, + backgroundColor: "green", + alignItems: "center", + width: 100, + right: 20, + position: "relative", + }, + emptyCartText: { + color: "white", + }, + cartItem: { + marginLeft: 20, + marginRight: 20, + display: "flex", + flexDirection: "row", + justifyContent: "space-between", + borderStyle: "solid", + borderBottomWidth: 1, + borderColor: tint, + }, + bold: { + fontWeight: "bold", + }, + }); diff --git a/src/react-native-app/app/(tabs)/index.tsx b/src/react-native-app/app/(tabs)/index.tsx new file mode 100644 index 0000000000..c01e1ea5d2 --- /dev/null +++ b/src/react-native-app/app/(tabs)/index.tsx @@ -0,0 +1,39 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +import { ThemedView } from "@/components/ThemedView"; +import ProductList from "@/components/ProductList"; +import { useQuery } from "@tanstack/react-query"; +import { ScrollView, StyleSheet } from "react-native"; +import { ThemedText } from "@/components/ThemedText"; +import ApiGateway from "@/gateways/Api.gateway"; + +export default function Index() { + const { data: productList = [] } = useQuery({ + // TODO simplify react native demo for now by hard-coding the selected currency + queryKey: ["products", "USD"], + queryFn: () => ApiGateway.listProducts("USD"), + }); + + return ( + + + {productList.length ? ( + + ) : ( + + No products found, make sure the backend services for the + OpenTelemetry demo are running + + )} + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: "center", + alignItems: "center", + }, +}); diff --git a/src/react-native-app/app/_layout.tsx b/src/react-native-app/app/_layout.tsx new file mode 100644 index 0000000000..d8ac89c3c9 --- /dev/null +++ b/src/react-native-app/app/_layout.tsx @@ -0,0 +1,59 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +import { SplashScreen, Stack } from "expo-router"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { + DarkTheme, + DefaultTheme, + ThemeProvider, +} from "@react-navigation/native"; +import { useColorScheme } from "react-native"; +import { RootSiblingParent } from "react-native-root-siblings"; +import Toast from "react-native-toast-message"; +import { useFonts } from "expo-font"; +import { useEffect, useMemo } from "react"; +import { useTracer } from "@/hooks/useTracer"; +import CartProvider from "@/providers/Cart.provider"; + +const queryClient = new QueryClient(); + +export default function RootLayout() { + const colorScheme = useColorScheme(); + const [fontsLoaded] = useFonts({ + SpaceMono: require("../assets/fonts/SpaceMono-Regular.ttf"), + }); + const { loaded: tracerLoaded } = useTracer(); + + const loaded = useMemo( + () => fontsLoaded && tracerLoaded, + [fontsLoaded, tracerLoaded], + ); + useEffect(() => { + if (loaded) { + SplashScreen.hideAsync(); + } + }, [loaded]); + + if (!loaded) { + return null; + } + + return ( + + + + + {/* + TODO Once https://github.com/open-telemetry/opentelemetry-js-contrib/pull/2359 is available it can + be used here to provide telemetry for navigation between tabs + */} + + + + + + + + + ); +} diff --git a/src/react-native-app/assets/fonts/SpaceMono-Regular.ttf b/src/react-native-app/assets/fonts/SpaceMono-Regular.ttf new file mode 100755 index 0000000000000000000000000000000000000000..28d7ff717769d29e5d1f036bfa91eea660ce8a24 GIT binary patch literal 93252 zcmcG131D1R)&IS3)+CdCnIw};W=|$FStpZql1%okP181MGihm)?m#I83Y5JR3Z(*8 z^h3~!h=}5XQ#KJn5f%Bcf8av|MN~jUK~zM*jZXf*bKks~$z;+NzyH6}%)EJX-(Ai* z_ndRjIrm(~8DlwkQ#01TdSqy7?bOE@-&uycRYR+%dY65^?>CH3KhIeH;EL6Cjcu16 z{sv?GAby|SeAe9Vi+7$k%9!p>#`Mo^zF?1~;4h|b#>#W>`=M>Sx1ZI0kNHbzU@v1C zuWg?@Z#T7u`i|jKzkTOL+wLxk_!+ZLGj4oj$JV(m`b$5ULH!2&-n;`hv@f#1;(I^7 zJ9eD4XYcu;^FNF4e_%}W$j-Aj&y_cB8$o+V==)i7dv~il3?Jh69Vlb+HTa<5x3YV=DZrmbUQ2_=QP_q-oqAlRxHb{#(J@z;jmT2Nw|4YHNE%40*g zyACyUpq*~kfTz0IF#fu^p54QqWVf>;xOW-P;#ur6_BQ(j{^*@PX$WopGK~{z+H%aru;1LO1}T9Er) z2mGdfsTbWJ#>`Nl)dA`#j(%I%uO87)`Q5?f&nDnhdCAZ-fzs%;Df%gYqxWk-e?)-` zUqp|IuQ9Zr`elvXkHe!1_xcx%XBt!;f4SKGpz*}lN>KcXUx~HnVQ$bXv4?cMF8Uh4 z_4%w7?_KCchv-W$AhHHCsvdpYCT3SF?tc!iBY1tCU5Z)Ij`CfA=OFWfVt27wMpQ9@ z=PqGavVHiy6Sa5+Y#Z?I$6q7f+u0mmJMs6txT0_L8pdBYus?@#UtsUDo6&YN`y}&V zw$?K@1fx8UP z*R#vn>+C7^KPYhwpHJiUvUq=%JqUpJwS_-ikVzjh^D?*)XfWLu)I(*SAt+6#EcU#-Au z;;WsNp~nT7cQv?b#dRhtMXyVN^&q~V4k*v!Wyb3?z)BVUE0g)Y_9Y=RAh?)X`(6C@ zLtt48x?rFi;&L;1_F_Qy>wF*oIKPR1frt6a{P+Bil1XZj`lMCTq!g0oq^;7~(nZp> z(v8w>(vPM8mVTw;sx*~JWmnaz8dQ&&v&~ks)9f*Km`BW;&1ahrm_Kg*r1{h4+syy8 z6j(|vW{b_@vea9AmUc_OIS#Gp^%JK!vot7_KzHYhK@_^;r)_kkQYO}hm zwbn`N2J5Xh$)>es+wyFMwo;qf=CKXiW^G%YPyJh(pT`(TV$}nuJ(w4BpyAuuJz^BM z^KbJ1!{6XTTvkw_PQy&8X)%Z^W`50l5Laj8-spVWeAT>l z-Z)~9|Y%{?zq>4wAz z9>;^f#vkcH@30Rbukla1M+!^#O3zBqNze=N9omufbGlmiPkJ)x`wyk3q+`<4c=9Fb z57NI>OqH%8O%I>=dsy{d6}1=rry|WI;h!q3x;No#>{4~Re5v|6>cC&pKNWPF<@~Sw zZ+srw*D`R3A$GcyF1XtyX4x9HR?3mGrCiY3cJRtE$x<6r0Z@E`I2 z;ZL%&xt;Ci4t5@|WLNPPb~SHh*YI|BfVZ)OJitE2yV)oB0K16~vQP41_9;HZKF<5t z=lDu?8(+mf&sVeC`6T-yU(4>|GwiE;1Gvg8yO(ce-{hOvH~2PQ#-C^R@$Kw>zJs66 z9^hxNZ}FY%L4GECgrCE{!*{dq^7GjD`33BId=I~voA`6=DZY;#;~!%`;a9R>L0kPb z{}g+L{}=lWznQ(xKf`{S@IvqiBY%b$@u&G6+|OR%*K-yB4m+2-z(?lT|Ka=DzxjRa zIDdde_=9Yoe+%mQL+lQ|hCR)%V!!8~V}Isf;xF)*_>24({FhQd>XtgC9;r?0V%PCb zc8GVeFYqaLC!c0t;vx1BKZ|{v?_v-0v)QBkT=qD>ko|z~Wk2K>u~+%0*=zh3_FH}{ zdy{{jy~S^5f8lqrcleiiI)9vJ@E>pk{~^!i|ILf}vuqEqV&_BSzkpY>3%Q5w@$3veU`6aNB9H_ z^Udri-@=~ZSF>mN0ro%q8ulE&mi-iKxaawG>}UKCdy(J3e$H=Xzu+HdFJTq(Oa2MY z`M0^mALeTQ2-omOxt4#I>-hJ$o<9b?{Ry7OpW^xaC%k|kgJ!-05_SR-bT$72f0J#M zmPyn6AJXa48TZ2}e_xB;CpX zoorUOLJGD+mIfe?yPy#SAxjp{bT!smTBZY!PGjlNfenzrSX|Z zUP~aAO^~$Z3%G-sRX|EvnT^>Yx1G?|E1_AtSv9mIFQj@cByl~~K8?&LG_GdoZc&bc z;So334^HqH`)|zj3e0i~X1En|yczR5C}#M2%yF9G=VNwXg86*~X86}IyJ>F!K{5%R z^cLI7{|GMeC-9^{g9o)sMc^_oOQqmSc~U-qU#gVMfVPwWPO?C9{vK<>CVmt6(u`Ch zS*1}(QX4d+SvCzmcLw;>lVUcKzD@W9W~EH2fcTu~VJytNmN1)|9tc@1V-K;cm1AM; z>Y3?qlPO#kn%!nOG&LQToO9pS13{ZN+c%l4)-Vf&S)aZCUPz|C+1{Ek_l7OA+iJp+ z*RsVDerzJFcFo*d#nbx+HV=fg1Jl;9${AX|E^0A3&3wm>C&Js?an4ZNQ3;mW(SIuI9ji9VvsARXD3W^t3uQEkTqlp2UkzyHxmsl+I~$~ z;|=TjJomz0ARwj1S9`A=5V!Zvg{4i~z!lJou%@~utn*r^s~LTpA5ybTD1y!gXG2tE zwqJBr@4Z)-!TJVztF1BEr+F9RB3-V9d(Z{+-8pL+IAotAya;$P6TviWF`<)6FM%EV zT)*5z#uAT*9e4^4$A*^pkby|Z-g|FGx(diP*{z{!YfU)QdsLDJ!dvG0Yr7(i` z{UJvu+Oi5BMY8TJyb)_TJ=o^TCjVI3yG5GXa}G_=pP+KD5cums4kCR`swEiVe! zRUg&x!hvZpGD2WOB4if-+~~FVMSp!L#|IX312CDC-J|=g=zbxz`@8I|M;mz|M%0Ay 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 KMNUMnLSTX+CF^zo literal 0 HcmV?d00001 diff --git a/src/react-native-app/assets/images/icon.png b/src/react-native-app/assets/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bbe6b8f49f43fad31dcbbb3ea670e41fe869b9e9 GIT binary patch literal 20843 zcmV)jK%u{hP)PyA07*naRCr$OT?cejMHl{N`)+zd??rm=AWb@A0Ra^YD#hOdii%xSKt*h*6dRzR zA}U3t_bMH!O0P*Ey=}JddvE@8-zFh}lWV zWm~@iF~9+azzO-f|NazK|?{G*`E46~vVG0294l}5A_7bvc6>)@GA!R@+t;6l=pyP2srwJAp$A}h&co-au+R2 zu3weZl!_c)V1P==WWJG^L#F_&BEVUDHY9Fe83UAr$+Eu(76TlN|55!x0OO!y9ie4_ zMWPcMPNGu@P|(TmVWC|N(Ec$1lfPUT=Vx?OZy22tcY zl{UrQ?2*`vG6o11_HXfZ_|h6(0RAiVtg2*|U~wR*#82p#Bp^h`=-*fcSPwQd_FNeQ z+~R~8jP3J3styNNOoy69+AR_UdfZ+Ixq}|VAzB7OgiWR49oWG5BV`N_3<|h~*WiCt z9}nPDC>cy9Dd?yE)u`9Yk6^kESRXbtc0(Bh+`_~e=&kcVtG)17Py1MP9n=`5)XpbCI;0Ac_{0|)~U0YFdoM>==_sPY-`on+{lKJTFZ0>Sz2~yJ$GaLgz54MW{5*cHuB`$KEI`BWMJq(F0C~YTyE;{mz zVIn?cL*m{nV}L>kg>z0PdOZNm0kj0r06@c>6W%A%x)7Ive@|RO$99d8WoCG0{9G6e zI^5a2HJUW2f~`A`Vb8vk$TpeKuXjg`c(5HR(!Fw}odR$cz)=8)bC}}gj_>>Kfd!>v4axlX=uOpk~fj$5l0jNcu=6;}yyeY`q=@dk0 z)bc9~?@!-`rGIY4q95PHu02Qb;J}tptAH#s@Xz5mtlNALXU<$itCsaJ?tlFeN&?lj zEgb+c#Q^{-0c>ZC<#{^#6aM1n;!CUa0hG(3WZKg5;4KW^ycB3p#~qy; zp<3nelE9>Q!!iJ*;@iO(lZ`!rY_eYu!zO50c~e&D(DoFy-@G>f2N zSaUakegKF8NPZ7`Te;~xCVu!MRxf%N7XvYNFah<`$(Xl^k{?)%lybtvz{{mr{eT*AT7m%xwsh+f=%mWJdVC{GS%K`iZV4oa8 zQ}}LP$v(+(wkQ5x`skYZ+q}Zfb=gMoI#Q)xq8K?GdaH zp@gpWJ5V(mBgZW|_rD3p$=Oga6`*v*xCg4qzCb!g0XJD{wc>U*D3;XAK^DRSwL4;J z&N~5k7Qp@f*5LRHY?AettvP^u`?r=gKBc6c20#%~-??LB;ESt&0zG>fb`Gyq4iQHj?GNuKz1GeRK zznbq{zjhv&0LQ=6p-|}pauejKKshF`!Eqnt!tT~4+}UWb`sDcFJPm*>dGydNYk|SQ z3ILNBWBd7{^7lijTL>jnn#_{h#4m#-+90W;5Yp>6Ai7ntkUICh0^6}~pwbush5z0J zxv>CF5u#ejd$GasTW?4P;GC1eimvG{f%)cTvtES(GfvI?1BYJk3vE;dlf{cjE-ryP zvw`piFm#^-L>B+}ckF)+_W!{~iaWJrPia zdVUU*=mP~b4Mss#zAYU8&4eRCs&DwWo!H$h$~qy$OD zq|R)}rQJ6K1LVm1bm~uZ*VQ;!v~hE;lkenD-380m5s=K6q12N9ktgRQsXc8F946?R zy$E%iocCtdaoD$wfFofKloeXT&|?7*k!znU{9)|a{XFa^=0c?n^;$b5pZ+0oI+P8F zta~Txv88|&+>@OJ?Ync%>9n5-phwUaEnCQifrNFi?0ONBIUY(4#rAkeBBEVZdup0I z2X#x?-|R{=orQh-XgK1xKv}*G4Bfs1qFWb@c`m{E&s%VunhS+O36R0e!{}m)BYqo{3q$4|vG0RYF|7vVTD7fMaIE4`tcjePD5 z5%l<#{$lsV6J1@?+@HsV|T`ca4pTOcLxgkX$?Ql<7z@6IWeGl#0tGf=mD$1}u}I7AQQxGhk|G=-t(&)29( zg@cn|KQ_zt25|HAmmj{N3c$(t!)fZx9>~Zl3b5-c0&&ji1@vo93@*V~xH_N&v>rR1 zj>n$6cIIDWh9J+kbtI&fddMNDt#J!{JEU17%F>0(Js& zkFXt`?(z|G(kf*{&M{6=FW&Q^#<6m%d97IPp6oL_=(~@)AD`aC8>AsbWf#*bBxju4Er3g7k zeoomH`qxd7qDaU^8I5IirsgK+`Wr!*M$K%=Ys+K0HDMm*OE4HQ@;TmSr8MqLcFj9Lh3)@W~%Zd zEpE4)tqfo>J;&XGE0TrRuVdypoh%Vm1RVY}tB-l3$hLm*@92^qe zUQj@(3C&S`mK-dToBS4(_ea1ac3-SpkC8xNq*$8eoKrmRA7w5L#i5CVRFcAp?;xZd z1{W+)C{0?3cQpnj^7zYS@ABmwH0gP^Y1363)h;JCCI%5o&f{{V#7hZy@O z#DuNjmIP49yeg~~)RnsfRr|YSdM>(R0Z#k?m5ww#?x{HQ14rVXR>h#A5=c%gfv6hA z9ynLzqxb5K1r4hL=XWbO7Bg15gH}rZ@&W20IUxKu9k%~w0=5JwwNZeAvMQFsCOIHE z&CoRZAJlC>b)D3v^RRDw0*-|3P*-RRrmqCYrA?4*W+d~V5o3jKRdPbGXF=Ow1T>vy6}*{bCKv%{%3fLB zstTW0;MLxZC$sY0P$=Z5__B`sEPR7O}qAnqVUEo55aL^DHP?} z!EpO@Af|1BHN^N8aPE5@lIbEH-ChwtX?sF+j4>SpYGrKU_xw_^5BoAJPX-B7niK@&V_c;vUxRcxAN;`nCXS`4|n zJ#MQ-37NfXqDZl=0>VO6?qxRcZkZxSi5Hi^y89Ktp5h{Y5ByyG3`)t<R6r`^7P|PD22g>fi zNZaF-79uMCG1dcK=Q#@44RH7jukiV-wVSeSnkE^kanPt7`1QNdh$zI(-8)vx`xwS-J2H({)Tm1FFs^p`q6M$LI|rkO_rri*l(*LVcIsRjKAZUmKAQ9x zBE$R_g69rI!l^m1?|&OivgY{S1ng6|15WXM=zU^0LfdFGG#x0de&MjnA&rMVg|^Ws zXu8aCJ#x1{4*R)3z?53(nvH{sJVdz&%j&*B`T>vpj$}Q*o-tX~>A-B%h#ljp%zyPp z1A=wVxq9UIm5VISh=Ey|m*BKJpi$YdcJM$81-<$tJRyYOhuU!lTD~vDa!zU)&Mkqy%PgoG zJ_{*vD=g~-+9fCz3U0MnS$L>`C38j;OK6K%oy3I6v+>Xa1Mu!kJ#j8J8;Aal z#oz%=@Z*wyG4<2=82!XRy!4bSB-lfvdjVj58S6R5@)7@uS+MS(1Qlf`^v3Zl|KddO z+zBo^kz?3>THa`F%evMlUAQL|YwTLo<=T&#{Wo!9Z+#l0inPbi} zK77Nvbw6gCtl(rIVG0;CGts_v6@2#2fD#w`YTiD~n*9f!c=TR$YF{6*@u^TSB_@9~ z7x&!R86Qo!tHe1%FwD{;q{=1X$^%l z1I~+of!or3dr)(-@S32hGYp#BzjDhcB^>=2);+I5Q}Zrp`%qE|KsYu7_7k(AP=`X( z>Mba%-38c^VOe_@nCV=Jc#w&o9NPr{6F;kngOOzLXtSr zQWNm*EB9hR4@$dVa+~wpG0d627S*a%0p|>fiHYdjvlZTbv1`eLOKXpWwJ>da1`21o zOZ(wXqYMk8MRtMUVGW?J(hcfreSvbFT!y90qp*6Xu zHoq}IBIhBmk6*FD?1=1`oe}49ucZuPCNrWVIDYu@i9#R1xqG>sl!XIF;*g$cgUzYN zs`bZ_o@Ikdsf0!&;emVGp>lb$6bfiiw-V~q^j`bpNBp@rmGLAj>xTlCi(sVf@wjn7 zv_o{-p@_H*nnq7SRr5YTM~SapO*lOl_Cp`b-l3ky@fHRUhv+atQ{ygZI?pcgq=qva zj@{2ej9cZB_n8*jrq4mui?sESEL) zck>$qO#14=$H$IecqJ<{iR6A4<4YV?a~8&q?t!6q)-4uxdXQ4uK&?iD^?e4|>D`R&qKfDdPbFYWRM z@9vE83j_SJhWB5+Zrkeg^bA?JXr6s&$y9B>mp-hee5529iH z+n`pfaOTW;)UR6wUwt$bS`W3APA6nTSq@LSgA>2^k@em?$3j7VJ)ZcxP>ik91Xb1E z(6)FDD1W7%fDB~%ewPs~b)U;~(hoUwTvRK``FvD{@(}G=kj#nD)_Vw=+rM>1W#w<8 z6^_40!hY^gsPvHq_ea4pk^`bBx{74e-U-HHoZRFThBEQ<W`M0n zdG&eoH*C(xlIq%R87^1doJLBD%*+h*?p7C*#`i376V(5e$t$pC{Vu#Q{xMW6PbxAA zAt44l^U@b+*0?TafBqPBZZg5ySR-D1>qpe8UJ;+acmH*>7)zPQU|DxBl!DPs-*yh} zG=nSj&^CSws%Ed{1cY2cp?GpO>_s@ms6T(YY%~@^(2UC zhhX3H62z>t*D?X!K9stIh+i94%&C4=V0;mjKv8Q39ci{y`@ozJu=^4(lt?r_cJP@2 zCeFI_qD8}U_~QLR(3EidPx^ENep|W@@4P+&!|rW_1OFz& zlx;z`PPMT6U^2$MJPWN_)W>(9J>r(-cFWFKJofa*s9mcX)-HPe`UT5KPWhB{Tv!Gr z5lWG|2XYz{A(93sq&oB+K8CW!Rmlvv2GB%bc0CVg<~eBVJq%5UFXV&Cv1<(M7gj)}BL*x|q;ZQx86@ab zPKXk=Dl<}svZoM~a-b8^O8T;|82~+LZZl^LQbLV>}=Gj5r$bG4lU9MMi}~f z{w^&3b1SC2I|?0Ix@6ol=hKmqX+pbJuAs4tm+Tnx%GYStq&B9!Ij}^}0m{d}debSC zFBghVt*QFy^=o46U$FiC6ciMfTa>6G2@oA-s4I1Zw%rsU`YL0e@e~~YOn@_fJrqiE zn)5OIE$8G{RlghRrZ2&H;ww1Ki7<5ew!j0Mu;$n^&Xt-(r3H(mgjO6p>r{?Ns7^bql=ECFO6QJ_DzG~ zj9m?-o(juf)hMk9i5~I^`{lJKd-7ITwvU07eFjQhwA+zV#ZnQ;=%N+s7H>h-l#=j~ zI>~(P+Ln0Owhjl+I4WmolU1>DjW1GT67iQDu~j4-@*_VB%BuaK?@i(18i>H7D#jKB zg9E%~fKTRLeqrzaqo12iSzyH^O*NT`0rZ$P^?^dwpvO)pW6R&iG2)@_(7RbPi;N@l zf7^-1^{b#`8~1Dr!9Zq7Ylv~nVcRks3JOBce|ifR2%-dCgD0SFJLMX8XfmML|9J-TSUhQVp4qkWR?`!sEnR&F}FuGz>i)bVQ)vOkZSyS&v*i~-s zWFC*bl#ZI!qDvHK3Y-2ydsLU9E7>Ty@iZK}o`o}UhbutGmxuP% zOUuNc0dE#0Ug}h>bi8Etoo;jZ~CN=S7p24dq2#v;U)UOkX znIGJD{T`tKL!TEDXP<>-;}9U5DiSeB+KSM(p9*Cys_9p-5dm7(+zD>I45co{i^bd@ zLMO4pP}P;Mvx3WQSvWQw*1fMmrH%B>t>W69$thYCQO#lKxc~?$w9bhMKvTxpMfZ2% zc~6fSVCiPwbkWk)`?5_=T~QC;{9uq4sCCmy_+rxC*G&!SIa&fcg0ehVxBm|;q#8oH zk?7GeXTfV-^j!W!W1&z;ITlqPH3G5s1gLrv8nC6-j+G`}q z#2-<=@BsRPvwqDO%kii1dbwf;ddvXt&WfM^-?3AVS+Y|K)%xUL&1DBjNAIq;VbaSb z+W`Wz#nL&el(>5Q5WVT~pK}9Lc-AobaHPHxG zNMu}7g+f7D=lmu6a{-dzgtqm&P&IzeUGOM*+At>Pb@YGphyf|bnIPO8L?2h z@e#-s!e-8pJwbckUY6~=@XwboR^Z5ou>La{3Uvr{oo7K=`@t(iBnPY;heEux&h;Mf z7f}{PQ*v@Da^lzd=2e=1emecbZ-cha@@wo2#gI0YGwsY6+v9)o_dut$dIxX!!_O=B zSnXhYsY=aWNwgEpP~A2h>W(u!1?vaK*ho(Yxzpe68(_kW*mu8RypN zPx8MpD-(D2YJxYP%hfNt1JbS6M>3v)xUMGzYX%@cHaWN>69~I4r<72>@@VE*ST;QX zWE_z_L~oczOf3n}b@~#@IuCmawiQ5I#@I1W2bR>|Ee0UH|Ifd!-eIz$qTtAO>+~l} ztl)H@OQ-s1Qm-6RQZu1YGUzmF#6%fTqgo8AR|%J`!)^gl(oSyVzdO=^%>#kVgRmhA zoT^cS^yEgUE3|{Q=i(g3aBY(Eh1#}00VW66_~&sNaP(1ZF%;1E{tJro?Y&uUDr4*o zZw3}O#x2_WcwXA1Lx+yPlaWRaZzYR9`4@CJ?66o&P%t?OMqb`}Vvg`o9U3;Miq7ro zpnuOs2=~>m%iq`u;(TMryn&~iu0zub7hn_g;B+jIvB;4HHMv7~{h=Te#IJ^J=ks8W zRF5(%1aV6Rmm=40ra{P{eSp5QH(=V1A>N1zeoU~|$4R; za(nutE{h5SspL!Bk$9 zVWps{pZ>$2tM??1{@=*15A(}QFFomBW7@8NE}%i(YKV?hA=~VLMx%sQ9b6{gx+ejzPhNz`=*mzQf@9jh zO;H)zw8i*l=x)>sKMAK00zsmizywj`(0BY8s`^hBWP$^4!FF^8RB8&m3B<$LMf}WA z8Qh*O$1xXg&Bg@66Y6KGi1d)e`7m@X$8QKi!LGa}Ig{DpUyhT#FX=rp?48Hqh=ylES*Xn?dGz?- zaq3(aqN3ajG|6QGO~wj*H)I>ChaZQ{5q9NaEZCrJ{kAKIP`)Od{vNhHugOk!KBrLO z0tCAS`WCN1)p7!y2Peu=W3J%%;tt82G>f%|LepioS8>Hxm%{}xmoYZl>yMB#uuukg z|C`HCA3l8eYm3#IBj5SDjBn#zTA@_*@7WOVyjXN52;Wu--slw@FJR)wf1pCeY91Nj zhzV?{1Wo!9%pJBHRSl&V=o*_~zmoWtw&vp>6yO)NKnI@_fMhApkuXW0^k8ajkKebIwM;y87qT z4Dn&7!y0hom%G4IaDC+pI?SH-&^5vJ?#@vf`jOs$MQ1=pC3DVX!c6KGiH#tbf?n{52V71(_s4pGtNy|%5$Hvy{vP38uC zcK2p9i8)r_CJ>x<=v%#cjj;@=yJ6Y+JSbJ8t0tM7Z#!~i;|l1yehp=f`{d6joSY5k z-tmAsCmC*WAC+98xd>gS=}^`l=FR6XYRovs7}ad@x?LjzEm_Yy{`l*nEuy5=a>^I! zL8Hm&<78$KxfKMh4#T^~5Z<>hh zs{%EpHT0pm#Gwk%X05=?K|4@4@;^9*Pza(j$5_UpZT2EmEw0KeLRDL~jdE3`bSJ?U z$^F(0xxQDP_(G5JEyLi9TLq<-9NS7zlT-MtCLHQ6bD^x%-G^OYGxU4L*j2e?Je&R+ z$Y=ay8h7Bo6JK18I|Wrvj(>NjB;%FUVnnNE)$rh;_Hvr^Ma%bN=iW023#Z&a-rE!C zgJ-0r;KiqU;(>c8HQ$ZZ;t~ZsJ$@d{b~QpnJr{in+b!Y5foP~R*J0W{JJ2ZlIGmDB zW&(1X5Gek(A(b@!xM0?1(^)w7z6yKXhMXeRMQEXNWOq%qzR+}=C&vg=6B9PVwrwO7 zqSdYRjGVH~h1G+h_Y%Nxr3j)QzTiIqx--T|9P+ANLy==A9-W?%?RYLd`BahV4hvg} zu6MIJ8_gS*$7hr7My^ds)_1?N5{Hi`B0St{H(1$YGd(>8V@KYBNAAlPA?4M!gF7h8 z3_Shv0>oZ6Au7thQCzN@pgc6jZTO(i2DGVs6i&eaLCRqQs_t0tQD{1SS3@9fDl)HR%(t-_rnpt*3Cj36y25$RrNce>Hf24>ETQMOr)Z0 z#uz(Ua@WFp6kq_(xpwrctG6Vj@s5%+TP|_rZllMU(U^|c#|^;UJ*pQNwsg$}eDUpi zgoZ_Wr1i)@N$w5s+H?Ids9*8LHr$0dSp8m{xB|QOT|i8^iayAmwI1IL z-i(@IC*c$guA6}J^OF&(<~`6-k&FDk_@WKY1Mk9iVz!*WpKAH$HkZ$l61wg`Kw14t zT{iLJAFyrz9~322c)2o>E2xL+8>m~n9SD^7WsI%&cH#mIux3B6{Nw!P{~Ap^+MT3V zR}-i)D+8k+>53=rFX&u0_qSvCVd38h50CPm0VIyplmtwB?*Vjao0mh<+kFRZ+?46t z@aO7-h$&wM%3^Y;`U;SX3CclZ+>Cd6Zbhf6|6UP?D5!?4w-r0Om>|4heP!XyJlOY7 z0uyrTmr+q{Npz(zX_PO0i7g41b@u?qQ|{L}qfkh$fWGHKC@KX+h5Zg=>^*PsSAYR# zEX-`XcFo!y3Z-5n%4sn?Yc`t|5g`npzV`rXS8-LbxSRq!HU4{8>>B9Z&3;?RvZPhY z%1p!$(?_B~ZU4y7p6$-_-ZOsKhhLWLLU=^^60NEr~rq4s&c4~n>&i${!{@*Ou!`Dp> z5_cMbh-NSh*aT2gVE?y28DlQhlozc41N^)~d~WHoRnzSbr`HBBtJMr8bD&fEhO%y8 z_r6nbN-F5}z7eh6ZU=)MKhAmrm7?8L-+6%$e+~KOr-PXP>o$Z%RDj0cuB^oXNlaj4 z6`{%Af~kEsqGiSZAc%T6NgT@2$16grLfdXClr;txoXL0!)~zGJLaIX7V_{xZN9rWT zErV^_C@4sg;ci_5a*`7)P&I!I>Z{@x{Do%#lu4SR#JqA@D8K;I=A}*B`_GXVv$9fL z8}+g|91hTJKuxRD%Z2ZJZBC~EyDbX~zk3Rm{rise6|`%{&zk=a7A)F{kgzCdwf=QP za|c)whn$FpDtj9y^w@&V)ek`sLS0Ni*(Mw&*)2lf_B|-;6->9ot%)w*uY46KCF5Dx zHr)@H&bcr85TFzUqpt)*@5MlPz%+LWIl=N?#Rn9i^8dYcU+mFQmUaL!GTgDk-efs9+^oX4$;h`ybo0 zo=-5w=6g28)jN*?wjbej=FVHSDK$f=>8S?Dn}tgnL+nSQ6ctoflFBV#Bb$IkX;mC{ zS=3T80gdWc#IqxNp?L%EZ4D*CRMg+IOu*Y8Eytey=MfcC!BxDjlr%0sjH95j9K`Eg z)}dSV!w@75oT4hHAYU3-WK$S={t6a;TLGvkU88;9o1V%2Gy`R^Aa{&T)1az1A{dx> zi!nCEn}zZiVCg2_;;-eacBN%F^qdRc%;mQ+^4&uxe25x0n*c#n6f2U^`yeAD9U7$* z&y4JiNA7FlH&{xV=)^fQ-u`e2F2-k}T=_~~t9eUW$CtlLT!KZ6g3^8#!*5%NCtB`@ zP1Jz!rm4~$+K$tKusQ{nkoEmL#^l5jkOIR^i6AGLm!{5x&~%yW3)r5Foyiz;JKc2t ziSroX!`Ufq4jslZ{}tW3uq^fK8|-Y=o`C-Eyu@ zXrc>(U_1%Sh9Q6@-m^z9v56z=irYhI(CW8Qb-jnZ$rqHz0MEXE=Jw0y|J@;R22m{D z2`)F86g_Z#@$V_>!;=<+0yvsCsfoBtX-G^qLZi{hNvuRskOTA;MHrQ=RvXOO$$0Cf z`*2V1+5w?0K>)t_iFEuspwUHM6VM)zMLn35@FX~$uvpCC+=hC!E1^xRTDZM!ZPczA zgQ!p^c*=gTn6}qOXIT?r*)+^meO^bwI__%&$>)bF!w}MIAyEEy4XgMG$Q=$Ic+onlRjOAzhwu%80d7@Pt#Kv4jpzUEH)FE zWJ8OlH8JeI4rtS?BJ@RqnXh1n^-r`6{vXAxPC+kFUCgQrURy#D?>ImO+< z7^Avk9<@9Mn6t$C#;SE&rr7Nk*!$fM)pGeTApQuuOIr=K%yGQ7U-J4 z40Wq_b3iYw5{{?4a=Sm-0NOLgJPwl2V}S1#JEpDOxaCEwIkQNyh8*6~Qj;;`qsP&{ zStv;RaqnZ_K&y{{ri8$5x3^MANBX$t>~y^G!a&^Fy%MMb{P5=%At}|0kdP}ywDS)o z5kRG)_$Vi$BXxNH%^|2-(fi~=i&ve-cRy}|)viK#IAw8gUo`M#?n#kR&@SYX(3}*aDTIy!(Oc=`eZG_pBQKS{vRrD?mgYRmKu}`$Y#+{cj^~)6q4fEc~%^iSg zT}qzYtZ^m0HntyjAGnC`=5Lm(mKPPXK=dgG)7zae8Z*$KPBdnJJ{%z)8fM8WVJCEF3MV@m9>GA%uvcg!HsTygar)?jKNJ#!*U!h#mXRAvwha zwOR#>m23)5sMShDN9xhMaZQwq3CAZhS7P@+=MWYa1C2lAC{Mpo5&g|(3yfJQ=+UJy zUVr{hlq*?D=HAMZ0Lmoc`0qPf{+Io*bbNkos-x%&e;b||b zC{K07PIx*nj{#={!ou659T(1`d=CZqho)Tp(2 z8faO&AvmE>syvpz>0#WqMRmOKd>{P0Xb;wIJ`A%}l9SGoI754qnGPIEr2<;50!pO{ zHoFA9KD5;6_erugWgDSZI`H^|U1fD|K%_DA1vpRt2^i19-ZKC;drw*XxwHyMG(( z+ItGImoj7(sIQGam`W+i#Uw5#W*{^)3|g%|k9hJEk<4hK04_=L+NDL_CnilzO+wA8 z5%}P(`%%A^hw_{^NX$M1=Y=JZF0F@sxAEzpo=o3R{}=|MUj%xQyx*HRxjVy!D%QJ?@ScsFZE~rUi#i{*2T_3>?q~uaD`9 z5_A(cEgsz1SSo;yjIpzB^exaO9|JgMuG_d}OmT)VPbV+y?>z=620AVE68hcI1e0Fr zb6sN{yx)auWDsn^i2&L##>gP%QOjotv%b4_-Ij@@Yp1ZevUdG2K;mCUS`zN;)f8{P zc!#S3qqg@NXXZ0Wh7*&!ddw@qR54E5FVjR77^S0Skz?#byKg!zm zzyLY@B_}1IMU%?-YU=%dFAa4)_C#xDn>p^d`*oBrUkOO^@HMj4{#%dDQY4 z;H8f)^f-I^$RBZ{Kz7ICXtnq?>~Rs?{3`Q!sL%}g}Jr(`Cae_fcsf)MrIFy&SQZ2tIVx7uG_jhJ=3o7BqWlE zp3-Pgd~ReURV?AMUrn&9N_w#8QrXpPHbZn~;mawHqgCVJ$2FHqq__{%Y{uCC-0yy+ zXC4Er-p3m(`fbgYKUu6nRd1gpnY3CKrd~q)Qn6XjeQv zyiJf-FMZ3MJd=dlH7m-Gf2)ln{&Fhn)hS;RpwBSIzA33wVSg{6U>p6$!JjiS(;u-} z$goy&764)biXf|0-hhuM4wZuoKKybW&c~)f;_9-uKnY(Yw-|Vb)-~|ua5gio;li7^H16o0^D^?Fo{_!OLFZY=N-kp&+S&YUk#6&R6{c*C5F7c<7 zQ*3NA z#RF3~WVSbp7hr(z7MuDlTfTA?6dHvms!*Ly1Cz-FrIG?BTvL{v{6&8br_+h7%w&um z)jKHpi@YI>>oJBz>WlGds8T6LegilJATcom)vHDoM^9TAV?Dfuw*Ujo`ZKNimbKfD zT5T-Clk|ur%esjECa~Fii%B=f(W5s#EeUt`ZH5Ws{8}*1O$bVFx1zK_B|!WsW9$`g zcU6F5Ip^U|zP@%(Lb9_V7fBQ3|8Pfd0litqrKP8#PSr5XoBl8Ym`LMhL67ost!rnAkw^D?-~a9Z6m+u_uv0qW+UzDb1k=`c6(h+eWSO}bCt#kNbDgdpwb9Ij9-|*82i8%d|bl-oO9(fuWwkBnC|TDu$#&> zJHB8y-`LE|Of+j)4l_O&gaD*c@)MLd)HD>dat~u{wJ%T?s<(Xo({tlbpFQ=d-Ad`T z%c8@4L2&NajLb~5Zc+(fOujo{vAuqFG4{u{13AZO0Noj5R3y*qRwx7fv6c7z@u$Vh zor20E*J!VyxCI8LrKX`r=Q^13MxTJ~)+va{$h4wDIakVhyF-H6Y(;cb>B(p6$IUNi zjNR+&e1$RqkK_7BKUuZcXcC)>lnJct9pEdTaXH~KMm>Bx#ysBE=edfT;LyL9U^F=q z6CHu10XXNOkH4^Df0jkvz-h|_Qv}Vp;g5Zlx;ZH7OB9Ug)2%7S zjO>E2!s~kY1UIQ75C0d3hV`n;0ZPYDB_k#}1Qp8NbZ-E^h(CnvV!hYio__wzv*#{9 zpOF?1g`(^h@P#^Ewbks%N>4$8!In~aQ#mP;*hBTe z$O`OpD;6_fFE;gCzh?Dnhp1-m#0mQh%`GrNZkee@^M(?QR>te5!;swpB&L{9 ztuhrnacg@%TYvMfQY-_crSb4_lU8rZwxE^MVJ!0wb?f_-+=-YVBRv_N+SbCfiFcJe z;3n?z_J=F6dgDI4@#6g$a+h1Rou6Qg&G#2dO1v9qF3fy$^R~So*en!qQ)U$N7vd@L zZF))q#*XfT$M0|IuW4_%dB(rH6syKi9wI=W;llFlHv;*V$uHtE%s{&~9Rc zE@X^7?C<@#bpvqD)la;*e5J`A+Q(u_DvK2J^H)euPerdT_3+-Sz5G1$O*LI##@Kp) z@5n6%phdr3ly?8Rjk|ugT5WPE(X!@04A|`sD47Z0eEb+{Rl9jZC4IoyW&phyV}2(* zw;6!q1Rfi=?4a2h(#&c~ElYmu!`HleD5*uWjp=xJa2q`HSYVyy{0Me1r+R=fwkQw_ zy3GKz_^buVPi)W((Vzl)dd*>(fy=}qo`cedpb z1H{E~{lw{;)~6fA&UQh$sVv!g5y%bPOmknp6pt~ZdScYD5-p-P)3%G-OAp4_mOyUSD+c&! zHNRuksx_OlO?F6PnRVD-A1Em)86zL=jJa*0TL1tN4M{{nRA+{_@Yj?#@;pB?#)b!a z0|5;Y^6p+S00A}O%L{W(oxV8Al$8ip<|^%%??fu*>Q%$hu~l`{s2YXN?Q7jsh4MT= z5>&=f)7W2cUZ8n?5q{KL8yVV`ks6S@H}%Q|)V?o?U+- zHnDeBdTiN)xMX~L)x+TwV9ZKKc!&Zc9_o&V1~u|(o*Q5gCA+$tF}5aHu=>mZe{JS% zfBR$o4wJ>H5ge3B?$&hc4aNsEnanVo((u&qo*4Z|%U~=S>@~h&j6D;~MSW%f0`}|Q z`Rjl0+WTQf+QqU|iUIz5^ia0jGV$yaJ@N2;jRU+|P^Ui+pc7*(DVVGJg#ifQx2MOh zKXv+I@2t%DvY3GYenI+RW{V9rOA6k9>jCuaR5gIB1#N1|^K-ASc|N^?)^7~3Vi#}p z>u+nfnJmh3c1s!*%A5YN<_*66HinYzR*X^Mr&&+HaN|3We#jVm({IS}U?RUU0IfN1 zC4XrB`fa~tWo48Z$UOK6-gI@<8cW7QgWF=L}g8tnv z&&@h{_VTk?8JBL^TtYcD1HG=4Nq#}@6dW{LEHG%C_;J=K#6-A9JJ}ZC+{Fx}q?ur| z3s5N;A|rIDRlPjQM=67CYe>m4cpY~SdjI$GI|H0fkwDxG?3 zHL{7=Y*r|k5-JZW;Su9F>~?50DkzjHvsr)QQi2hYQPFu~4HX?xDwL3N zIDrD=&E^dB@7WriJ2t{MKWs#1whbC}$wx4yJ~W$BG2x}V(6?(1nG7s8;IpqcW5c%N za0&_-Lc*ZcYTOd52qa=glPMd5!;G5MBQbV#Uvz2f*TR0^F~*+ql4kunEMN>kQ2w}# z4_~`+(~nt33nbCP8M`(7B?Li)*_46tW9~ucwpB6y-QRHRR1(USs~{6$RHOmnp?aLZ zm;$@g0ZVoo#y)iy?&;M4?|i%#2aaAuRFr#Z)QRDY#!U3;Tn`gpz60mt9C&-`Vw|~< zhS0ER=(O4rZ;_%Xiqg89vW;?e%c1wS$MYjQdHY7lfAVhvFpx23@+&2KIaxp%fMA-l zjK92n`@T<7Q!ar^j$4KaDA3(u%fzRXhND@-FnsXEMr_!23>s|+x^`?NSCU(^exK~# z@WxAn(W66Uygy?*)^Gk7kx}K`I<0fRIjvQxydHP;X@%ea+>WGF3nC(;p~#;l*GmGS zVHB-qGNz$x$9j1GwL5)z8&FOka&@@u12}#i8gK?6Xuny^r|#Z&@U@hri^K%CjJpK6 zE{Kjy{5E$Ss+0%5`RNe8owpJr9=!*#@yXb`|1cKL9*?ROfGIO}VCjmzs8F$*SB`~( z;Dm(=acgwY>HVK^R}ciGCMTkUoX>QSH%vfIZg(-pF8Y;%eVi;P3_vh`v5^08_{e`x zBwaoMaPgM839_=X5EH4u+%HDRs>*ME+9M|!rpI#kP7TqdeguA7ej3xhUWtgPiqLqV zHOl|(Np>f3D3D&c^xnu!PsBa_TjI^-L}^bqpE<(0)Guh0i^B zaNo!@mpF7w+yqo1J~br)5up<1&UhBJs~V7Pkr1L+$n|u;{&6>E|F{VuVdW7X9_6*X z9wd5!!|6n3S|VN_cMk^NS#<2OAOco9DCK#QL5IPNv7Nz!(UWz8$^i0Buz-Jm@W|m2 zDG5~NQo3nx0@CoPRZ29dTM_MA)`2KmP^+2&9a~k-`#v^1Fn`g02wab>EC)`XPeM`( zrJ+}pYDO>`vk|6u;+Jp#S0G|dl7RnCXJPBklSoLT2Xv;;r*FT3_jF;aJR!SElJS44-TR2#mWy&2gS1+vW|(lad( zMU-mdr|(CiRz_Mf9=X4RT=nu&vVdi4j$p&q!$?gxL#3;Lun@Jq>mBzFdwIC(&tMX? zr)ymo2B0i+?|pso{4jllTpNrCKRiq)8<Sav7p1g5;cDJ4#lrVqIu>@}Z%F`VPCZi+>8(1%nB$I|I-re_F}= zuU)rxzRjtvV9rj;sdRW_hgOnKUZ)lD-Lz4%zy9m*Ey0mvmk}8mjXph^1JH)oZsrXat=_O8+h%BOGScJN&KbKg>wDTA z4w3kI%1hT={4y>+;r=XRIvh6R4VP(x9LYq%jsgAJphAoR^A@a! z-Kj!o=oODp5;1@)s!o?DXbKuPsD}IQ?Sem7?8k-J6lk>mbHgm@6WDAv#6)Q@>%#|R z`^58aEyAT_D?$tfD|(a21J0N}v>Xf?hpkihelI^en9V9_{?hvQQpEtdNSeEZzp!ER znvZRQT5U6@-cTYDS$M<442X&_;N+PLP^t8?CuaUeC+^jUJN=G4Fe4)js8YECE+wRc zG)O_Z1Z40?vm**t`M(tkEi~GK4{{QD6e=A;!(yOj#(l#d8SuZp?E{~^Es)GpDj9$_ zykHIQv2NX}=~icGQ%iORMA3Rfm1ZI_NUc(P?3zH9V+IDbhJ5t{`RNOvn>0K00@rA- z1TxW$MNeIwJ_=UlFYMK&=7iqu*tyaNt@jY!5DY-u zJAa->{+Hw**hZg9bR-f!Kim2ZhGqN~Ydh0U5S2Y!@^Mc$IYm2oa{M~ldq8sPQ> zdxOR;W)Hcu+WXDw1UFlo?>ljSh8vCna^42IDPNy|^w{x#CpaZTO;X`G9cEc$QpO1G zfBf8@5*f4&6?Eu;GuqOkLR=9SR-yo2FOKmTo#Z1Wl_>oM-Cr& zPEtlxHfLwS;V{a2YzjIlZOx_CaWCgjFkqJ?0ZgHWRv!tCN`y}B+}x-CUDF=z$5sSm z{nD_;4b1?#2wc9E*E@P5Vf>+kdmm!zm~flT1cxmfj7g=65lGKZOb{9x7F7NI)r3YT zzCx*mRv!i>M5q+zW4GVlW!l(>%m2t2bCw3e3>FMG1q0+FYsXPucf*d$Pn|q^_^3U|r(Mo- zBQrvfRj5uufZdvnA7?#@@DSjMale47%wBCF_T@tsHda<;N?dj`SE_YTD%8+vCDgyI z;a^da`tP0}UViPrcQ$>VO4K9l*O@1d(cC=vK z3Y09X#{b*9ww@+}F#65x>~6Q+?S&S4p@5A<#8g7O)jMf?z{JEqpnuEm?Y#`1QBln0Q8Z-c2m!<&|cA>kzu1PL(0fH@No)YeW7jVy+Gy^q4(j;Xt2 zh-F^sls_PF>`-C0fR&KfucA;UHb~M;z;%noSt!c-IK9F&)cyp=*aBG+l^_* zngF}VK%TzRPLy?g^Yd(CNL5!ZSF1)epRYJYNg*7OprVz*(5ozuskMJ#nkLiIDf0ti zTZ*lHMZMlVLd%?)x1IXL9KS8`I8$wiWv9q-6e^`n05B>(uX|N?hu-_5mPUGQIf-eaQ`wmlje|FzAd*HvYV( z8R2ZU;8A~-#7rhja%w^bs@pL}Ji>%v1ndI@)0|AxGz`-;bcDrg*-y-f1#ua@EvNE9ReIG+?~c+4T0Yhe!r3<0)lb?0000G>GItT>9l9QEE2Z0d19)F&q0Pl>T zG2{Th(41xU+(009+Q%ORc!8J)2!uRrqp1tiRZ@gNogCQBES$_O+2Ib(z-SOiSPbrL z2DP(+c=8Q9Mm_{P}x|B(CF|gaVj}WTE4N7^>($?@K)A@dfPz-Eoj6Ct^!QRmg0vDnAJ1+!y{rENq4b|TvFgp<%iN^)0bd^-8B%NF>sRY@4 zE-HROc5{9x9}g62CCEy}#mU9P!O717=3@hMLAV7WoIF(j`bPsS=xSjFQI~rCujPQh zL}=c?V9pQ@4o^={c2910Cs%6@u%MtI2PYQ?7Z)2ag3Zm#5oQKwb9AHqj~S#a-Jq^E z&M+G%N2b7B!TI0QI=cN!Q-IDm;AYMoV0O;OUHu(s0sZ$lXLnco zzl&QyIV|lh9V{JTZopXZzsEYiae_Iyy>a^AO#SbV|Ca>-?J6n#dyW5A76*raFX0B0 z_5il=FNOTKqun&UoGm%jE!~{lU7?oJ9)Os%kGpY(NV-~@!JJ$*ot*6d!&a*QAu<&g zA3K=prIH!c#_@3zO#kT-ODQv$r3lTV-2jWRfx((!9tbxNgqNFz6AaC+HdKGT0%8Vz^mY*% z=%bk}EolDrw#|Q|kN?ri|9al@jU_PY|H1hGtnTJy1@km>wUn?1boW1SFOL76_-z(F|UcRqesADORRZwWGDyUTm1W}92K6SbHlF5BQiGWUD=i_0$c5&yszu`Bv zJK!a61LxZKjk%H@g8S+zb?7CL91QgM0ykHL*(>z%J^x5~3gGWok(9ZKGLN4uM-;8% z{T)pG|L+i4MhNI}C0U=ZnJio37s~OP1Ty)`BN1HtoW)$+;4oyc-bjcWTDrnpDv2<3 zIag;bcV}5Xtydu(Lw4Sm3%Mp)?HG7GZ_I1bc%?}0Wn}sGj#m%qrK>ymq$@Y5T>4&osBrd29BC9Nn zB7g>g7Q_lX|BuKvAHB?aod@!}EgNCfn*y2_ruNA~;RS!4?X3onZ-xLdWNuV3alpDN zx@``n9;&JjmjF!hcBN#4(UW&`Z3FZh)IaMLJJuy6W1QqE)d#j=NO-h+(X{|W8!;iz zO!lV(km>Ub#vx*Ndrpv&0tGJ&_?RwGF0q4z(6eEln4*C)b`FOb{>u6D9h<>F`$E*b zyIn;%!$=Z)!l?}VDBev>S#*~C*9+c)lCI({6r&U}>9^J*B+`g|(8g6x@NAZl0S|d5 z@Eb!TTr#li%)zqqCtcTJ)k_Ih^ki zsUmyp_}4uCW!^5XpWHa)GjYO?ax34i_h9-VSiIq-_{S{%U;NFw`!L^n27{U5#_?{a zwqk0TynjT#Fl#Lw##I7JPA{6rlqMo9E&*F0j2lr?o`yQN-|H19tmb7(f#uJ~cX zrD531UWSE*f4%sU_9QpHMxn(n*9{j;SEM!_EBOc|K?IDf<;RbbK z8HPNZHRJN^-xMI33S5iL4L@ulID@u_`-&KERS-;(O$E=zD#y$o96ED;k=HBGq&%rK zX5^Jk{G+NqkE^ZafVL7C5;V4D@e#_o{o_f>X&>V$$Aa%x!6)YZ2XdNx%d;4WF+127 zF*OhkPL{|(pWrf3O&o!{Txe@+n;Q}w3<0JJ0*^<5$MM8z0x$9JorIx^Nq!kss)pl% zPW}Te3p+UNOR5IG<*W*kPq~Yha!~AKzcsP{$}i_3aqnDtO;?`5Nn^>f(a>U5xfUKC zPFP$bzrYz~z{9!;r${;yd6Nf41f@4WuGGhX%!zyzX8}tn`7(KERy^*g)8nH##Hhn7zK&)8UJ zs^Vw=M7lF*>>0`sjyNTVoERz^;Pd7nh|Bk4#@~KUD-^%EeCv#B*JEP8>wK3atZ!f^ zq@rEDCDltk+RgY06%qjXw^SRx&2x?mt z=Cg;-S+Dj$TwHxTKeY>2oqyk|m?)BsRZM-qa7sTR0r`OPT?RZ$OX>=9a?Cv8aCiYj zPUK*T$@^Io^J5awaBd}T`H3ZvHFk{1LxIo|W#!=DcnJo(6w%4$5kuP%FcF3#!0Q(= zB_lW=p{+PulRs;SW5KXJ;-DoYe6YDH&GmV7SVv&H*I2FFxCvW4w}Y>>{hVIpw6{T8 z`5ah~jGJRKMlNs0_*}VzwE4&iX|hXjVL)&}TSw;;2_Bx>*!^%MM~VL1ktr&-JX~y@U>Dq9qF(G81vbZ5@D2jxY(5=@?Jq;JWGp}xFI^@Gr~ z5da}$J2OCAEdOZBm{~+*Zm3kJ950bh$uu?&l`|9kxhH3=si<|gW#H8O&!1_|Y)@7Q zUG?qLq|TDXX`cXzkSYJ(39AJmiUa?Y=wo?ql=G-|j09!Td)`u|)^&1Zz>jfeJc+8e zyqX*{Xk7Z~@4&9k>NgLq`YnRxsNY_+plE6FYienIjfsjX9y_J!$dg}C!NiIhDL2KW zeH1VbFysB|n_^PhzGEH`K0>TnEON}iTIs!RMqG{9f`9LhNS)MDT%mINMKfiKb<8N0 z0_MqrD5V*7xW>F)1+(m&Mkt#QdWEGmwe9v7HseZ@a$Q5uEzs$~T4pz;;088m2J}T; z%iUdCy0fmfwiZ%j82g6Zugqd|n(>M#FoPX}apaoLfu5S;8CKd3*ih>2Pqz*E1hM-| zT)mHl++Cj$lY!91%jh!^KKw1eE2asEk1yU`L z*&Eb&qwpxsk3xbaS&0*&&#@G#u{#{3k?}qIMw~r@HAs`#i%!yN_lgP%GXj9|Gz!_H zoPjk*+8dLaQJ~y_T10~~0dJak3~FRl)T|z2A<~wVAm5v@jQG`w#dF4c;kC2*Iq2bZ zl19SAb&S)6X;1l!WUe3h6b+V|^<`@6pk}L z6)Jtr|8VTWo9UK#hXo@Kvi**M+_tr~6+YkSqmo3oB?h{0Cmubw@g1SjTB|*uH&N4q z3T~Yt_$?nUqhYYdUzy%3-+mXye@Js9@%D%tp_4QUA-B1a|K{d|Hgf)fs{9*a#c*rw z(s59-@aH^+i8mYrUc7+|f*WEJV`F#9H>X~&@7l1r>7)FxAPFCbC=NU|@dy@vf@~zO=rSLu!zN>p+gCSztmelT^ z@2u!Kcytq7+BG;G;VXo1);>LzEn zHHEv~H%{5#v(wS#Pv)5+O5NqgkJ3f?p)terGl*5oI|YEu?xODE;v#EkIC~Xa@uH%l z!W!JAJXaJ4pY6qxQTB2G(DrnH{xk;>tj3ToSU~Er%hno;aa~8Rq4*w6quZnHPeoje zP%rcEZ&O+c3r!;HoAc3yz!VtR*#0qYO{s488J*@=q5=Z7va&D5G@4)9yzPK3APKln z@lk(WR2;J?rMun=e(UiI$aqZAuGAa8X1>0@6?AeKFQ7!~ttZ%4F-W8}8(F8RtYAZ* ztw2IC&nqv#w;2Y=rTx|1jx)@B5Lw;U8~(23-^6JQawGK;5)xPGCt4*X^M)E4dHq#Z zppxqnNk)`8ClC!lX_}&3UIQFRC0WR`EdOOM&%o722E?5?(b9_vYR}-{x$MVRK$x!n zXCQq9izzCH&7U1I63Wf!+1~V9qs9=8E*2aG=F>~e$7yeCLl@jw0A#jNR>r==9eq7! z@>+%jYgY$S7F)Z#$z8>s2c&Xtdp-k>fh+Dx>%oCU%PXg@$upTOI~rr#{`J`;e{!lpMoKgKyC^7VP*JS5+)_|E}jY67%t3vDuXd<1Qa+$<=K+1va>kuXj zrofMd@n|+iDTI#+WA%xamKGkcVIa-C;Uqri?y>@RL1G4^^>uWdy5k!e%PEt+Buu12 zs~r;RzTqNyd*lecS2By0=InC(vjr<9kQU4?*%djhy+c*qu%f3#_j0g;US`2;=ENXZ(|V2(F=Dhk6n2V z!TTNRJN)59G8Jl%+ao|vxVz*0G^A92G;_3t_s{M!bhu;kQOKa z5U6>1waQDj*V0eMycSrAFd3*84rwpp1luPc;w%srSrb?F%6D z^Ee3F-rklS{yAIV?{fScExSKHs!P{+=fH;aIz;YP-^j=)y`-cv9Gg6qO>V@zYm#m_ zCGwmv{Tu(hSE0L1_bO+Q%~R*wsYadl_I5YH4W}9VADOw_HpTw_#~`$0b&!L>)Jj1z zJF%jQN--QC+kZQLUm2*$Zxj2icKQV$IO*um zMG26`i|Gia1V;~H9MOg;7dzwwVrFl1xf1s*E2s@GE_J3WtYA0p6CjGHTw;?|?69OR zf^C2{a)~W#?P6@^<}9@#jBJ^%OZPjSTsc6`txHQF-K09JqJJ3Iv;vLTArY0+`iJp3 zxr~aILmvvN>OMZn{QX-oucV{~ha7U6O(&Pd)pcuIO<~i_CWL`UN*>C>VLx+K)lm=b zGN+UCW)>C}R?r&LBOo9!9-iGHa`z2HxQH59`f^U#04>@?tB~n?EPBgpyw7YiN=o=W z4(9!u>EsSZ^uDhq@7aXaUX@TkmRM93<>voEi2@-NevgnZ9{yKzU58 zteEGkXZ;vLnS;clL6ul?oH`iuV9itE$YKLt@_4thHF#*PVj`VY%?w8(oeewmx3x|M z-i3Y*Jx*i23@v+CUcdod)I3D&A4VoQ0F(=> z$$j~$ZpU{vJd8Zz*IR!Sf`+7_*vuKNrXS6Vfgh1ZfCN8}qj7TtIt6vU2r-lv5Gl>=z7h!Fy=^#_2?N7+&I6LD{vk+w;()z|P&m-) zbT-VbNqYxeyoyKd>guXkQX)zL6k0vR^%>yTeY9xQ%4V?{g%dlTZUYZG8XEX}zlk4% zjVtLM2QpuCen#?6Jro$00r<3G1R+j zveC@U3>AnaegORz#s}9MsgYkOQi~xFuXaUd=G3{1^vV@&+LRnm9K`&v5qSyB1qQGe zwBdU-EKM*cwE=WtvhrriZVxt>W4ZNx9=3lbvNJGwfdiu`A~!tbkGvC%6QVQu1iFtE zh)Sc!SJZoG9d(S1$a@3>6beW8Ok*<`AUM<=58y8EzVElF8@C2Aog>A?7eJBp`b_Q$ z(==6dmpu_WXcyQxo;Q)7TZqv0;N1NUa7TmU5^r~){zHN8vU~5x<1X98Rw%^1hSrso zBz!I`BvroEp9_BffKdBdm8VA4uF}lN4QsLJWYfKP^QY9B$CYpbit0vm2;-goTG@K9W*HsT%nzGKQC4l29BltjWH)xIC?b=S73!zT#Llj@#v zO59#j+|jv;085qZ(#09p0~#buy+JCbGhiJUWvL#A)|^EE_wg~ zc(QQ|l}r4n(MlT%XIUHao%9rCgM`Zr$7X(7(cLHuMg^DxyZZCB+sMes#@LDnuC7_v zcslCPT6w{SC+B+!w73VxYQrbyig(i)?HWC_%EhInF)QgD?=7zwyL6*Bg@INZ8ND^r zt^viZwhX>niFb{{qH<*05S= zUhamaz(*+)J^hsd1wal5517VExrN^SM=&7^VBOFvDZyi;-L(Cqo#1W@+SN<&TMgxi z=hLg1gN!-38zRp?1g!4c4Q=a>Fhu93v&)TG$5sGY18A?=y`Rl8TYwSOo-;~&VHs`2 zWK;4HaY~T~DD^+!|M-d%Y`|i0%lfsBAnpLDu=#(_>ExsckL0$swV4iF%_P#@NgyZS zE@L3(E}qpAUW1)7G=Vsi7ewk}ifM^e>-YVR*S{InDL8-B;r@mpfv3;024{2&25{3x zfJ=tH{h=Cv`}Ahr=eBtfE1<0N;;;m!tJ9zVLgYZx(7fkhrk@#H66VFhuvOw^{1n{nfYfQ6LR-d6%odZ+=8 zaQUqJ9tSCV(P(Br7!^P;BJUXuWSs0o8BqS`&)b3<_>kkY5@mBA^BF)yGiKxrBJ_S`wY5p>gZA=T~70$_L4 z=J;3BbTM)sZl`!g4moZw1Vy#?TMS7|9{^bED0C(`cSulcwPQ>j#xJRAwf7ktB`QcH z3XCty%m9cFSDlE$(<7!5tRHcnEiP}GHt8G-+*^e{i%1W?mR6Cxok}K^w-xczsxu-r zwY9T@zLJz|wu;SQ`m33kJcJ+a{1QyYjF2dUpQVc#zh<1~rpM==(m!w{7?1kFyP8si zCED**s(r3|HIES^=Nu`&jBb78>Z*$#0NST}=B1(T{ne^{p3%z7+L&`b5$Cc@a$)X(lt{bLy=hPmK>r{ajv@rYuOiEru#msq`{5A?$9bJ_d$Z*Ybw8mI~5Aq7A(27Rguor3Z0% zCUfR#xj=JeXHZ^VUNr!4F^HkoKz|Mpu7K%!Jafu_3nKv7cIvd zQ;v<{^)81pA=aynbX-XNt5-~E{o~xMtoHbi@(oseY;QWkp5&W<0YW|?SwhA+{P98r z`^GV6P8P{m=Cx9g48N!&I`9~^wAyFc#8Yx8tN!2E<(5GrLlujFE(k4pJT$XyVsXPC z82n!+v^SlZ34ABC5iXON65PlOv0mT91zKpCS!!BmC|#4NvEYzRR{dqNBK{dXk}pK$ zVYsc!T{xSPbmBZ)kJAJ2eRIq9DkS zw(HZjgw7|56cty}i1IzDG2(tsi^>=sFa6X7p}ap>{gD69tyuO)hohZJ>xZvLgnK8s z(5hc2(t~2?6sSKe|Ewn9S1=lD6s=wb0a3o#(a`}EwlPxH!_((;oyjND(@DmoJ9G^< zvoB$S-kJn4naIG({XSz zQa({bet{vw2$6OGtvAQV#}BZIjl;|6B-eKQCAh|0FWEWW|1;S|!UQ4eDH^9Cf~HXR zG-wRFOc$XOQ{eYv^v|P*nu*|+iH)nf<)|Mc?ms83(J2lG z&11)-=PNpi2LMGe!57mPR+JvYc4PF5w%w<SC8N%eDR#N}H zxNh!jCusT=RHMx!x?xq0P&0-okF;2X>Zwbzuv3Iew!R`A&!R0}jTl{hGy$uT!B-@D zayRr7P+yu)OyE~^3E^K2nb_bPNKT1CG}kKONHh;e2$vlOr!QybZm1yR zpnm0DHwcz0e1j;Gv=Q=LI>jFr^WJ$_PuOfJ;pVV^@W#}$=qVO>ah(MfI(<2i3&mUZ z|7c#cR-diC7o`6I!MGZyK{Uc@!uRd$l09)(039S;p~~m=U^#lG-da4Enj2$O3e^Vv zgD_=Y$u>c31;?#J%=__VHthFWsqdZ>A!fv%A2QrWhUn~t=zm9$pVBT`6KWwvmyVzz zdDm9o3O~0U1{;o-HnOWNwo6=Ok`OYHBrp0H3o% zWA(AA?^_I?7B~~U&mB{ZnFyLGk!GZEv`FW{Q6JF+=K8$;fVNYYrtg>ad>pF|;X+cG z7)RE-h@gH^Hh@&VhXE)5^vS*cP;3LLbm1E`KyCn9@?tACUO*Lr7>qoDpZUM^YL@J| zA-C14+Z5;sNoGRnDqaW-yLd+4X*q7vE%{Z51`;mY=YJ>q(C|o|HmTSE5!dMC%%gJ~ zT8Mq59_Mj`-{HNCXpV5TVEU8FI_wfD{`)z`%AZbAlT-U0$I!%wPn*QShj)Am?a7fl z%q3EcHdtTF&de1)vc4mb_R0dE2Rx?PX}JpVp1T*lImoJgHKXQeh`{+Dm#)sh;a#qE zIYEZ_d*+CcyKbVtxy#t@YnPdd^T`Jfk1t8XMf2j4`dcXkAN}4yx2D0zQ8>FnPK36y`G%Wy$wxe&V)NBEa zI&L`%a&X<)~{8-l58qr`V|-r43$T-<_1_T1e{Y(iSt@tK_sGg zk(jImbm1z64=)gF7LT$n#-1B;?LKJMZ_*9qCNfSAYgH|9cCkNuT!Y8hllc5=f;iI@ z6`%?{*NDpOg8&X)3o-GES8V!7KGSYr_md{ghc)(8k3UHW-irKLuHMt1>kUq#_7p~~ zE8}jVxvsi$LohfLFfle~6KFnhFOh~l*HP`kf76ple@y?$kSpsS;wP&i@IEA~J@cHV zww)D%d4zW@S|iR6A1^lfrqf=xEnh^ymSq_rKdj-P%C*s&c|=|N^H+g=ELau|Kb!QB zDnHqbt%+Y1g94RrTxW7Hvi@t4GK^41tq0#?fA;6d?o_21;8l!(SFLI`Hv|1*eO#BuDk8;y@d96S06r4oZ=PpDcspK zeFtjxqE$5K)1vPe#L${YDj@j5b(L|lMr`~t7N6STk1fDJzDlc5q6=)#)g91qceZk# zlgl2h+(!{*bHhO%5c^~b52dmNVVFXx9Wwl^y?@8S?pu040h1>H0Qc{2k)`uCD?l^&Xhw}p!cJV_faM zZxl)9)L>+pJP2+DsrE zD4!|QcsKQf_z|ZDW{X9OF>19aQ3DN@ZKtyH*pjd4!$u7<4hWWu^d$OXqoAqE*9h8*6lmn5 z&?4B9yl5KwgsZHjVn=ZDB7hZwb|k@0B)oX}b>{rJ2m>j#XCqnNzD|(zxzn-8am7Qo zG1l6zL1(hdC$|066W_02VB2fh3-p;_P>2t%dUbSTc+OpHOs7W>oMq{arb1ZI6$}kB zjI^Mg^LLhIT_@-U9)xYS8dBX%tH zFAee=9Nvrkn7y+l9@Ix@|3%b_xx^lRM&ujv^>gb%CeSQq_HsNw3O3TYuUSt1O{Sn zn~!aW)n?=5GfDlb=^Wa&m1LT1Ir;r)-=q%+TQ zTMMF`#mG#=B(n$*{3-^omVT@KPx#3KqWF)@Qw>CZG4d7`Jy>T)W_3nd8tH{;KiB@uzL% zrYxPfzl{XZk4IhT%vx+Mxv7Q})HSw5hZw-8L$h(5iU z=a*un7VR|x*h1LKVWL&@Z^eos9IxCn7fqo*iD!>4AMbY{-g8Cqru{_?Yc39~(aA=| zJgXy!|5X`l?bb+V&;@?x!#x&@taIB`sm8@~Pn$lUenN)}_U#$k^~>LrWq$Ov)&s7< zx#7}r?G2ZaNo&2g2K#=%wbLrm*sH>%!^;dP9=@fkm!XrUzFF7Tgu9?V$2$a$#+nyZ z1O?(H1V7FmP-Vu=hvgy@Tn$>0vOg9Er^Te*)s+o81hQ9kg5Q5BH@ouU`NCq|)&ynW zwc%*}u|=WlPl0vQHG`mVvchk?qRr`-ta0Usu#t=}OnV_ZrlZ4H7b%|^K7ZwVQ)tJx zq5Nj&X08J7Y)Yek>35G20%+}nmGE^NGpoUey^-V_Y)EsPp_bs|d7qBxq_1zx`?PYh z;3g5MVee|c|2+%7S6KC8I&|-&;qJT%Geq6g^-t@MYyFp30a41p?HVD#&x<?&YWV%<_1yal8KDdYXcWKA@5x&b5Qk`HHg%LqT10TvXf{#^q0Y&mb%=nzx| z4^4hAfH%b7T$n+7=OFOC+2)L7)(~-KdIv$~Bt~vcd7}mrpHNZC+|2jJYJMg+B=R-A z3ew5Pee!1Wm3K8W2D!7<9O=r8OGouxH0%tQmyh+((mNvUyoT?0F(T3OJ8F7!O@o#c zWo;rVY~5vk4`0s7hlH?ejJd1kCN6l1GNj7piX`4o!-92 zbz#+IA7P-Jse&tiClf2X!qJajk_{-`nF(QSI69m?#mvx zh<^0JZUAv6OIp27JOgx9%_~hb`ZQ+z1c3_9>E)XxZ?rv%(KKf&6}3N6W;&~m&oesH z0K}8<&@0pej*S!3?|fnTH#(n`iKh^BO#U3?PXK6(dg8e_$Kffirtd#qw!DdHtmM!~ zUtTsJKUH4VSssvONI@U9v^4WN&kYsA@vin=0r5D&C&{n<&mL8jKqw4KulZgdJlnQ_ z!e5|$*45r5pcCL{dAwGxcrATy@Q6buhl??mEjOkq0**n z?@n{Ma44{nw2|M*&DjSXayBpb{sYPs6U_+JOg)#86VL8hAS=Aaa;ZbbAAu+^0q~&O zN~?SV16o#H`d2#>!)>%&;V(DJZ0wiZqMgWNyf9JuAoljJR(ZW-q^yr#1B)L{wN;(y zI0_#JmKtQkWRGX(r96$qFp<2wGmftxaqVHNSxt5Jw6`=m4}-TPEv0AXgK;ph{_v_` z!-nEc{6qTiXxN|7sy1!3ostw)yXo^w1nLKd+(lkvf!ll;oBOz$Zz&beg&O8QL0fyo zRZqm6YhWTA=L+svS&#JWs?Qu7y(4#8(QM-Lu*b)AYHDA- zd;9Sz3mim+iV*(Gs(E%~nc8RrqZKBxS7#XGvtP`2s84w#5p^}{rho|)qwV$QhXXp8SoSguZnR5K;g3gt`Ki?e|qjAW$dXLP1eL&_{%FMI%v42nLxmpZeo-k9!$vsFj-3JDB+?f!Y)>h6WDc( z3R=%QaDPeWG~``0z;n9If(AbEW%8!?q1U ze#(BL0~+42s1AT&bdEZG5wm27cZ>H@IM2@Q4F-;CgQxRq%-OV2e-ol+23XU2?Alzj zc0_X0X8JqR(6rxKX(%m+0ZArQ{jg?}*jNsI50T07d46)v+g#L;unT+FF*=|h<*>4c zpm(^6ZS5lsL>W3s%B%^T01EY8X9169#A?xp{Bp1y>dzDD zAsl~1&L7UP`Crj{-xVmYU2vxLUY!9&Dcf`Mj!&GP=~>%Oz;>WRC2?Lt%%xvb=jQ!) zwzk?-UOnFWEBF0YFvSgHjNgu&4JIKQD1E(wjW^Wu40}zJ?`nRLN+dJDf(zI>3~K&t zlT0WpyfLNuITBuy(%WZ@uarfx)JJ%}5mI~+d;PcfuM#MPc%sHIni3EweQtLbmzk|= zdgb!8wy~*)gB$u>aia|R6pt;TU8`uVcya8eg@7f0kxteHiU8g5j3ukj3=vsDvL5kK zCr53jgTJ27$_=?BN$s)gtom8%9#ZR9{Slc%lurr{R1R`^Lb(9EU99sqR;*96{T$jM zb*f({8gCo!IPnB!PxQf$GhH+fBMq2PMRS59x(vRlFI)UFVh>OEg=E{UR5r$=0QDI{ z_Y(a+)@En2{hK2?v;<&RLYV-)S!QVd{q@7Q131aGT6wiFb`n)*Jjh(8YUjAY6^9H} z)Mmo^$;&WFLH^5<;LitkNrY;Ej43W%V&jfXaerKYN994@2&O9lX&%cRix0SISJ+cd zDfBb?9j|$$3wAKb9>W?%`iAL@s&E2XESUdBAh0f{Wn zO`Hf;Au60}G&8v8Ve7VtHS@+N#gBmjcU?@YnRRd7ZZZeo(T7Jkl1rzNSkrl31-3zDt z&Cr^LJIgXz+qkLu@P4r?3)26T*AL&XAl2@hGMo6gUURQK0^G{%zg&-qHMZm5xK~lD zzKgLm%@Tkqp3mOH8P&Do>rjNYNq39BR_6SeN2#2`j!}|;y+;Ee-E8oFgfFg>xSfFL zTrz=OjnjY(I6|hRUq%^s)t#7sIzO`i;4iP744MnPq3(=_If8uH>X7QZ-$4~a`#GV+Zj>}()&AqYdA_N6RX?rZKKO6X z3iZgn>M$2Ak*-1}(?qXUC{ObQKP}4-{w(}7X2N?iNq~$Q+d{`2xWNh#=%CyY$a|es zH616<8T&|OMr!7^(9K^|Qqsw|_?E9=p=jXYR@q3b*RSlKn&*YQIS?LUKhJPmnmjlg z#I%u*C&!*!WK8Gq1i{z#yJjlqMKow*pL0Ly>M_A!^LAhZ`s9pCVg8rgrqmfT7ZUq{ zu7?Vfp3S>sF^&QoV%pCM42PGDc@O=+y8)C+34WKv7Nhe;DE9~nwp7LvXi9;b3~+he80AG zRnLCw;66SA#lWu09hHOMY>kG^l{iH822Dd)etafanj5TX-+$x%t~2VDBxdch*xg%V zqF|~dYzYSPws=CJI(G#gGp6vX?(?sNr_#T15$;+dfG8p{Ww)nsEDv(%LsC8dXhSqG z81>S-jIbd9`dL7>f|e@m0>s?~O2l+5M=Bo-(N94!{z;Txb1z~feDC^;06C$gq-#(X zS%BG#5gs7t{YKx`*v3(!zqmf4ZnNt}i1X1@V-CZ9wx3VVmZxgj=5Y5BXe8k!$^voO89--}+ zP8&}r#eT}Q_=*e467lO+S5M5n@4wr%lnEN3(F!|99l+#Tk~7@64q&3b1b%bH;HCoy z&de*u{7aWIto5P@zm>gj4grao&2I1Xn?}D%C!iZAk&$hmNpQO^5Ri9dsr4Woo{hxj zR~wv|xJ~4N(%o3Ec-z^a^)xlvgq0>nF({RdJ>?M*cWx+qEuu$5JE`|8>Z*njj3#<9 zb>W}8sXLfH!#Vv(Roo5{9=E4#fIgSqjnGqllHsKV`4W(c6>&hudT>S(Ge4F}B*F|= z`W}4J7i_&6Ko5y*&PzmH6xY7$UHo(#wwe2Y+WE2 z#i%^ZRCpyJkA>PO&msV6=NRai^p8`K3%(n#aV%csEmlSzz)DTI2-&0xqFPj#2Wr0o zxjBtLGjkIaLVx(2cy=Afs$+B1Fv63U$CzWzSW8X_-jy#=WQg*!7ZAn=oQiVJ_kN|43A_qB?}~2 z0choi%bjFXUO%U*zpO2{4fES+|K{KYGOT!$$bl=XhLlYSgm9j5P}v5S>GcrdLiyNN z13-Btq00gyK)ZV(H{?llAiEc3z=vs@llb7NOnoz7s?rhK37aV3%60L?L{4^XSx&Bylwdax&jJyG~(kP{BsC=El3mE$n0BzG{D;WFRv>*4{ z#&rARU~g#qY^y7|z9buLY(zk`ls-zDupmhIx?Rl2Jta2Ivx2tmAtfv_3camQ zMX|Gpx<@I#(sl*Ux9+7<`|7mr>1Y!JQSu}?^LjwDjyTN-$zwzFt&d9NFiFyCS4v)w z3DReQPu&_AAKR}t1c5`oH*eXUH*e;!=CWmu4&s9KoVj8(nr)!Nb`RX%Km@j2;YDC2 zNm>zlFPLEZvzsc+7h-sdH2HbDsHhm9$Oid*+N@cRQ~6=uow=-GJh4SL>$l=O>wMLs zp`7~^iw^`c&r@lVw&Uteb{`Zlgj z^MWUyH!aw9cYL#RZM^Pzsl=y`F+v>9_ZL1DwkyRqZ=^#> zk7nDGoV)VNl>FIQt14DIrL*dmDmnrmjKNPY?maD%Se(Rw-VD~viIHMi#z*Dlr(C>^ z*`bkzJHUmGP`-C7-EFXS%D3jclTkeYg-NwDRSD>G*igDD)dp^EeTEYk`j<}q_0s7) zS4&r*0<4P4qe9R-#2C}j=37!-rNP{U&s(;X1(eylvYa@MVfgl%pkvDtjtIz!}S zeZECDrGAljCjvTgOW4oA2wv>PKHhQ=Bev z7Ui|DS}Lwdi0po1*mDDKjVI+lU?ry6zWy+lX+%)N-T1^Q;GK8xPEt4Q(dVQMVWTXT z31}E#p8C{tDL^ zuJ5(U?-eI@7>4muJ75w+34YB-QylBpH5$ONkM1Xvr`4i5A+Vr=IiMS_A&i+sROK+X z2VfQ3C8??dNC2({vEOm}9DKo{ekx8pcfev@vu-GD6d=Fx##QFW!t2pM2bHZQYd@J{juZYh1{2 z_WkZmS{MI==VRU`snD_&laF@NQT<%?8hob1DqON&({Qoc?9db;l?*Q zy<##B=)Fm2hckXF90*@o+;H&bNU{j*fsM%G=OAPT(hSPb5-#-Ho>4>sqJj0Z&1nlJb(|HTlP|Kn|nQ;NEIgHKy z$0i*JBxr_+xiXK6`K}Dd>T94w`&U(YzB`B43w2%~*f?VD2_X*{hM zd4N$&Fe*r0bH@7QX9?&qE^a|Y4&a9Et5<>S&oQ5Jrzkoh)=I(3#0fb^i7@;JlB;ZF zmh^JncsxUsKRypzx$@-8tRk9k5p{vP?VoxO2!kS{FkhJ)-XwfXh5W!bP7}eBLwlG- zoNB6nn#DRfwqNlS0rd0cgQ)~sE>wKtNDsMcUx$KlWP1`@Zi#@hC zaS43iA%BkrVd%2|c)8MN4d~> zMQS{hM)_^*&_$!<1T7>^+lNK&X(gi(~s`{vjkp3y4 zJ@b=@=J8B_Ny7y-yZGYKZG9Y%hBm&^k)CTuuKBA^#6-<%q-W`|FQgAoSRFa%OXKcIqIER-%( zVEK(wX-YzJ(Jv68+<*p&p+>+R4{I+0Lc!hxg?S$nhq$R^{nN-zvTlLr7atn@Qq};y zVS~hhS_d#BES7YCdYo$b9Rr=9V3KEU-+)89Qfw4@aC^@3RSkb`L*l>!-5%W*Z+fH6 z3caLItH7O%L%gmA>$k7XVdu?u$T}bRID(x&JW6=rGeJ9X%>Nkoi~(4i?fO1DNPKB= zKR9t)4it?eN28SMnI0eD(^sh*+q9lIIfdpr1K03X9+^twbcJcIAS5GyDta;q z_)g0?cOkSRn@&^P;P6(6bn&od&u-b|@pv?vVmHOEGcMHSdeC%GuV+IC(r{(f~4LgNaT*K#<<-?PVLSty#X{7QFCqFl`K&{(YzO=yJ~V0b0=^Id;oW(4BB8Y+E!g61oG*iDM-Nwcrn> zl=1m)NEEQLDoG~>D4!}HNX=)pY~+3(ML7_v8;sDp^3_4l%EQOWkUhSkNx%*OO5 z3X|h^M6=ZUv$p>iNoO5ZMc0LKI;0z=q(!GBdH-Q6A1rIduElyo-;(nxoC z>F)f_eZRH*!?pCznK^Uj#NN;I+eU>h|8G*@c_V?Uh7jSPe>-v;e@#m0B!?zs@; z%gvA+$geFKi##xblche+k9p%2chvp6Wj7xd$Bfd^?RT9{l-$x?0%q{qpGao)L?rO4x6)aTPBg(cSf zECtt&kzUDv@hp^hrTg53Ln#ZV@z0M#EQo@?Ll>hl*YIMqMtb%*n6o#LD(1;ntak2} zipK?qS%EP)Q@~+e*|uE`?kqha)uHm9!cH86i;Y3s8AN7ZUjLN4`30LD? znK%VhELXR!()b^1ml~3BPuUYFLnE@KRKEJ2{uvK4$#|qqLs=-R30u7RxP7<$Z`=wc zw@xgN5xm1Hs>H;CH{yfUd(@x45Ph-^q-bfgcVGiqs{w)7KDfMZaYHQC1 zNwOV6y}`tqRwcdMT5+y2E;wJ}q|mU97L3byGRX5P?4R(JiNPz(#5N>uLAQU5md)T! z1ut8%1a@B-@sM-@5z4E^_6RI!2q|du3f>sM?Zy3JQ&W?`IQ9J()s^y0N5iWb--o-n zQ5K`UzX8BT+ZL{M6y|a<DkK_XZLPoYQ?ytW~!}fKv%?F{`$~Scl*NLY2YNap_OvFmLD!9fmm!- zq;V4Ya3TC_oa-2lH*TDAE`%Id8@RqI#R40Qs`szW;ml^;dMBd+)?B9=*%eA)hCE@4 zM4qmlktiD$+EN4pBk*^`$hqPimxsfE@;|+7D0Dp@>h@flY^mWf<4Nf-m9|XSF^QPY z>3UNr$YZ^SYFvrkogd%Y+@n$VJIwMeA=i3aR3E7^yLQ*@*ust2bd^)xJlmYb8|kI( zk#Vdb3$ad}c+sb=rly9g>|)geRe*_xHw|{^pNKN^L@`mGw>AO!ICWcB{3SwCi&VO_fe>pU>Io#CWWZfdJt4Zj}Lo%a>?zzxWMz8R{X~0s@jVy=HX7(^kIUK#7sCI|r zsB|NbM$vJ`l$0ZTCF|?&vvOzS+YX}k(E1OY(w!VP%p9~2xN;)03TbGht@TnA29}Bz zW0oCI1;g8b(`IRlPZfAU+b0N;-tZOk70|Sa`bUH$|Y=*2FFcnN17OT(Kh5g zL@_m#bkwbVI35&LG598f6Jm0nUQ_$*1dYidavQDeW3)_gSl9}+P*}xTaYDU#vt!CO z=D}2{9wGjQ_xfL6Nrcpo0WQNXt60b?IGq$&mF2C=JDmC07E}98QD+VecB)UV<;-{GP_f6lm>*;G%skNBQ}~Z73||E zHTqofDS~h(p3y(y4EL#*avAISad%Lt_!x?t@@>XIKc$4l5mfzt%%!ctfb2g4qxh|o z)(M~33E9jFjY*3ojVe@>U+%JDP1XWTE8mKQ-X ztI-7uOXkOg=eSNwa_38kT)Vpx>JlzwvHMX-Qn_ocUYoiTIPi+jS4(OchQhD`}D zHHal0Pk-tfRv}I&b7#zV$HqZ`$dN76rXq5X)Bd3B?ry}do~khS%c7WyZ6y%mu` zt}x?E4+O5hlR?yUhl?fgje}8*_(UUGA!2GV3ol)~$U%y<#9M(umUz$z5r(yu9bARr z_Ft&Zxf)PEp)uV2W5GPZW_hIo;&z;Un7|TUA3m~X)zY+SX8K`~K`4lwQ;+-_;zE3w zaY16<`is~LCn+LEI(&2%oHyar^yy7T>SW)2p1u^(u`La>0jojd@8VHKd5s*Zi`SWv z5*dA%?{aAyc2myJorAV<+j^`Nmq}I%GCf{4C#W2_B0$N7uZTC|p;{&*R(o+S`MS<@ zk}dOVEuWJ#@12-y@~6WE^^RoagX;83i-3uuyb+~R_-ZA8@djUrC`jPTbD!o-&OZFR z^Bt#R@Up?x4Sh|P&X(_6zE{BR@Jg(foXV#a1IrxBXF=byVzcD3yRU2MgZ9t5RqrlW zD;XZ-!r^+?|3bG6`6a|xeU-W6;c_qtGCRzotH5k_OmC=jO3b!MQ0wKlqc$#hA5!9Y z4^Fg;r`ufC%WL;@8Nt`3%Eiid0D*uTGnalO`A+I*!HmXWU3c9YaiMB2Sj=&n4EZg; zMO=#)Ts=7beGY-_y9!?f@tqDPXqnWus%ss2Eflyn4}QkT@^C_2zPA=0BK|f-iv%~w zJS-45b$>~>m4YTxdxL!tW!U*_wq9iW9C{&@9axUB)JSvi9fLUY4S`VRq51f8?+~q& zmY}(0Ky)~^@GBeW6Lm`2Kr8E_MbC^^YsrDd%t%%pPZLOHLlxYg%+RApZ#1)U=)fp zvidA#wQewNXSHC7pFC~<{~KI>j9r_(s&k?;=K|;VFmiE~Nu?ffPN2IDWFUpC0ek?r zH1rtRQ0w&9SqZSM;J#w{fNJRL$4z`6#|ADs$of-8!Xa~;G#^=$_d`CF_1y<4aPgrz zZ^qL-e4b$wRj=m?(=#JJ*V}^i>O&mL+<4-2H?jjjWHS2{F|vx$QnKlD@9?>28Sw|A zG!%^vq$z+<5U38YA|*?|)}HtBH;>mB){Q#g*_16MU})N`WZ%8EBK>FGhUnoE@y)!- z&Wl{(kbT5Qn*|Inh@Yn${sly5Z9BGL5zHWaLxsJOgd9iX zX_*pn{ajp_Q>Jk8LCYD%4yx&gNHJ2@rtTd2rjE4?O|`WRo4AxlC~~waTP;R2dE>0N znbTbRSBG>yZ(~TUK$^kYIn>HJC#`wQb@T7%tD~=_uCvoC2(`}DPKczrKtznI4jg7& zc;a36rJL{#fhrxJzRo1Igoqc!&Sz`p9F*tfF9AM<@iep5r>JDVcbYMPQ}gL?#8AZ- z>t|h`V+(k=O`@rf=V}M$9^scCZ0&7{kEHt}m)E`#V&U_C7J*)R9uM+BQ8;?LIn40# zaSyogo;uQ4gaQjlAyvTqET-p-ZTF9tzM`_>aPCr!Olpyqwwm0@FzUFNL(VjIa!yI*LcDS4~L^*ibMgE*mA*H|~ozdDAGaKXtN+JoNR|19_3Tp$6=< zq(qz_5H>$8s|a=HGQ^qh6{KTz-VYQ`9s>twW5`p z<9QfQvy_Z-@{M3;RZEIiQcLcyCNCL_m&$tWyf{>>vrIyvGvhmSLjvtMV!k&l8Jxu! z6F5mGTYcmpAD%NQ4~qZ>hrQr5vu5n+zwLh~`Iy@>5m+X?4@M`+SSHwzb@f-7xz5%wXvLb7Em8Y0{-*l7;r1x+ zoZ8~`yKJ z!h)jsS!TN_j_BzW(i%N`?_op5uld&^sFriGMn^s6=lGyy1qU6(l!`wR^KJMU!eyxM zlWF-FNV`$!a+j_9_o(c8!4wN&d}#B)(%ia+)Lzzqek$uU>EhP2>wO$#`}U<6oD5y2 zi2PgUK@a@){UW1Uzz9J|i5=Z6o6A_(+{j4~l4v*o_i zI_ylmhrSL847Lw+y?BM~-N3qUiCgGx&ji5<~JKTVIB| zv9-@Yh7&lJ!0+d)`@3!E7bOjMTwQ5#^*V?@cS`hU!^5fEdpQElt+U*-?oG~2pcX}f zGoILvasSsDk#^PRLHd`G^2q0Fq@CZAYP%l-tHHm;6uJ>E;b?c;J=R&R;-z)*T5nWq zt8!#Q=wQj;8yeES7I_(VI8LhUfzskyzPs9%t{0R2QLdSLouD^94U}38O1WIP-l}X! zVVi5MmL6S($E;}rRjUI>Gd?%lHbw-zh3Y{}#{IVqqgYJ-^_HC_&Z_`)0VhW-)2;Ws z&Ba^}*{yefbTiQHNunmS&nK9hz=#Bvy}DX{gvcKk{QMHT&Ul!R<$_$2Pjs!@NNk+X z_1KDuh*D5R341NjSUnn%YiGh+#2iKd3hIq+s1x(U{WySQZ6}e(3_yh7;UuNbx8n$> zH@&*0u(qdIpW#0&?K&tv9q+R&NBoS0AGK?K?!{cw?2toP5oELE2VZ+L_a#Lx^AWMT z;R+bx!#UBT(fyv4c>I!gMo4usIssdg;w^LQ0GihEgjQhQ@bjrxnHB}_sj)G3Bv zY*|4zo1)f37QVdMdR4x6*!28B)B2GC-UH1BGsL!flW%d`%@r_=ar?8q|hG2jb{sc)7R{!0_ zD-EVCa^NbElo^$A+_&GpU4c5Uxz_h-PPIK8x$jq+=F{={q;96IuirL{{=Yq$A6Qxu zO?=~hcFe!x9Ev2JF>@~W*?YfmqeR3==&Gsd&+JcQ(9FIUHJpDm+JC)QHkYRG=m^X* zDE3hEnID_n#%bq2+*UrHe^jDEd6;#Bn>r*CSK^UBJ z8|Uq*r{rUlVXJ2?8+Ws0GnH8cZiZ8fxSi}9yX$mZ5=U=d))SQ|zY+gkGiHMrqE?C@ zKD=Za19ynPY7D3EuzRMy{+_hJ8|&W&*}ur|R3`}9_NW~n=!F!{yzf0)Ah#FMol^BN zLTxwq?G#K!ShwEq=8&INm+9qnJ1P2%9`1)jK-Wqi6&g>8Z#yZ6_ z#oemUQZd`4%D+m5S`s{I)fMk7`3e&5$biq?xox{w)&C@8Do(OixU73+r^yhdQDXyQ zyf{E0FA}gLDJ?rT6dX@+y!+E~d#Y?F?{=_s7{^^8VFv$~rOG?Y?k_auii?oPs~td} zB8W!$2LEz-3w%rs7iipCbD9)}%B}D?m=EOL8~*D$7WK2py;ZgM zKqSS{U?;-5E21Db@JC2pP`bw@!t4F}uP0}xO8TBLuA`)Q>m?wnuiZ?q>Ky$6b|Xs; zw1-ru$Zr`wRipmUbwf%q>hE?w)P3W)&S#)T6Fu1$1ZGmT(o4&PffWvUoNn;G4USJ{ z+@%6Kq*)=JPc3_}liaPdxX0UAr{(tYayB*|9-h^!+tcfV`BCBnvC_)?<*1o70t;A@ z{X@D_eK?v!7<=2&K`Tz@Qa2O8f6XJAcdc1C&O17*}8vo4apwb#=8GY->>{**!FC|1F66D6jiY@qV~(6td4A zrd>AE@8tM>szU!&L(Lz}u$^Ae&8|7tz|m4)|~i zm(gfCkl^p9wwU*SRR9-`mW;>gw;m@j(N@`{l8C!2A$0vp))C0i1B{4C@Bm*jXFmF@ zsSWpS0%ND|a~y%snPhLU15MVUV=h9f)k&d|%^2YWS5MnN*{pgp_0|yr0J${u#%BIm6T<>b|C{&%XKSxD0p2SPoNc5+Xf-E$lc%zXPQF;A_X|v zRwqOb^jkc3i4`dEFxSm9CUa6}M5@o1d!OgbaSANO%_9jYB!d0@*hcf{*@f#PFK3UP zA_uE%ORwzoB<@Fn0qg$Mtzet8gQNCd)fY?%&OS(W#@D*5oz-PUo2`Hqy5uIDPj|$28r) zwO+)sTE*02whT5?5g1c5<IOog65XJ@{>vhNS77UBZxfaMPuqF`*WyXqK_{Vk?v!-2LFX2aV)^och6H zsOy9V>=6F^0#7VugyPtJmWubgYrX{-p(cxW{-)M9Ut)xcWUNF82IX05qPEexIQp8j z%cc)=ox<1S6STsXNv8hJ-#>L?IW7kLd^V0J2d7>48l$+m)!mMZf7STfest^l?6>=H z-}}9oj@zr=Ro)SHeUo^Q{cIyl$R>RD5Dx9^(iMjq4m@D#pBxe`J)R!*=m0X9vBjB) z`swS^p@8Npb^k#jb$TI$6DN8ztZV0Y-?mA+yj!l+?{iGXH?Ts!aC;_?tlXMYXOcx3 z{)HQMjQGCCN8kumoIf`N3K9N72Lrvq5^;=8=qb2l>f_g@@Wb&bs`{PK`ObYVH_Q#%O_Iw9qu^9 z)Lle`%l=^$ZG>axR?bpC(^Yr-x~P{;#G(Kr#AHHbyGj424x8#HZ|oz)H+;1_4}&=s zEuNaJWA21x7&!Y0{iKRDbJn6VP~6S~`Ue|07#Xn2+ zJd!x3@vb_Oyw5cocS!~tZQ&QdRNmJb zz|$cqgwSLR7GD5oX%np7r>ReEDbbCxdw3Hr+OA*nWEx0!;xp-5l%49RJ1EoMcPXeHWtw9bkK%>>@y$k9#7S@qeZn0S=E}b; z-I(1_|6F#KcE+r@((FS9GYm%aL)n0Ph7&*pVQK%# zAv-Uc+>je6>=w8n)1EQJv1OW}OD9gFCI>05+8aRtC~{1ZEE{!!ygrZ{50a5ReimJ2 z2%FMCuBSJ*+C4!JI@)g7rv&dioOLa%A`eSMAe zeH{F1wv-M5Pxj=VHWBy5dOK98jxNrEGs5-rXB+pmC1v}u>_S%^`&E5!w{2(TerHqG zKp_0_-@X6W&QgOBJ?R%n&acpIIx>FIim2{*H&~fai}u;3E*;-8O6C&LnK~EZjs+;| zPdR5C^(ifbFaGej#T;3RHox82jk>Gf;~qfIY1rDOK1AQ#%CF-wk<|STM2_vvcxFUc zxp~+5GN>b+2}9gG6ksz-QO7$2k4=*Gg-5!J!;IQFlYN3sTX+C{BZur*?M@5?j92c& zuaF!OnfO+Pl&ugB`FqO1QuuSZf)Cobo9i2wvCRrtoRVSr90!OVf;t5WvifIhGs0D2 zm)%YS>p>P9=|L8jLIvtAl+($nh#yF@$`Ua_ej4Kz9>?F~8dVZzu92C*A ze(X75ZI*M-KM2-ZV82WcD?9XtphRPt} zPB7Dxr;n(@pe21-^Fx{_)*07h-cFjnOGg`^wQ?=H*}U{Y0*U27K%1IJLhJ~{Hzs|e zep&l;7`V~F2-~oy^b+L9#TetkUu^4mVQPaD*vi4m0(pH>ORTuc6qM*@G#3NzH+zXp z07gHP&GNe*~i}=zZwf2n7ZF6?W(q!=aF?QZ@r4q~ahD(0D+HuzcE| zt@5oslT}<)Ki%ZG!Hk-EvQ_oHT7WMUbE9iVS(u3AQQ3F^mI;vO6Z3akox-U%o)KG_ z`_^T2@9EAZrr551=0Jfe7Gm?j>i^NflDx710;WzI!ae*8s4O5gO*B-T*D3%Q3P^4z z*%C+wj5c=tcVvLlE$xh=>YzBly^u7y$XWi$uWYyvfXfeVqjT+BE^b`2y|TJBfe!Px zJ*Z_+=4EI2dfH}~fP&WeA&VO?d%sos%ptjD#l(P@pt6xqn3-P5T0ahN{>M`G)I}?X zBO}ySkr}n!U%jcfcr=nO#1$oq^0iQ?79<)AFSAnvJninTH7%^&lEIV31v2|rg(b>I zT7)q(V)KE~N=Jgx3mUn!LG#Y%Wa!q}Yzo~+%+=EUXzqUGU;SgR3`=erKF_&or#_*! z99AlBR8}5xWIb|k2BX_NMlY_hY@>*6|GfYJ7vKpOxB#Zik$Ewzox+T-^B3~AOdeCb zb(DvsGh~0K=Z=q^m|^F@R|;pZRpw6RsFNPCv#**o6?OTZ?pn2*h8ksG zhF?C4a8XhnHj^!9fpO5W3MvV>X@jj8&d7XIJAaL6|8pO2%jw3p>jC9M?K%c3j$H# zeODscXP+xwEU1Cx3u%#conA%yA<`?3gTh+P)srFOHSfP>S1dDb3YHkIOe=q2oH3@ z=nBTU%7w(4|NKpc=)X1{5LL_S8HrqXQU6BV8GAE}zlkShaf?fCP1M-n%5U}G`bGt} zj~t{E!|@PJq1Kw2{BGHSDP7L-iWw}*&lwVn+5KyCof^{r)mxG64qKFdUL7%xf6D;r zu$GdZUjyv{w1t5%LR7;_WXrfa`@yp!{RO@HjMB;Rz7xGd-OqPu z^M~$vXw^}W%%zj<8!uiEwLoy=Ono&(irg4f2PL@UmQTpI4_epbc}j06=$pP|ghZ@7 zTNR$lf4*{`Ai?b}W~%upSCp|9BZ2Xf)8;A2mHZyRMT`Vo621u+ipm9WDi>rhHy@KH zM}B^>3Xa)=w>Zf9LaWgV_I$Bkjx$Nw^pawPFXi%rU}9PQ)r_aoy4N7H&ry!qy4YFU z0+4&5mNAhAfMeN&_gfseq(CB&IOa5Vb;xrcfP46@1$;&GJJjTN;(-ZIg;s({AAi9& zWzB%434mV&^U9Z}b@n(Tj^@0+6UGpKpi1mG8J}qeEUKE{U0P+Vq%q*IikNKG{ya!G z8T*eBiN99l9sCuj%l(CaX@-Mvyh#J_j9N;b>*Vw_Mh*rEes^NP6B{{Hi_g>x*BY6}70^DX&4aXyjedpopnjGM+vScF z0veK}__~LGqgzND?E!K&ySowz=7awocvzhTIv3P8^c7{h0FA60BYUr9R*MXLhaV6A z>Ho&>_Fr~L6Kdn`iNa?(F9#QA{wa?Adm`a*zndv5 zQpKN8lly*uYW1@dc)+Y8ig}=FGP72lxM)ny>UDyL{A}LFJS^BjBzC!&_7}v7`6T;J z(Di`1lPuf1cgpQ4nqPb=^e639E+pO+48t+S+0Y{%@5Yd=sx5J!fzwwgjPAl}n78!3?)B{SGTPzs zgLvU>juYJ15j3~>6*poV#jM_}pIh#9l?MZ_dVy1_w|lfq@`dQiR_zB{kw6^)FfnLV z27DTm1;yKqt-oX@ZW`kobuVV8^)cw7!dNIy9d(byMJ|HnvGi#f9Pp0)XW%`czCWGM zt6NrCD8wE9LB-O&!Cu~nabzp0gKYC_Ul~|yNC2CN$TiH45?MySKCgz|P^EPMsBuG_ zLkY!4wjB10t8_N$9%u(hzHYN>f>uPpXd?oX!i>=v*=*H%kV+<5i% zZ1wlOLf-q2J18P>#M7G2nC%^;lbK$JjpYw(r;gu}Td>G3!!$qW)T}Ti#t{Io32+Eu zRT~-xohn3a3&0nH^O3BPc8H7KnY1jmp{bUR9cYMQI5LZnn-ByK;50H6H;U-Vj8{1I z5|wi0$AfbAe5$ueePt?U+z2x}GkKWJ8h^yBMJkAo6O7K*Rv-aq7o+PTD;@>?cT?zx zjkZQ+aEO%zJs&bL=(!PM!{1%d@Zo&3XMjV+VE>f(b&D7(;5Y@A&f8tATPpE&a@_jC z%5+*H+jz(4o-N>=f%Kh1OrNw}MHK(zR zI9j+2U%I}C0tMdVZjK#{8Lb$hT@X)0Y^a^6b!Z9p9m_Lb69uc0EO@J3)(+>>pIO!^ z=prO4t`05KiIO)SDqL45Wq>XCnsp?gBDG*6#EmZ?hK0_is{SXp;jD`|%fTy8;3+^A z!+a>3(HB1mEUmO@A^2SDmyyoG2xOzc(ZYF;5BV7czNUPgf$F(r72Pi~J$sY1C`OM* z`rcP-Aq|HU@VOf`pLc#Cx?laFsCg*`0WAN~wpw@$Kczxs;(UWkV#d`F(Q0D{QavB` zN#stBL&WXdr5^*e6qchBOxJpeRnm|GQjk&t`+D)buPt?;#z4Da4*sX|W@oru8l^b8 zP+0Mq{A;!Gc-@P;K`GDo+AW22%fgB>)CkQN`0l7!p9zVM9 z0j{`P@SDEIfG(U@pX|42`WFz)P)@t?akIm%nI)O(1dA$xj{rIz4!xdfv%v1Bv-(?#H&?57Kd7a9P<2NbiEA&K097HO99QEJD1Ptn?;%Nm>NW^oh ziB=`B5%n0%0P#RHSP_0nuY^z0y>jCcG;Mt~h!RCBSy~nDp3SDx-Tf{PkAf(;SNuS# z7>7cub~Vhorx$4h)Z75xTltm8gn){+6^!H$e-d3I!5qAQOc?zlAy~p^!(@yqU3MGW zSsT7TAU22mk#f-xqjAGy498QtINBRLbl~pjQWNJ_m2B!l#BPUHwc(mRgJs$TuBm)j3Q|QO}Pk zP$SUMOiBY?Zv4Jao1-^0T!Ma8vbe`4-N9v2eFgB|@(K#4nO~z_$E+DD>PG%8dU{AM zb{wj~7ATk*f%f-i)<(+xK>Ym+k*mwM0AmyhsAT@*FCmNJ*Z?=hjdJk?mEhfejG!w+ zSv#S~e+R|lRSz|1XJ--rZm`Px&%R&XkYoSOj zy=HnGJKv@+b+XiD0HcIbsJa^n9R8leII4gUcia25rhi+u4U<@TrCLNjWeZ7dz-oE> zl~4WA_6@~)h_BJt5N-w+nOL^?+&p&*kOy905S1N8D0uRfpHzBFQ4oC)d{*Eln~J@B zv0Y2Mfe5&$Q878seX{ka-P)v`qy4){&lY+~z9osEf1gZ<&|1&fh_Z9rm&{0-qZDB;VEXp3dEELgKcLZ&klQPu`!SlDPY8{#IdJzyDVQ!9 z={YeWVTCX0v}3y)r?lHykCIxiL@a?1=d}l%@Abw@u_tqWLaMo|IQJ1CvTN7`&Ns2K zX1Ao(3t3|WCs7#xFOnfYj*yhm2YowGMi$*PJ{Peeih+LATw}e4RF)YCCA+Xvae$M3 z<53X+xlRsKi+_vkQ=w{lHDjn8MZm0y6X=t0+!(j(16niBgcp4`F1;5$9yqE>;gGrX z$YHxH?Rs8SFyoq`oX2!ekzDorFSk`@i-MTm!Rqw0aS5JI%yc4o#*6C_1LPK|Fu0x+)yLpEV+;uR{&ywUrO0`V{;H&y#5_Z ze;)q~aG%osV@Qe097^}(EG?!%or z(|eJM({qhyc$K7F>h4p%jrPqr0Tbk-0b>D7fIPWhTT*5z7MZ7~7<*7?83zCE&)i)e ze?ymTC!(4>b)rA1>NIqt{A?mmk>%~eYWqzP4N#;soXM5PE?;e~NCsY{Ie>_oy(dm~ zW@F0w+aS(=lYRyN9f`5jPo2l#{T6S@?QRI-!(e|;2}V-+uliGCKPw}~a^}~ivQNZW z2TZTau8hCcZDedDhBSYlkr%kCIn3Q?$S>)OBw5Kjcqd2OM>>+RNHk+81h#Qv$kF$m>XPLk1nP6|Iu*r750DgsCi5}?Fb0<0Jgfc!#hYn^5K0w7 zci3lZxgo^g*g?&jN9Yl<{GdM@W(4$2N%ok#8=6)T^DG-`$cF9~w1dnKkS%Hl<gAut`d0ps(fRCI4{NFA7>_pgGn+r@jvLz=aI3hU3CFEesglrylB-(ws7b)d_ z9-{gF7!7o1!@+!xyUnGgujcU!&h0R9)b1j!PVY|(cn|)lfEkkxlya7BXQ;)QX~d&^ zfT32BAbR(w#e6qUF$_)LV-ebn1zhd4) z_C^q1i8-Gy^;%r@ec}FQ*t1~+5;aGDwTON{M~Epx+ymZ8CBO!fuD95n(Q&9ZIEZ2Y zFb>&%#X51-j@kr|6B#4%ty7TwVkU2xhsgs+q&oNGQ_eHLJBN5Aj#k4yM)vH33%_?C z-s>ELphMM@TI2RB=}JJ)v2FB3WB79TN+`0QN!B+Iph#AUkG!xoSB}^~Fo8t~#S$Lc zlEq2|*&6@|52IL5v!vN-!_&qXTMrx_?fU&MPf;D^w=6qVIWrI2<>VueTY z)UCR22W5J|OU{%2L6iI4B;WcbPLu*yF*2^VATG(j3O~*% zw-*Q)x+S|(_386+c?pHTb)%)i`ERV0`N|s`#7!HwAY85%Ngpo?^sN<{9sfj7CiINe zLg;QUB0J-J(Mc!7DNFe%J5h}ez7uW0gDQaCuu5z@1kK?wG+APpAk+S4=E8ASJv&&p z&cHfDB35$d3Onby+yX~mJ|ZeMDctqa^P(4-27f?xhjtAEtKOK_Ua-G7NvfDTcn!Fo zU$P&EobTlEO9mZY72?BW2WLiK$M)!6yCDJm#A;`{EH&q{9SMq1hzwTnNe$I^azo(O zP+a{-GisO(M%z#T*u2FWrZzCJuqdGd3dzQ6oG}84i1vlL((U|&!dK)l;9R;9S8&J+BcWrz)7o!$s+ee;4vNF4qhwC>+jw@VL!s`28Jc|D?L45gpsMymR68fcHd%XWsL`AKP;rP&mSt$naYN z2x_UoNwmA|$N-pHf|w8I%mM(-vabaTY}9O@XE%U)3*XME?edfd&e|=A(Ba|0j-eA^ zBJ+@&k7r)Y=LUyQwrjCaHu_-Z(zbf_)@yO~N{KtO0n%asWTjc{7fBHF{L)v*EiPb3 zV=|fKnnUnM6X*um6|)%hiuC=SDim}=zM7wfub4zrGl?M~_qycf#lg9D?ua@}4oQ@; zA<)>EvIT?4Ctw~R)Hk}O@BtjGfF-5&`@0Y81V#k1UbS&8ek^XzJ@fdz7Iw! zpWQYV@fa0wJ|brlihPAD zKZj7Cf>?qG*exK3o1er@-3th_Uq6L={lT7pF`2(PP!qiZJ(x2JP56b<(~lD5WV{th z3rwE)aSYM>{&#kiQ=3eTJ>1&%&w!5xOfw=;3WiQ}5e__AL(<;wK^?qiC`*4OJo<0u zpE982;dne6x&ZgcQIr+i4!aNvHGCLYLp#!>udE*40L7pc-`&zWjbuv}9p|F&ff}%P zr-Nk{>2>=)r!FAs|5+iIM04QJljx(ZkL@g?mIqsQ{K`)Z70A&y7KjYNxNgrdcvp+> z7{0q*eHwpQn~Xlt1V;6NgGW75tF=m5|h=WkIxS0jwj8};dzH>gPj z3Nsj}OTIGv$_wNE8s_HacEN@ew}(*XX6hth%jed@eA7cxiMT{2gaC*i*atoFJl~d} zuMqUi+#LG|ZtlclNl0dW4*0D_{(^u2^(K|C&M~Mgn`J%u-#=@Cl+xN)R7PqZX+W~3 z-ZUj1hhLP*Td0kOwa=3W?px%cLpm4X?!0PzP0+|2!YjZ9F^8n%-^8460oCC?wI z*OLst9QtnuR%&JT^~MGRJiNulHhzc&WriH6f^qbLR>;5k6Ijvl&lZT4(5OeYmj&@h z#dsoY$MM%60J=`PB6Y6@ltz`jmjF|&uBim5s|OTGK`JGG|GQI{lPYTW%bW-_oID$K zv=cmEy;B|!HRT7UX(M!I9@rm)*XF1XMuW)7#EZYv{D;n$z4grw(2H(|zI?WiK^`RS ztRA|eiCX!+0^q@;fN{#{kRo=(nV9v2i^{w94A95mz%JhY5&JLiEONmqTZU7+&!$qk z#i{9s@BjVA$~0nae4+ol-6$#S?s^}8Mrs&V&l7HLe!!61sJ*|8=eDU+8~-Ew|9b;9 zSKXF4$n!$!B4Q-v5`m^u)#D3iXaj>G&U^5od$5}PVpEKA0Ofg8^TVU}#<8 zGm%8&BsB#SkbBSDNlW73YrOVl1Ql?O=GsyC|0O_oT|KSHo$tS(2ZLBz4;GmCZqcaw zWy_{Z>Ps#yt|U^^?fPRH$FCr8)3^s<9Ao53jQst~VkbqGiI3k<5VIHk9D0QZtX1nM zunx8{85^(!zgG^$QVKRy#nB& zC>!jqZS9Op*=|MdEHvDvj4#=O2^CRwMsb_iZ=Oje!5YFqzdUG-+wwc`asj}U$~mGW zO&&A_X*4{Eiqw-HgAH6FiBT{Qj}poZfD}w7&jTLs>n_tNM-ex`2+nkjS&0C69V9qX zEUxmVA}T)HtG%!Kl5zxxO}?aM`Sd-b4kI4&@&hLS1zHnG@XU+G!A~pa3H3cy>=wPJ zaL@OMywuk;-p7E`JvOi_aBPx?)gy;Gl!mq6DGa5WV&(B$fQ#O#{avlp$y}+$Mw22c z%rOr4eNujVg&7-AcQC*i?46oEqW~v$k4EUZY6p;Pg6TP2RS}$aTIjvv^k&Z`v@^1A z=YcB9`%V!B;E)zG4(Y-~Jvi||W7M6YQo1ovl^xVS_M`h-*C(S&8Qf*UFtNGF({EGl zvS+qwoVa)`1VF^JK~^hDXt%z^eMToF6h+ z&!+fI%&>ew-b!Xv&3b4RL$&j3qe%7gEzPx7H5!}TEX?v$sP1(AL4qR?XCNqF4Zjra z^m0Q@@KN7~^lcFK#@l@3&A6V8e&XktTtbD?#t(HO%4 zi)|JJYTrMf;>O$E$YGwHp%2JGw|zmJ-z#ew@6o6dJ~d@}D0lj(NCUsdqj4dLMdD+PEh8BW0=q{mZw zP!Nhh9%LSZ88k4-;`}EWT_v8Dt7g9%2FCt7>WN3FFp^e6vkdYTg`9NdB~t%6C#R%7 zJU?K6e(g9w39j+|v`;1u)Y>Bi`fmmn4Nw?OQcg}Tq7shs`=n<_!}j-YrwY}h)*NPa z0x?fdkkG<6jNGt62#!B6nf9L0kO^|mLn2+=#mlZy#w?VmBkZyAE! ztBcSGC|el2>dcUCBE54?zA z9fX|&0QYy?xDG=}3C$stMG?lV36D9y4q6UIicWh)(1)c8>c=wu9w_bHU@t@IfU}>q zeg-BCadmttncfBV-L9hHKFeMQrK}x3DPzNzgs+Su_MS3NR z6ILZStHFx=^RBh~=@f5K>D7HOIyA%lG$Utn$H#H>D_#)($=o{6I42sl?O$ppOt%#Q zeK6t?0;dX$51*!`DiUF$Akx45*lQ+ld-{@!4j3jK=46?Z+fTyj|8 zl>&{>z1$@J+hwjb*6L*1ES3rmt6*-V>utU|#~8UW@0%s9H|$Yt*lLrJE;3<+%VzQb z(Ss8sn84_%oD>|Ssp0b=j%ga%dy}HN8+60-8^stA|56reB^bID+@cjh@hChX(%Eo} z2~dHi*trDbQuPSpghNl@_>)CiB_6(V&dX%s(qKa{ahADWIB<5tdb9-%Dq>tWVXrvQ z{5V1V1HG!VMuUS|It{G6oyP$HKJ?#z$pAHu4{$-5xJ6eST28V2$_qC0^ug}2VCx5)@Z`>W&_D@~tfe?r4)E{C91o75 z?j0Jna=aOO?4lS7=m@X}qc#k8QlVGHkYJePuelDyU6-FR;)8qe>P0M(q|pYk|P z$@n}=T$i#we36YSslwyx{)|ni6x6f{#%1pngx1#97Uwzvff|3TLO7P-`p5}7H4gfzOx>ZgA0KGFKl!N1}!@JgW7|B*0>ZMlZ$$% zG(o;VU>1z)*niPI)+p8RUpxJRE3brt3L9%Tkpoz}4uqE*w#LPeFQE%-Y7N^0zF(XS zZ-B1a6c~3cZN+Pa`54?|n_<6W0i7e_+E2P|I$scRU2xDGRk=BX3C_dou~T!`R?2nT za*wu?8G=sl$Eihz59rxx7O$iJ|4R@9kDT3p3GT_^+uXXq&J1yB-d8t#R{Ige!w;;h z0SSdOXa8&Ms^6mgp7sI~N=b+`(uj0-ND9&^snWf4!y-tRgdkmlv~-tBhje!%$OL_|DP;Du&B{zu1o8(w!TQ1y9?R#oWbTh6nPJ?S;v|R6G&dxs=a$uH2=h^F{7%O}mtN-hSQ&DM{gcYNm;g*G)AEf5}kH>moYB8XGSJi7Y&0w6Z5&{ZUca1_yg~gfDNDd(A=G0~fjZqRXi|vhXEn^58!{ z!{f@Tc6D0$0&nf>xxm_VX;^1Y(O=ter?rfGHj!Y#e;0vGU6F_YX#Da-3M23lz&Dh` zasPA7!OO|jHg8erK@%eQO-zk1$Ylbz0T<@rwI^^)KolV=S~*+`6!cNc~ssybAX+T;aNLHLcKG#_ijO_$DPX8wFr}F_S_Hg6}#fnpJ=S9FGV|?#L z2|@k7@K`0q7UvOsGMrGiG2zyrc;SnJka!w7qZH8g6u5E(1eV0$rcZ@x=AodG#A9Tg z%)XOS@OCLo!9@RKrf(E7DuitOz8fAQ6lHl7OISUoZB)Bw(Wcrwp^6zz^m4w~s=<1U zz%T2+!npEysxKX-aqkR#Ng-&R&dWC9T>dYgR-rs}4k{^;?B~f0N5e|%Pj{BSUp&mr zM-7+)ZL@B{mBtgQuA=9U6jV+4fyEAMVDQa6R)DBGaaH#wV!-}yqoO_c~mm`jOu zpxC;W(9YKWbh#m@0@3ie-n>Lc)4J11QxVIi1NadjL&&Cj2m~r0^x!D>q~`X|w&p`3 z2M7r5VRwA*SpXpdjYt^nwzj!{)Fo#@_=xl+9M^Dcs z+d$N}hTtRPX&(J0tY_%a0KJ*}KfT!+ z@el2xs5{oRiW|nuaHoY#jYyz*d+%fb6!KyZ`!QB$Cffp9R3L8=GqvcfUp!d{Gk@@8 z1+QS)77?{<*m1z%IqUF~h+VDQf=zLPThj4YP!YIJ)XJM7jV;p9RBXA3#zO(XoR%rZNAJ75rY`(pPl(V&lfTVQe!j35)FK$Vg z1keR*uv^$Ob$C0rtE)@y$4f8a$}j!tyjHRE4GIVYm{Q8P5 z8HThMu)`i&GKMlE1cVmF zGO$)NTw9h@8*CRk_m!5>@H0##bMzKTz(HKzpB;)yl(71vUHBF;e@S`;fB29;DCEIQ zxPE6ftGu+V1~ElNUt~qgXUKcw?&|NXZ=WWw&{ee5%RSg*mm>6ewAc1}9?|3)5D2SK zMBTI69yz)7y9s_}c?_ZVb~zM>qwHP%2{RgaF?kY;vPzic1?5wrppofV_)h(Myni0iqkqt=SQI>C2E4Pn{=W;>hYD1EKfX0e8q?N;{MlK5^z!o zhs=I)!K|Wb1$rE}?x)PmTmA+JN6&L*Y61=W0{B8JF9cTW-+cLizv15;6&A#}nuDKz zsz)@W6gr=fV)pe(kO=-k1`5o?jB9>3ad*bYng14rWQNKw*fPQ6j|4n0q#SpS9o)(zL{~NYZ-saTP z+v~64Tu!`jO2{*Z7QD|I4sD-2aUeo*+?IT#ICkDUP#q49V;&wJ%7?LdK_@BQK3P?CG<+CRrQLp+pSyXY#1M<3TAa7yH;xNw%&J9Sd|y8i&Z2&WfqbITH^TFoGhR2sx7CnL|E zaJ&KZ^`HH+8M6BNzvX~UZGoA}xq1RL0d2i^;vc23fo&1In{TN~!-TZ$b&fr95rX!U z|HAZ`4Ja?W;Xjq*t*my1@10AM@_{4Ns=WBVB*5i*pB{egA@~GQ!S-9Yr1(L7z zQ!S}I=24}bMEuGkJs&_Co<+XL02|sEXLOSGQ3@CseQeZ%2{TFj5}bfJx&VGo{0N=N z3c;1a0oL#?X!)cS`UnGpNC1pu%dPL-3yEjzAtjPKdJd-O+frUOt|3xZVEE{`h9r0d zcj)yo#AinG3HXR50yTvbd_+WYODs?_CKxGFuqK7`F^xrMmSIgV#~AzN`&A{6&=e=NlEg+yL8CthSCcIF9k?EWl!pu zInSC~lnKL^g!6wtdD;49KA3DEmr+zWB9$6}GrF;iKp@ICsa_5+XdQ=#Q@7jwGTq3# zP4h;ICjnJ7dHN6_jUt9wnE@z``b#uy@>L0tP+Tfv#J6Wy;J;wMNTUUo2_OtWq{=!v zBuOlMzHBNj`!_HL#wR>B`h{eEK+e_la+-Ya?2JG7zY{TR+QE9Ty;N zQZM;f(cxH-gjJ{zwX&MpQy?pt32fe;h0HXsDX8l+ktc)EWF(Iwf)9opQJWo5G#Rxg zd*XT0_9rOF7L2JkcVuG*XhL9)iTw`@PR0nXe3YrTGAbAo=SD;cVS~bw7hccdl!vl! zUpKp=+}+)+>D({9X$(Prm_+(9i^z{KLW~FM$MJ8Kl(3j+$|F75AVoc-zB-RXdck6t z6OhDK{(L_fulH@{2+7}!Sg5$sCq-k=-|-3Xf5`jM=BZML|JHWm^to zFg=#IIiAHe^-nqH)c7?b1lgsi(rD*%x93yIeykiIVY}=MX>=8$bT#LhlV28IjM)S% zId3gUwo$|{i){t|s8l`Y&cNB8EdX68C*?A#>RPfzD_ay!&<+gO9u z;sb$|ZqjzS{dRao{Pb@x7+q-=eXH^~gc&GMJ;(o8!nCRFN;|-x3#gdYyheUHC@(L0#@Uf&5;iM_4%S0f&1Et3b@uVbrj6x* zyW&P_cJQ#yz!=ELP27S>#VvZQ7#hS1@Rhg^Tro{TBGi)@ru;tIA$f31@7ol@4)JFH#4n@Ylgxj5Zp)wKl(XTo~Z4+4^0GJMR<_w+vusZ*M%+4 zU#7jmz?4tib7FqhedVml8J@%tm_X)8Wl>y**a)z`1Oy;f`7tXiOQ+RU>KfE$He1Ws zbn1-@zhOoa;P2dxKZiwT=R4HSr)Ku$MjZEPo_LLXNv$h3 zBJ#Wx6cxjRJV_eGl3E28Js1A9KD7CyhK1Tw0)e^CSJ%X=ZcPEy;TXz&7X30;2++t4 zN6AF=FkA4Zj{EuA^?zrDZ5DlZbfod4U4HjPbQL@sByV>B-9QzV;Q7#_&E25GxCr&(9kACRO z+}VDxP--O;Ofk2e@MJUj5IEB6DDmX^PvuKW_|*ZJNi$@dwEeD8I;JGBaPJ5w zG)MKeCEnaBW++dIM0KMkCft416=brRuj70})yUbSAJO%eG-9x}0-LdtXxiVyezqdG z`wec4Wf=?=rge0Fl5=j_5=!h6(C}G^GWz(@X_9Y!&~YRJh-uMri7sLH;ZiBQTt~w% zI(9wpmPMi`E)?%k9wf6cOj8EPFo^~+^K;_J;MN+cncPkH@n%k!!+Q_AJ5di&0a6s0 z>zit>n8LWYy@|>cx{ z6<(NG?rSE)-{27Ol}w(twsV|BWuFlbZ~rIh7(JI0C00eJS2H$_b>mqw7PTi*G} z6k0ptynI+}WHnh-$cR*I`g0i)-{l*5a`jAOfA}8niMK0})XL#=Hf7wT5UYp3`rpTv z^*zu}<4*UJXC%Jpsjb)#7qx{A_P?pLytuTs{?llkCd?oEL#DQMqmi;_whJ^8cy)Vy z-tcb(btx=iMy^zk1|h67r>|kOe9$e54SRuwhoIxcXMFNm;5c@i{ll}-@OQLH{?(!O zs`_pf8Iy4&oTOuBmA#~6?etr{pPAIT6r7Gl5%sOxW{al)G(^dh(ciuofcbJQ(9Mb!Pbj?iXtv$12&wObrw>R zfj)N;uMlvWlU;L1D!9;JLOJ<0T7$^AG51S;Ah;9QrRNhfhR5HEyH6|Ur=}@v_7CYq zl1pTiee(zl3E?fx!Dj+XC)G zK37{xB!y#!EtfxW>^Hx-nn=WtDWvfv84nC_yVL2@4UVbEAYIto;TJHp9#&AWS=yP? zt`t1=;~FWk#X+o4eVm-N&+WQJQ!Gz7iQOb7HLL75uh#S0fn@~w^Gg- z7#JEmMJYtE&o@uw=V}D|^Ak~()V8L=jz&;dAN9nB=M>!ueGU(=hrh_>r=g~;>0bUj zb9$k=vlDXiVZ^rY7q<(2 z9hw3c2_$!|wP-FK6LOdxm}_ZG2uVtIFfG5y@qGJJ3V*JV+c-L6lu_a1HL1513Kabs zFJ+=9Fq@7puh=YquggoB#E7o4EuHeAdX!bW=Hh@)&M!8pZ@6;oppt2m z+i$NBgwYsnRA4d{&A^=iwKZ;pSD?M#HZKUb?xy6rW&G({h#r@!`G z;)&keiNo|Y^Jk(G*I3#TYvrrc2mFb3eA49gae#xz2OdRfa4(1Vri?DkZKV7C6PukN zO&&ue9%H+FHxSL8&l1V2!#d@RJcQiM)9*>YM*kEt4ff|9ZyRPhhmyc*`iF`OoayQM z6-w!nHB}RPWr+yJA~+7;w%zu~UODS&6lL%1C7^vD#OwfUvR$`V0OQ(eHVle1hbDW|w_yH>E~%K?|-P*|4A7hPmoDzeKSS5@iCX zA6hK&7x*lU5JWD*cU~wQy>DyBA_dQGe71|9JzfgXLKVO5(?3S+E|v)bv@D^kFrb=c zCc+{CTQ&;lMt7aWqbV)KzxOWFs@$;mplbY=;PB3dNWA%=h~ufXC-lIL{nn;ifVJFh zL^yn@o7DF;M@rx@5I)@6c$4E%s^@{}Vj?c(&lG*(eqOgRtG&s$F_i@MAfHBJe6<_KOWnOSY<#hC-7xA+^;Ykx>jRdGMG3Cvh zJ(_(rzzSn`^iNV2Ti5o>3%BA_3aX0No{DiqM(egV?aWMZK4)Qd$Xf~?{={p`aN z^%hkS%NS3)L zX<{N!+U#sn+_C+g!=JSpV>(QPVhQv*e}^DCD%a`DSVzZ z``Uxkr2?mBucLQwGh$7AEy?8?s%U?%RNf}H+7)(B@W#b57gm#4WUqW_uW zFR;**J6ln`{}~{*D*Xz?@o~cRIG@`iB@>$FKod=s@$ahzeOxp7=1%04!R-G zM67qC4-IO)8cb0wDBgG<;6HSIV=-^4yPu>aEZ$^|Gn^*;eRzhm+&VYe=`SM=M_6o0 z1^?*aeIs-+j`v+Oe?*>;OtJQR8*=qyFMX)p_)(S3r$k^ZQmr6RvamRvu@y<7#qC~V zmmumE&KSpb%f|$_m7B#=F5^DM)?4Edd;#XN>A%Zo()Z?OJTywX=0&@tt6fy5Mw!zy zDrLBP4CFLg<#W|3*E7*G(B!{C6VgaEbt?rA%PV+CcnuFyQ*odVt(3|8-#>ZI$XzfT zSHut+pHh?nKvrUyytE3tZnKAh7;gAP-Q^`a#*5q2uTy4o@aDvP9#?o@eY zKxEBLh;jy?K;zaL*vVrk%_CDgLCVak6REj|m|>E#5>%re;|9EZ#7U`#!@GmU#wRUH z(vcpq0=$N@K7W#_+zKJ-OS!%`w|uqRm!*9RrGJ+e{XcSBItx(>4s0FMG-99>1t*J* z$TNK0nh{LJ*P9~W)-R*eML;-cug%%fcg4O1+Aq9t>&T#Ev9k+9&wLU1yRB(vOa2|q zmFLS}Z7r(;;8!g2%pTy0610FAY~UdK10nXZP2q^TY>TCTC(8+yX@=!2K9H1WSg5yq z?R;q>0?k^#iR9!t%a#=|V|5XlJWxF{WhQk47dVxzInToLb9*!p?bOt;AxhR2&;kGe zhl#?NTVi`FY`aKe&d!w5h+HX)$Qyo=@y5{ese>(d&MwMhf?^$)KD>GDsj2|qs6A>wu_>AqH59X4|t z$__}pk?H+CIUcbn!pbskipbJoHFw+kHJgk-tma>+(9WVrsFaoX=3Z`kc;PJRrltv9 z4u3J&fUzjZ`7TL_D}LR~Z4+KZ8<>fC>0Ro3kiHGCBX^jbH7^X6=baKv`zGy_=hODZ z_D>8rx12vBXk^i;E)S>#opkAjFMq~!NOt5kC*xV@XOTbFHRTw@nF7l=@?wC{m55DzP>!=F)CZB}7p@#klI*E?UuR;J2Uf%eImoc|rGy5j$Ry#qI<@J!7N6Dk9~ za6DFG{n}QDJvDRkkSS`#)|ziZvO^qn+90Xcmjmi)^8I&Bt(uR(!D{rw7JolIBwhRV z?7MP+D)73HFf98#S^bswPHd7+>89K1<}5S3MSN@PaPz@=P{PiyY5z~W@8G%Bf9pB=TEKqiSmC#0$LZz+d??=s~V@56=5Qxa6DC|XwUy!&a+ z)L%o1SiCt_YgCwt&M4Uj**KieRx{CIMIk6bh{X+}SLJ`MjB$#v$#?hkJQC*K!@JBO zJG*}Th@y`+h||x0AV^!XaPE3_Z9|!;AUD!%b@;E+mxZp8AW7`$(NW<+cs}!=xSb~g z7XZt4%J@aowEf%Z-`tuz%ku!|>*qfyE9-XPMg@ZAvxjyTnPs_Kr5>g(nDh{*TxpZD z2zvUW;cRgng=FcJx95dXjlAMbVzi5#0`H{WJ^^tAe|BL1b=fj!9lKtX+UG{kc-&v@ z4`nF%oGt~MKV7(^_3(Phg;c)%qTg-MU}4{&G$)%?8uaS_azxdSjrx9kELJf&YffE@ zp!II8fgqBl0`UzlFBpzbbsH{^w7gFd7XyE_b*GN^&4$@YK&76C7OnMBuea+t2V+$q z7AYK(z4`#l!yI9h=&7`L?a~)7YKc3%mWggep_CQX->2BX8nb{AM?uz<;zDs&aFBRQTCd)VfA(dUWGOgO)>E)$ooQ4ULRvA^zXX zRfusC7gtWTX|#aH-N7c^@|(`n+|8z(=xCf?QyOaCyOLK`6rw!zIGs9IVi%+}MMmJKwhiUF|9p?!pX1}{(2NH`~K z0?p0Dz-6{-``JpW!qaFQzy<{9y$-A4o=uvCs|6qLOj_pJ3JdJ`L06Fu#qMFiqBE@mt5R_IvXM- z#bZ>hC2HQ!M7cCs_LK4Vgmdgtor09K zdXXeJnVei@(|RYBr-#(x;?D!|`*VNu`tYZIufHaZ)kO7b>3^^H?LdLyjr*|94HY}% zOM)-Q0ei=nyZP#uzh~h=h7g_KXpYx?y^|O!6b0#VwJ(I3A};F1yAi*zB~9JP&dv>R zbxYcYb{-S_6*W>-&R&pD<`2cDK0neOJMLwQZ>Zl08$xrFgTjg&u0m$X&WBY@eu9lW zRmut(%FZ-OB4)>@`9kS)bjku@eoC>W94E<@7SNK?=jb__78g4Xic|I3K3NDn_8u;u z_V66PGtqbh;J^I~Dj@^st_|Rv`}~R9P|WR=jH`G?H<@0M`dFDrL7`66vUd&%5jew6ZGnwHE7AOwIZ}`~-EFF1)|3XQ zJ%f91JpYb1nCbUH(l5jwJ!(v9-iR^o6jK+BU8c)wi$O0dm))6qNlBi-tKO64Y2?- zB*>RPqszM>r6N=D5HTLT6Nh#F2C?(6`<1(aU1pD(qUCY%^C!@80kUa2S9MApe9-*f zZ>S^Nh|lszD)%QLA+oCn6$*;8G;k&VBOrEqVIQrlXwfpJ>9OTUSG@x1=-wYJ-n2yP zv=lc@jqlBr%%r#642$n*F8|vXRW&_ ze8IIY^ZXK(ukaNUkC|DA%y`0enE`@>JND%PVPwwlS2f8}^6@zmI!35_?7Qdg0AGAp zvmvp8pZQbRyWrpfEh02CczXIV5u9x`OZ|B9S5M5|x>g{i=-xmC_X}~pM+ZHS3M9_i z3G0cMk~IzR486Pg@mqVM%eX3KeA2#YmpHm&-v3+l-Niv1GCrC2qt#~bHXlopK{!k| zI2q5f?jEg6%{TIzYq)!pC#Wzs>Q371QuwOtlD@Pt6r~|F=BcBlo6^PEw(fofNwB+z za;Z+2D1IYNjDhrTN$!YATVW7Hm-O$rwU2vJlV!;@Z@qu`Uh}yH09N{h4}xMdE4HYx z!*?&f7$_;@(Pyv3sLX-oNZfRor5Nq)tF$lM3Ygh0ZbWStaisBBM7p+Dbve8ZiA=xh zWe!7SWmUnfQJww;tl{AnxYbAm@eLD0-*|HJ%#CUTh3MCh@)h7zubj$$7Yt<_8taB; zEr2FR**rhy83F zOO`D+Id5Qx&5k~S0A^Zm1gg4wyP~Vz1yCbash%V5dMJx1#!zmsK1k6gzT_!>laUH; z2;2i)Q2J&1(F{(Ur-v0{bpmva?KDmZdIH zJSebg)vxmNO#Q3_2DE??y`fg3eoQddlD+*PMVs$%uxHC~m+`|hp}%dO#Q4mPIJ!KJDgU|I;2=`Mi0_u>KG61Cf$uPLRhL-|JB?~^M|AZ>-}K` zz$ln-F-RMru+JhU&B18}cYpg_V698SFw=1?8bnG~_QNyvfzkNZU6$lOrCyF}(B>Y2ucF7QK(VpgA_Gb)u zEwS=wFo~^PjnUc3a3|Es9>eY5+4kF+m^qxeo6_0(x9@b-T}v-bfd=bcBjkV}1VHdi zn0D9RD9Q8+C}#!l9h6lRM*OSEuymKg%pr#hggJ-hK8h4PJm%O=g_`iY*VGDx%1*90wqv_=BP<_&j@Bx}<=sUcQD37CuJ3s8o#-2SV;uX3kE*l9BWQoob98%0Vn?ZwK=M(wLs!#aX2016M!F>s&?FG22rN|;} zZLj~n^$90Q6viRlkCsy7Au~M=9G~CB#DaMTD2lK3!>7{{NN=*nUq(IUcwL9w_5hgM zqI@a7PN-7-erWGQD5NzG#mG=LwL$ouRA-Cty&+;27!;xF$2pkDxeZ%rtxVn(-!UHa zxYHbQi;#aIRswtv+^i5T(=m74gCaY!NlB=V&RvJ@YSJTE*2e_QgrlyWgVK@DbvL&c z#c4qTqV0N$Qx~<0S0^%NicA^T?$XZm?8Z%*_5y5ojgJ8T0AFNk)obav#frJ@rzk#5 zJ9jf^)30`K_WOYC&$NR?ej)=L-5^iu-8W7hUi@+&y-okkmcpqEfDZ{(dO-D6d*HbZ zboI+DO9!LpipYWQvNxnawM!HtrIwy8aX?C-@}K2kBe}Xh;&m6)n<3Y3b(Q}8Z_MOI zZ*QY~JN|))(oU%}1OCJLCu9dT)+1%KAX@+h`c%Iktv_AdH_`97&ROm0XFf^4<{XK~ zaPOIV>j2i_4D$2+%D*0%;un)7C1s9VsgLFfiT3O$Cs*!?zD}F%1@Aq)z((CQWAR?q zm00$&_j%<$IM}N?Q%D{yU^L(^4K9)o+uccHsHs)KiC%3EZnz<2`QiG|EF+HmkRTLB z(6HqNJTo0+no&bMfj~R%#hjmCC(5+5b~GM+&KqY^0~<9mR?JE9{|AHp?LwiB%j~c~ zg$Mxy)Nnplm?0WDXpkiqP{`3`{o_Cf7Mn0=k;L^Zr`5C;P9CUp_hN4^)d_R;wfZq+ z-fN6kaE|2uG=Xhg2(*{HdQa z2b@T?Dh2zIBCi5;)a_21_{XJJJ zfRNt1g{avm#`i8u1ykMk=Bt^w5F;8TYM5;6nN4g; zTtd8)yL;08r&Z8 zOa-if@cgK7gMP?zVMsUM-%YF3LNR!m*g(q(@hfM0ITu9b`1&RaPENiZAL;J+`j*6c z+385`MAfp>i+2r((m)#VK~l8f>0XCRr~#XO^%z4TS#*7u3j6lA&m>V5CQj3}q-89y zlpOG((UqU;`{iTT*2zz@vIbD`W9WKiif50Owt0QIQ}7@eC`!~2Bl8KtrrR{!&sDmm z{*80?G}g7V^wCU)(9*8$nZ@@;XatZXDLi`MmtEN3c$0NsN??D1$Hm2L8m3eD$btjR-px&yf6 zF?szm<)fvO)dpXmz0hK@=(bH>XR8^raXS5SgK#VRg#z0L(g>5FPwWplzlSU4NFA$( zWnK;tfA~yb^JRBbB)m2JQ_Ap&Shz6p2Pss7PtS0k|1ttonfIuMe&&c55F9>Ax1aL9 { + const { control, handleSubmit } = useForm({ + defaultValues: { + email: "someone@example.com", + streetAddress: "1600 Amphitheatre Parkway", + city: "Mountain View", + state: "CA", + country: "United States", + zipCode: "94043", + creditCardNumber: "4432-8015-6152-0454", + creditCardCvv: 672, + creditCardExpirationYear: 2030, + creditCardExpirationMonth: 1, + }, + }); + + return ( + + ( + + )} + name="email" + /> + ( + + )} + name="streetAddress" + /> + ( + + )} + name="zipCode" + /> + ( + + )} + name="country" + /> + ( + + )} + name="creditCardNumber" + /> + ( + + )} + name="creditCardExpirationMonth" + /> + ( + + )} + name="creditCardExpirationYear" + /> + ( + + )} + name="creditCardCvv" + /> + + + Place Order + + + + ); +}; + +const styles = StyleSheet.create({ + container: { + marginLeft: 30, + }, + submitContainer: { + display: "flex", + justifyContent: "center", + alignItems: "center", + margin: 20, + }, + submit: { + borderRadius: 4, + backgroundColor: "blue", + alignItems: "center", + justifyContent: "center", + width: 150, + padding: 10, + position: "relative", + }, + submitText: { + color: "white", + fontSize: 20, + }, +}); + +export default CheckoutForm; diff --git a/src/react-native-app/components/CheckoutForm/index.ts b/src/react-native-app/components/CheckoutForm/index.ts new file mode 100644 index 0000000000..dc8dd0b1d6 --- /dev/null +++ b/src/react-native-app/components/CheckoutForm/index.ts @@ -0,0 +1,3 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +export { default } from "./CheckoutForm"; diff --git a/src/react-native-app/components/EmptyCart/EmptyCart.tsx b/src/react-native-app/components/EmptyCart/EmptyCart.tsx new file mode 100644 index 0000000000..962cf28143 --- /dev/null +++ b/src/react-native-app/components/EmptyCart/EmptyCart.tsx @@ -0,0 +1,37 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Copied with modification from src/frontend/components/Cart/EmptyCart.tsx + */ +import { ThemedView } from "@/components/ThemedView"; +import { ThemedText } from "@/components/ThemedText"; +import { StyleSheet } from "react-native"; + +const EmptyCart = () => { + return ( + + + Your shopping cart is empty! + + + Items you add to your shopping cart will appear here. + + + ); +}; + +export default EmptyCart; + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: "center", + alignItems: "center", + }, + header: { + fontSize: 20, + }, + subHeader: { + fontSize: 14, + }, +}); diff --git a/src/react-native-app/components/EmptyCart/index.ts b/src/react-native-app/components/EmptyCart/index.ts new file mode 100644 index 0000000000..9f421d165f --- /dev/null +++ b/src/react-native-app/components/EmptyCart/index.ts @@ -0,0 +1,3 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +export { default } from "./EmptyCart"; diff --git a/src/react-native-app/components/Field.tsx b/src/react-native-app/components/Field.tsx new file mode 100644 index 0000000000..d0f8e9683d --- /dev/null +++ b/src/react-native-app/components/Field.tsx @@ -0,0 +1,30 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +import { StyleSheet, TextInput, type TextInputProps } from "react-native"; +import { ThemedView } from "@/components/ThemedView"; +import { ThemedText } from "@/components/ThemedText"; +import { useThemeColor } from "@/hooks/useThemeColor"; + +export type FieldProps = TextInputProps & { + label: string; +}; + +export function Field({ label, ...otherProps }: FieldProps) { + const color = useThemeColor({}, "text"); + + return ( + + {label}: + + + ); +} + +const styles = StyleSheet.create({ + container: { + display: "flex", + flexDirection: "row", + gap: 10, + alignItems: "center", + }, +}); diff --git a/src/react-native-app/components/ProductCard/ProductCard.tsx b/src/react-native-app/components/ProductCard/ProductCard.tsx new file mode 100644 index 0000000000..2fa3dbfa0c --- /dev/null +++ b/src/react-native-app/components/ProductCard/ProductCard.tsx @@ -0,0 +1,102 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Copied with modification from src/frontend/components/ProductCard/ProductCard.tsx + */ +import { Product } from "@/protos/demo"; +import { ThemedView } from "@/components/ThemedView"; +import { useState, useEffect, useMemo } from "react"; +import getLocalhost from "@/utils/Localhost"; +import { Image, Pressable, StyleSheet } from "react-native"; +import { ThemedText } from "@/components/ThemedText"; +import { useThemeColor } from "@/hooks/useThemeColor"; + +interface IProps { + product: Product; + onClickAdd: () => void; +} + +async function getImageURL(picture: string) { + const localhost = await getLocalhost(); + return `http://${localhost}:${process.env.EXPO_PUBLIC_FRONTEND_PROXY_PORT}/images/products/${picture}`; +} + +const ProductCard = ({ + product: { + picture, + name, + priceUsd = { + currencyCode: "USD", + units: 0, + nanos: 0, + }, + }, + onClickAdd, +}: IProps) => { + const tint = useThemeColor({}, "tint"); + const styles = useMemo(() => getStyles(tint), [tint]); + const [imageSrc, setImageSrc] = useState(""); + + useEffect(() => { + getImageURL(picture) + .then(setImageSrc) + .catch((reason) => { + console.warn("Failed to get image URL: ", reason); + }); + }, [picture]); + + // TODO simplify react native demo for now by hard-coding the selected currency + const price = (priceUsd?.units + priceUsd?.nanos / 100000000).toFixed(2); + + return ( + + + {imageSrc && } + + + {name} + $ {price} + + Add to Cart + + + + ); +}; + +const getStyles = (tint: string) => + StyleSheet.create({ + container: { + display: "flex", + flexDirection: "row", + padding: 20, + marginLeft: 10, + marginRight: 10, + borderStyle: "solid", + borderBottomWidth: 1, + borderColor: tint, + gap: 30, + }, + image: { + width: 100, + height: 100, + }, + productInfo: { + flexShrink: 1, + }, + name: {}, + price: { + fontWeight: "bold", + }, + add: { + borderRadius: 4, + backgroundColor: "green", + alignItems: "center", + width: 100, + }, + addText: { + color: "white", + }, + }); + +export default ProductCard; diff --git a/src/react-native-app/components/ProductCard/index.ts b/src/react-native-app/components/ProductCard/index.ts new file mode 100644 index 0000000000..e08867030d --- /dev/null +++ b/src/react-native-app/components/ProductCard/index.ts @@ -0,0 +1,3 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +export { default } from "./ProductCard"; diff --git a/src/react-native-app/components/ProductList/ProductList.tsx b/src/react-native-app/components/ProductList/ProductList.tsx new file mode 100644 index 0000000000..30bd6efb3f --- /dev/null +++ b/src/react-native-app/components/ProductList/ProductList.tsx @@ -0,0 +1,50 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Copied with modification from: + * src/frontend/pages/product/[productId]/index.tsx + * src/frontend/components/ProductList/ProductList.tsx + */ +import Toast from "react-native-toast-message"; +import { useCallback } from "react"; +import ProductCard from "@/components/ProductCard"; +import { Product } from "@/protos/demo"; +import { ThemedScrollView } from "@/components/ThemedScrollView"; +import { useCart } from "@/providers/Cart.provider"; + +interface IProps { + productList: Product[]; +} + +const ProductList = ({ productList }: IProps) => { + const { addItem } = useCart(); + const onAddItem = useCallback( + async (id: string) => { + addItem({ + productId: id, + quantity: 1, + }); + + Toast.show({ + type: "success", + position: "bottom", + text1: "This item has been added to your cart", + }); + }, + [addItem], + ); + + return ( + + {productList.map((product) => ( + onAddItem(product.id)} + /> + ))} + + ); +}; + +export default ProductList; diff --git a/src/react-native-app/components/ProductList/index.ts b/src/react-native-app/components/ProductList/index.ts new file mode 100644 index 0000000000..d3e14bb3bc --- /dev/null +++ b/src/react-native-app/components/ProductList/index.ts @@ -0,0 +1,3 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +export { default } from "./ProductList"; diff --git a/src/react-native-app/components/ThemedScrollView.tsx b/src/react-native-app/components/ThemedScrollView.tsx new file mode 100644 index 0000000000..34f5d211d9 --- /dev/null +++ b/src/react-native-app/components/ThemedScrollView.tsx @@ -0,0 +1,23 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +import { ScrollView, type ScrollViewProps } from "react-native"; +import { useThemeColor } from "@/hooks/useThemeColor"; + +export type ThemedViewProps = ScrollViewProps & { + lightColor?: string; + darkColor?: string; +}; + +export function ThemedScrollView({ + style, + lightColor, + darkColor, + ...otherProps +}: ThemedViewProps) { + const backgroundColor = useThemeColor( + { light: lightColor, dark: darkColor }, + "background", + ); + + return ; +} diff --git a/src/react-native-app/components/ThemedText.tsx b/src/react-native-app/components/ThemedText.tsx new file mode 100644 index 0000000000..cf6abf89a1 --- /dev/null +++ b/src/react-native-app/components/ThemedText.tsx @@ -0,0 +1,62 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +import { Text, type TextProps, StyleSheet } from "react-native"; + +import { useThemeColor } from "@/hooks/useThemeColor"; + +export type ThemedTextProps = TextProps & { + lightColor?: string; + darkColor?: string; + type?: "default" | "title" | "defaultSemiBold" | "subtitle" | "link"; +}; + +export function ThemedText({ + style, + lightColor, + darkColor, + type = "default", + ...rest +}: ThemedTextProps) { + const color = useThemeColor({ light: lightColor, dark: darkColor }, "text"); + + return ( + + ); +} + +const styles = StyleSheet.create({ + default: { + fontSize: 16, + lineHeight: 24, + }, + defaultSemiBold: { + fontSize: 16, + lineHeight: 24, + fontWeight: "600", + }, + title: { + fontSize: 32, + fontWeight: "bold", + lineHeight: 32, + }, + subtitle: { + fontSize: 20, + fontWeight: "bold", + }, + link: { + lineHeight: 30, + fontSize: 16, + color: "#0a7ea4", + }, +}); diff --git a/src/react-native-app/components/ThemedView.tsx b/src/react-native-app/components/ThemedView.tsx new file mode 100644 index 0000000000..94668b3266 --- /dev/null +++ b/src/react-native-app/components/ThemedView.tsx @@ -0,0 +1,24 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +import { View, type ViewProps } from "react-native"; + +import { useThemeColor } from "@/hooks/useThemeColor"; + +export type ThemedViewProps = ViewProps & { + lightColor?: string; + darkColor?: string; +}; + +export function ThemedView({ + style, + lightColor, + darkColor, + ...otherProps +}: ThemedViewProps) { + const backgroundColor = useThemeColor( + { light: lightColor, dark: darkColor }, + "background", + ); + + return ; +} diff --git a/src/react-native-app/components/navigation/TabBarIcon.tsx b/src/react-native-app/components/navigation/TabBarIcon.tsx new file mode 100644 index 0000000000..42f43b2425 --- /dev/null +++ b/src/react-native-app/components/navigation/TabBarIcon.tsx @@ -0,0 +1,14 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +// You can explore the built-in icon families and icons on the web at https://icons.expo.fyi/ + +import Ionicons from "@expo/vector-icons/Ionicons"; +import { type IconProps } from "@expo/vector-icons/build/createIconSet"; +import { type ComponentProps } from "react"; + +export function TabBarIcon({ + style, + ...rest +}: IconProps["name"]>) { + return ; +} diff --git a/src/react-native-app/constants/Colors.ts b/src/react-native-app/constants/Colors.ts new file mode 100644 index 0000000000..8219cf80fb --- /dev/null +++ b/src/react-native-app/constants/Colors.ts @@ -0,0 +1,28 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Below are the colors that are used in the app. The colors are defined in the light and dark mode. + * There are many other ways to style your app. For example, [Nativewind](https://www.nativewind.dev/), [Tamagui](https://tamagui.dev/), [unistyles](https://reactnativeunistyles.vercel.app), etc. + */ + +const tintColorLight = "#0a7ea4"; +const tintColorDark = "#fff"; + +export const Colors = { + light: { + text: "#11181C", + background: "#fff", + tint: tintColorLight, + icon: "#687076", + tabIconDefault: "#687076", + tabIconSelected: tintColorLight, + }, + dark: { + text: "#ECEDEE", + background: "#151718", + tint: tintColorDark, + icon: "#9BA1A6", + tabIconDefault: "#9BA1A6", + tabIconSelected: tintColorDark, + }, +}; diff --git a/src/react-native-app/gateways/Api.gateway.ts b/src/react-native-app/gateways/Api.gateway.ts new file mode 100644 index 0000000000..96f898baad --- /dev/null +++ b/src/react-native-app/gateways/Api.gateway.ts @@ -0,0 +1,150 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Copied with modification from src/frontend/gateways/Api.gateway.ts + * + * TODO The React Native example only implements a subset of the functionality defined here, missing in particular is: + * - showing ads + * - showing recommendations + * - calculating shipping costs + * - currency conversion + */ +import { + Ad, + Address, + Cart, + CartItem, + Money, + PlaceOrderRequest, + Product, +} from "@/protos/demo"; +import { IProductCart, IProductCartItem, IProductCheckout } from "@/types/Cart"; +import request from "@/utils/Request"; +import SessionGateway from "./Session.gateway"; +import { context, propagation } from "@opentelemetry/api"; + +const basePath = "/api"; + +const Apis = () => ({ + async getCart(currencyCode: string) { + const { userId } = await SessionGateway.getSession(); + return request({ + url: `${basePath}/cart`, + queryParams: { sessionId: userId, currencyCode }, + }); + }, + async addCartItem({ + currencyCode, + ...item + }: CartItem & { currencyCode: string }) { + const { userId } = await SessionGateway.getSession(); + return request({ + url: `${basePath}/cart`, + body: { item, userId }, + queryParams: { currencyCode }, + method: "POST", + }); + }, + async emptyCart() { + const { userId } = await SessionGateway.getSession(); + return request({ + url: `${basePath}/cart`, + method: "DELETE", + body: { userId }, + }); + }, + + getSupportedCurrencyList() { + return request({ + url: `${basePath}/currency`, + }); + }, + + getShippingCost( + itemList: IProductCartItem[], + currencyCode: string, + address: Address, + ) { + return request({ + url: `${basePath}/shipping`, + queryParams: { + itemList: JSON.stringify( + itemList.map(({ productId, quantity }) => ({ productId, quantity })), + ), + currencyCode, + address: JSON.stringify(address), + }, + }); + }, + + placeOrder({ + currencyCode, + ...order + }: PlaceOrderRequest & { currencyCode: string }) { + return request({ + url: `${basePath}/checkout`, + method: "POST", + queryParams: { currencyCode }, + body: order, + }); + }, + + listProducts(currencyCode: string) { + return request({ + url: `${basePath}/products`, + queryParams: { currencyCode }, + }); + }, + getProduct(productId: string, currencyCode: string) { + return request({ + url: `${basePath}/products/${productId}`, + queryParams: { currencyCode }, + }); + }, + async listRecommendations(productIds: string[], currencyCode: string) { + const { userId } = await SessionGateway.getSession(); + return request({ + url: `${basePath}/recommendations`, + queryParams: { + productIds, + sessionId: userId, + currencyCode, + }, + }); + }, + listAds(contextKeys: string[]) { + return request({ + url: `${basePath}/data`, + queryParams: { + contextKeys, + }, + }); + }, +}); + +/** + * Extends all the API calls to set baggage automatically. + */ +const ApiGateway = new Proxy(Apis(), { + get(target, prop, receiver) { + const originalFunction = Reflect.get(target, prop, receiver); + + if (typeof originalFunction !== "function") { + return originalFunction; + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return async function (...args: any[]) { + const { userId } = await SessionGateway.getSession(); + const baggage = + propagation.getActiveBaggage() || propagation.createBaggage(); + const newBaggage = baggage.setEntry("session.id", { value: userId }); + const newContext = propagation.setBaggage(context.active(), newBaggage); + return context.with(newContext, () => { + return Reflect.apply(originalFunction, undefined, args); + }); + }; + }, +}); + +export default ApiGateway; diff --git a/src/react-native-app/gateways/Session.gateway.ts b/src/react-native-app/gateways/Session.gateway.ts new file mode 100644 index 0000000000..d6da9e1b46 --- /dev/null +++ b/src/react-native-app/gateways/Session.gateway.ts @@ -0,0 +1,43 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Copied with modification from src/frontend/gateways/Session.gateway.ts + */ +import "react-native-get-random-values"; // Must be imported before 'uuid', see https://stackoverflow.com/a/68097811 +import { v4 } from "uuid"; +import AsyncStorage from "@react-native-async-storage/async-storage"; + +interface ISession { + userId: string; + currencyCode: string; +} + +const sessionKey = "session"; +const defaultSession = { + userId: v4(), + currencyCode: "USD", +}; + +const SessionGateway = () => ({ + async getSession(): Promise { + const sessionString = await AsyncStorage.getItem(sessionKey); + + if (!sessionString) { + await AsyncStorage.setItem(sessionKey, JSON.stringify(defaultSession)); + } + + return JSON.parse( + sessionString || JSON.stringify(defaultSession), + ) as ISession; + }, + setSessionValue(key: K, value: ISession[K]) { + const session = this.getSession(); + + return AsyncStorage.setItem( + sessionKey, + JSON.stringify({ ...session, [key]: value }), + ); + }, +}); + +export default SessionGateway(); diff --git a/src/react-native-app/hooks/useColorScheme.ts b/src/react-native-app/hooks/useColorScheme.ts new file mode 100644 index 0000000000..2a0bb61978 --- /dev/null +++ b/src/react-native-app/hooks/useColorScheme.ts @@ -0,0 +1,3 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +export { useColorScheme } from "react-native"; diff --git a/src/react-native-app/hooks/useColorScheme.web.ts b/src/react-native-app/hooks/useColorScheme.web.ts new file mode 100644 index 0000000000..fe92ccd699 --- /dev/null +++ b/src/react-native-app/hooks/useColorScheme.web.ts @@ -0,0 +1,10 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +// NOTE: The default React Native styling doesn't support server rendering. +// Server rendered styles should not change between the first render of the HTML +// and the first render on the client. Typically, web developers will use CSS media queries +// to render different styles on the client and server, these aren't directly supported in React Native +// but can be achieved using a styling library like Nativewind. +export function useColorScheme() { + return "light"; +} diff --git a/src/react-native-app/hooks/useThemeColor.ts b/src/react-native-app/hooks/useThemeColor.ts new file mode 100644 index 0000000000..c7b9684755 --- /dev/null +++ b/src/react-native-app/hooks/useThemeColor.ts @@ -0,0 +1,24 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Learn more about light and dark modes: + * https://docs.expo.dev/guides/color-schemes/ + */ + +import { useColorScheme } from "react-native"; + +import { Colors } from "@/constants/Colors"; + +export function useThemeColor( + props: { light?: string; dark?: string }, + colorName: keyof typeof Colors.light & keyof typeof Colors.dark, +) { + const theme = useColorScheme() ?? "light"; + const colorFromProps = props[theme]; + + if (colorFromProps) { + return colorFromProps; + } else { + return Colors[theme][colorName]; + } +} diff --git a/src/react-native-app/hooks/useTracer.ts b/src/react-native-app/hooks/useTracer.ts new file mode 100644 index 0000000000..bb162c3799 --- /dev/null +++ b/src/react-native-app/hooks/useTracer.ts @@ -0,0 +1,123 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +import { + CompositePropagator, + W3CBaggagePropagator, + W3CTraceContextPropagator, +} from "@opentelemetry/core"; +import { WebTracerProvider } from "@opentelemetry/sdk-trace-web"; +import { + BatchSpanProcessor, +} from "@opentelemetry/sdk-trace-base"; +import { XMLHttpRequestInstrumentation } from "@opentelemetry/instrumentation-xml-http-request"; +import { FetchInstrumentation } from "@opentelemetry/instrumentation-fetch"; +import { registerInstrumentations } from "@opentelemetry/instrumentation"; +import { Resource } from "@opentelemetry/resources"; +import { + ATTR_DEVICE_ID, + ATTR_OS_NAME, + ATTR_OS_VERSION, + ATTR_SERVICE_NAME, + ATTR_SERVICE_VERSION, +} from "@opentelemetry/semantic-conventions/incubating"; +import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http"; +import getLocalhost from "@/utils/Localhost"; +import { useEffect, useState } from "react"; +import { + getDeviceId, + getSystemVersion, + getVersion, +} from "react-native-device-info"; +import { Platform } from "react-native"; +import { SessionIdProcessor } from "@/utils/SessionIdProcessor"; + +const Tracer = async () => { + const localhost = await getLocalhost(); + + // TODO Should add a resource detector for React Native that provides this automatically + const resource = new Resource({ + [ATTR_SERVICE_NAME]: "react-native-app", + [ATTR_OS_NAME]: Platform.OS, + [ATTR_OS_VERSION]: getSystemVersion(), + [ATTR_SERVICE_VERSION]: getVersion(), + [ATTR_DEVICE_ID]: getDeviceId(), + }); + + // TODO Not obvious that the WebTracerProvider can be used for React Native, might be useful to have a thin + // ReactNativeTracerProvider on top of it (or BasicTracerProvider) that makes this clear. Could also add some + // protection against browser specific functionality being added to WebTracerProvider that breaks functionality + // for React Native. + // Alternatively could offer a TracerProvider that exposed a JS interface on top of the OTEL Android and Swift SDKS, + // giving developers the option of collecting telemetry at the native mobile layer + const provider = new WebTracerProvider({ + resource, + spanProcessors: [ + new BatchSpanProcessor( + new OTLPTraceExporter({ + url: `http://${localhost}:${process.env.EXPO_PUBLIC_FRONTEND_PROXY_PORT}/otlp-http/v1/traces`, + }), + { + scheduledDelayMillis: 500, + }, + ), + + // TODO introduce a React Native session processor package that could be used here, taking into account mobile + // specific considerations for the session such as putting the app into the background + new SessionIdProcessor(), + ], + }); + + provider.register({ + propagator: new CompositePropagator({ + propagators: [ + new W3CBaggagePropagator(), + new W3CTraceContextPropagator(), + ], + }), + }); + + registerInstrumentations({ + instrumentations: [ + // TODO Some tiptoeing required here, propagateTraceHeaderCorsUrls is required to make the instrumentation + // work in the context of a mobile app even though we are not making CORS requests. `clearTimingResources` must + // be turned off to avoid using the web-only Performance API + // Overall wrapping or forking this and providing a React Native specific auto instrumentation will ease + // integration and make it less error-prone + new FetchInstrumentation({ + propagateTraceHeaderCorsUrls: /.*/, + clearTimingResources: false, + }), + + // The React Native implementation of fetch is simply a polyfill on top of XMLHttpRequest: + // https://github.com/facebook/react-native/blob/7ccc5934d0f341f9bc8157f18913a7b340f5db2d/packages/react-native/Libraries/Network/fetch.js#L17 + // Because of this when making requests using `fetch` there will an additional span created for the underlying + // request made with XMLHttpRequest. Since in this demo calls to /api/ are made using fetch, turn off + // instrumentation for that path to avoid the extra spans. + new XMLHttpRequestInstrumentation({ + ignoreUrls: [/\/api\/.*/], + }), + ], + }); +}; + +export interface TracerResult { + loaded: boolean; +} + +// TODO providing a wrapper similar to this that uses hooks over the full JS OTEL API would be nice to have for both +// React Native and React development +export const useTracer = (): TracerResult => { + const [loaded, setLoaded] = useState(false); + + useEffect(() => { + if (!loaded) { + Tracer() + .catch(() => console.warn("failed to setup tracer")) + .finally(() => setLoaded(true)); + } + }, [loaded]); + + return { + loaded, + }; +}; diff --git a/src/react-native-app/ios/.gitignore b/src/react-native-app/ios/.gitignore new file mode 100644 index 0000000000..8beb344303 --- /dev/null +++ b/src/react-native-app/ios/.gitignore @@ -0,0 +1,30 @@ +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace +.xcode.env.local + +# Bundle artifacts +*.jsbundle + +# CocoaPods +/Pods/ diff --git a/src/react-native-app/ios/.xcode.env b/src/react-native-app/ios/.xcode.env new file mode 100644 index 0000000000..3d5782c715 --- /dev/null +++ b/src/react-native-app/ios/.xcode.env @@ -0,0 +1,11 @@ +# This `.xcode.env` file is versioned and is used to source the environment +# used when running script phases inside Xcode. +# To customize your local environment, you can create an `.xcode.env.local` +# file that is not versioned. + +# NODE_BINARY variable contains the PATH to the node executable. +# +# Customize the NODE_BINARY variable here. +# For example, to use nvm with brew, add the following line +# . "$(brew --prefix nvm)/nvm.sh" --no-use +export NODE_BINARY=$(command -v node) diff --git a/src/react-native-app/ios/Podfile b/src/react-native-app/ios/Podfile new file mode 100644 index 0000000000..14cd1f8b8c --- /dev/null +++ b/src/react-native-app/ios/Podfile @@ -0,0 +1,58 @@ +require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking") +require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods") + +require 'json' +podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {} + +ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0' +ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] + +platform :ios, podfile_properties['ios.deploymentTarget'] || '13.4' +install! 'cocoapods', + :deterministic_uuids => false + +prepare_react_native_project! + +target 'reactnativeapp' do + use_expo_modules! + config = use_native_modules! + + use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks'] + use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS'] + + use_react_native!( + :path => config[:reactNativePath], + :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes', + # An absolute path to your application root. + :app_path => "#{Pod::Config.instance.installation_root}/..", + :privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] != 'false', + ) + + post_install do |installer| + react_native_post_install( + installer, + config[:reactNativePath], + :mac_catalyst_enabled => false, + :ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true', + ) + + # This is necessary for Xcode 14, because it signs resource bundles by default + # when building for devices. + installer.target_installation_results.pod_target_installation_results + .each do |pod_name, target_installation_result| + target_installation_result.resource_bundle_targets.each do |resource_bundle_target| + resource_bundle_target.build_configurations.each do |config| + config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' + end + end + end + end + + post_integrate do |installer| + begin + expo_patch_react_imports!(installer) + rescue => e + Pod::UI.warn e + end + end +end diff --git a/src/react-native-app/ios/Podfile.lock b/src/react-native-app/ios/Podfile.lock new file mode 100644 index 0000000000..7e768c05ee --- /dev/null +++ b/src/react-native-app/ios/Podfile.lock @@ -0,0 +1,1609 @@ +PODS: + - boost (1.83.0) + - DoubleConversion (1.1.6) + - EXConstants (16.0.2): + - ExpoModulesCore + - Expo (51.0.39): + - ExpoModulesCore + - ExpoAsset (10.0.10): + - ExpoModulesCore + - ExpoFileSystem (17.0.1): + - ExpoModulesCore + - ExpoFont (12.0.10): + - ExpoModulesCore + - ExpoHead (3.5.24): + - ExpoModulesCore + - ExpoKeepAwake (13.0.2): + - ExpoModulesCore + - ExpoModulesCore (1.12.26): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsinspector + - React-NativeModulesApple + - React-RCTAppDelegate + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - ExpoSystemUI (3.0.7): + - ExpoModulesCore + - ExpoWebBrowser (13.0.3): + - ExpoModulesCore + - EXSplashScreen (0.27.7): + - DoubleConversion + - ExpoModulesCore + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - FBLazyVector (0.74.2) + - fmt (9.1.0) + - glog (0.3.5) + - hermes-engine (0.74.2): + - hermes-engine/Pre-built (= 0.74.2) + - hermes-engine/Pre-built (0.74.2) + - RCT-Folly (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Default (= 2024.01.01.00) + - RCT-Folly/Default (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Fabric (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCTDeprecation (0.74.2) + - RCTRequired (0.74.2) + - RCTTypeSafety (0.74.2): + - FBLazyVector (= 0.74.2) + - RCTRequired (= 0.74.2) + - React-Core (= 0.74.2) + - React (0.74.2): + - React-Core (= 0.74.2) + - React-Core/DevSupport (= 0.74.2) + - React-Core/RCTWebSocket (= 0.74.2) + - React-RCTActionSheet (= 0.74.2) + - React-RCTAnimation (= 0.74.2) + - React-RCTBlob (= 0.74.2) + - React-RCTImage (= 0.74.2) + - React-RCTLinking (= 0.74.2) + - React-RCTNetwork (= 0.74.2) + - React-RCTSettings (= 0.74.2) + - React-RCTText (= 0.74.2) + - React-RCTVibration (= 0.74.2) + - React-callinvoker (0.74.2) + - React-Codegen (0.74.2): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-NativeModulesApple + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - React-Core (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/CoreModulesHeaders (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/Default (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/DevSupport (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.2) + - React-Core/RCTWebSocket (= 0.74.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTActionSheetHeaders (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTAnimationHeaders (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTBlobHeaders (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTImageHeaders (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTLinkingHeaders (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTNetworkHeaders (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTSettingsHeaders (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTTextHeaders (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTVibrationHeaders (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTWebSocket (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-CoreModules (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety (= 0.74.2) + - React-Codegen + - React-Core/CoreModulesHeaders (= 0.74.2) + - React-jsi (= 0.74.2) + - React-jsinspector + - React-NativeModulesApple + - React-RCTBlob + - React-RCTImage (= 0.74.2) + - ReactCommon + - SocketRocket (= 0.7.0) + - React-cxxreact (0.74.2): + - boost (= 1.83.0) + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.2) + - React-debug (= 0.74.2) + - React-jsi (= 0.74.2) + - React-jsinspector + - React-logger (= 0.74.2) + - React-perflogger (= 0.74.2) + - React-runtimeexecutor (= 0.74.2) + - React-debug (0.74.2) + - React-Fabric (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/animations (= 0.74.2) + - React-Fabric/attributedstring (= 0.74.2) + - React-Fabric/componentregistry (= 0.74.2) + - React-Fabric/componentregistrynative (= 0.74.2) + - React-Fabric/components (= 0.74.2) + - React-Fabric/core (= 0.74.2) + - React-Fabric/imagemanager (= 0.74.2) + - React-Fabric/leakchecker (= 0.74.2) + - React-Fabric/mounting (= 0.74.2) + - React-Fabric/scheduler (= 0.74.2) + - React-Fabric/telemetry (= 0.74.2) + - React-Fabric/templateprocessor (= 0.74.2) + - React-Fabric/textlayoutmanager (= 0.74.2) + - React-Fabric/uimanager (= 0.74.2) + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/animations (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/attributedstring (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistry (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistrynative (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/components/inputaccessory (= 0.74.2) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.2) + - React-Fabric/components/modal (= 0.74.2) + - React-Fabric/components/rncore (= 0.74.2) + - React-Fabric/components/root (= 0.74.2) + - React-Fabric/components/safeareaview (= 0.74.2) + - React-Fabric/components/scrollview (= 0.74.2) + - React-Fabric/components/text (= 0.74.2) + - React-Fabric/components/textinput (= 0.74.2) + - React-Fabric/components/unimplementedview (= 0.74.2) + - React-Fabric/components/view (= 0.74.2) + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/inputaccessory (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/legacyviewmanagerinterop (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/modal (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/rncore (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/root (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/safeareaview (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/scrollview (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/text (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/textinput (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/unimplementedview (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/view (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric/core (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/imagemanager (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/leakchecker (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/mounting (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/scheduler (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/telemetry (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/templateprocessor (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/textlayoutmanager (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/uimanager + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/uimanager (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-FabricImage (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired (= 0.74.2) + - RCTTypeSafety (= 0.74.2) + - React-Fabric + - React-graphics + - React-ImageManager + - React-jsi + - React-jsiexecutor (= 0.74.2) + - React-logger + - React-rendererdebug + - React-utils + - ReactCommon + - Yoga + - React-featureflags (0.74.2) + - React-graphics (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-Core/Default (= 0.74.2) + - React-utils + - React-hermes (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.74.2) + - React-jsi + - React-jsiexecutor (= 0.74.2) + - React-jsinspector + - React-perflogger (= 0.74.2) + - React-runtimeexecutor + - React-ImageManager (0.74.2): + - glog + - RCT-Folly/Fabric + - React-Core/Default + - React-debug + - React-Fabric + - React-graphics + - React-rendererdebug + - React-utils + - React-jserrorhandler (0.74.2): + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-debug + - React-jsi + - React-Mapbuffer + - React-jsi (0.74.2): + - boost (= 1.83.0) + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-jsiexecutor (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.74.2) + - React-jsi (= 0.74.2) + - React-jsinspector + - React-perflogger (= 0.74.2) + - React-jsinspector (0.74.2): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-featureflags + - React-jsi + - React-runtimeexecutor (= 0.74.2) + - React-jsitracing (0.74.2): + - React-jsi + - React-logger (0.74.2): + - glog + - React-Mapbuffer (0.74.2): + - glog + - React-debug + - react-native-get-random-values (1.11.0): + - React-Core + - react-native-safe-area-context (4.10.1): + - React-Core + - React-nativeconfig (0.74.2) + - React-NativeModulesApple (0.74.2): + - glog + - hermes-engine + - React-callinvoker + - React-Core + - React-cxxreact + - React-jsi + - React-jsinspector + - React-runtimeexecutor + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - React-perflogger (0.74.2) + - React-RCTActionSheet (0.74.2): + - React-Core/RCTActionSheetHeaders (= 0.74.2) + - React-RCTAnimation (0.74.2): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTAnimationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTAppDelegate (0.74.2): + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-CoreModules + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-hermes + - React-nativeconfig + - React-NativeModulesApple + - React-RCTFabric + - React-RCTImage + - React-RCTNetwork + - React-rendererdebug + - React-RuntimeApple + - React-RuntimeCore + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - ReactCommon + - React-RCTBlob (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-Codegen + - React-Core/RCTBlobHeaders + - React-Core/RCTWebSocket + - React-jsi + - React-jsinspector + - React-NativeModulesApple + - React-RCTNetwork + - ReactCommon + - React-RCTFabric (0.74.2): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-jsinspector + - React-nativeconfig + - React-RCTImage + - React-RCTText + - React-rendererdebug + - React-runtimescheduler + - React-utils + - Yoga + - React-RCTImage (0.74.2): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTImageHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTNetwork + - ReactCommon + - React-RCTLinking (0.74.2): + - React-Codegen + - React-Core/RCTLinkingHeaders (= 0.74.2) + - React-jsi (= 0.74.2) + - React-NativeModulesApple + - ReactCommon + - ReactCommon/turbomodule/core (= 0.74.2) + - React-RCTNetwork (0.74.2): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTNetworkHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTSettings (0.74.2): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTSettingsHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTText (0.74.2): + - React-Core/RCTTextHeaders (= 0.74.2) + - Yoga + - React-RCTVibration (0.74.2): + - RCT-Folly (= 2024.01.01.00) + - React-Codegen + - React-Core/RCTVibrationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-rendererdebug (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) + - React-debug + - React-rncore (0.74.2) + - React-RuntimeApple (0.74.2): + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-callinvoker + - React-Core/Default + - React-CoreModules + - React-cxxreact + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-Mapbuffer + - React-NativeModulesApple + - React-RCTFabric + - React-RuntimeCore + - React-runtimeexecutor + - React-RuntimeHermes + - React-utils + - React-RuntimeCore (0.74.2): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-cxxreact + - React-featureflags + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-runtimeexecutor + - React-runtimescheduler + - React-utils + - React-runtimeexecutor (0.74.2): + - React-jsi (= 0.74.2) + - React-RuntimeHermes (0.74.2): + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-featureflags + - React-hermes + - React-jsi + - React-jsinspector + - React-jsitracing + - React-nativeconfig + - React-RuntimeCore + - React-utils + - React-runtimescheduler (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker + - React-cxxreact + - React-debug + - React-featureflags + - React-jsi + - React-rendererdebug + - React-runtimeexecutor + - React-utils + - React-utils (0.74.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-debug + - React-jsi (= 0.74.2) + - ReactCommon (0.74.2): + - ReactCommon/turbomodule (= 0.74.2) + - ReactCommon/turbomodule (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.2) + - React-cxxreact (= 0.74.2) + - React-jsi (= 0.74.2) + - React-logger (= 0.74.2) + - React-perflogger (= 0.74.2) + - ReactCommon/turbomodule/bridging (= 0.74.2) + - ReactCommon/turbomodule/core (= 0.74.2) + - ReactCommon/turbomodule/bridging (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.2) + - React-cxxreact (= 0.74.2) + - React-jsi (= 0.74.2) + - React-logger (= 0.74.2) + - React-perflogger (= 0.74.2) + - ReactCommon/turbomodule/core (0.74.2): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.2) + - React-cxxreact (= 0.74.2) + - React-debug (= 0.74.2) + - React-jsi (= 0.74.2) + - React-logger (= 0.74.2) + - React-perflogger (= 0.74.2) + - React-utils (= 0.74.2) + - RNCAsyncStorage (2.1.0): + - React-Core + - RNDeviceInfo (11.1.0): + - React-Core + - RNGestureHandler (2.16.2): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNReanimated (3.10.1): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNScreens (3.31.1): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-RCTImage + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - SocketRocket (0.7.0) + - Yoga (0.0.0) + +DEPENDENCIES: + - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) + - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - EXConstants (from `../node_modules/expo-constants/ios`) + - Expo (from `../node_modules/expo`) + - ExpoAsset (from `../node_modules/expo-asset/ios`) + - ExpoFileSystem (from `../node_modules/expo-file-system/ios`) + - ExpoFont (from `../node_modules/expo-font/ios`) + - ExpoHead (from `../node_modules/expo-router/ios`) + - ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`) + - ExpoModulesCore (from `../node_modules/expo-modules-core`) + - ExpoSystemUI (from `../node_modules/expo-system-ui/ios`) + - ExpoWebBrowser (from `../node_modules/expo-web-browser/ios`) + - EXSplashScreen (from `../node_modules/expo-splash-screen/ios`) + - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) + - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) + - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) + - RCTRequired (from `../node_modules/react-native/Libraries/Required`) + - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) + - React (from `../node_modules/react-native/`) + - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) + - React-Codegen (from `build/generated/ios`) + - React-Core (from `../node_modules/react-native/`) + - React-Core/RCTWebSocket (from `../node_modules/react-native/`) + - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) + - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) + - React-Fabric (from `../node_modules/react-native/ReactCommon`) + - React-FabricImage (from `../node_modules/react-native/ReactCommon`) + - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) + - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) + - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) + - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) + - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) + - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) + - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) + - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) + - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) + - React-logger (from `../node_modules/react-native/ReactCommon/logger`) + - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) + - react-native-get-random-values (from `../node_modules/react-native-get-random-values`) + - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) + - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) + - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) + - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) + - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) + - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) + - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) + - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) + - React-RCTFabric (from `../node_modules/react-native/React`) + - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) + - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) + - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) + - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) + - React-RCTText (from `../node_modules/react-native/Libraries/Text`) + - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) + - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) + - React-rncore (from `../node_modules/react-native/ReactCommon`) + - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) + - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) + - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) + - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) + - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" + - RNDeviceInfo (from `../node_modules/react-native-device-info`) + - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) + - RNReanimated (from `../node_modules/react-native-reanimated`) + - RNScreens (from `../node_modules/react-native-screens`) + - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) + +SPEC REPOS: + trunk: + - SocketRocket + +EXTERNAL SOURCES: + boost: + :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" + DoubleConversion: + :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + EXConstants: + :path: "../node_modules/expo-constants/ios" + Expo: + :path: "../node_modules/expo" + ExpoAsset: + :path: "../node_modules/expo-asset/ios" + ExpoFileSystem: + :path: "../node_modules/expo-file-system/ios" + ExpoFont: + :path: "../node_modules/expo-font/ios" + ExpoHead: + :path: "../node_modules/expo-router/ios" + ExpoKeepAwake: + :path: "../node_modules/expo-keep-awake/ios" + ExpoModulesCore: + :path: "../node_modules/expo-modules-core" + ExpoSystemUI: + :path: "../node_modules/expo-system-ui/ios" + ExpoWebBrowser: + :path: "../node_modules/expo-web-browser/ios" + EXSplashScreen: + :path: "../node_modules/expo-splash-screen/ios" + FBLazyVector: + :path: "../node_modules/react-native/Libraries/FBLazyVector" + fmt: + :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" + glog: + :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + hermes-engine: + :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" + :tag: hermes-2024-06-03-RNv0.74.2-bb1e74fe1e95c2b5a2f4f9311152da052badc2bc + RCT-Folly: + :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" + RCTDeprecation: + :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" + RCTRequired: + :path: "../node_modules/react-native/Libraries/Required" + RCTTypeSafety: + :path: "../node_modules/react-native/Libraries/TypeSafety" + React: + :path: "../node_modules/react-native/" + React-callinvoker: + :path: "../node_modules/react-native/ReactCommon/callinvoker" + React-Codegen: + :path: build/generated/ios + React-Core: + :path: "../node_modules/react-native/" + React-CoreModules: + :path: "../node_modules/react-native/React/CoreModules" + React-cxxreact: + :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-debug: + :path: "../node_modules/react-native/ReactCommon/react/debug" + React-Fabric: + :path: "../node_modules/react-native/ReactCommon" + React-FabricImage: + :path: "../node_modules/react-native/ReactCommon" + React-featureflags: + :path: "../node_modules/react-native/ReactCommon/react/featureflags" + React-graphics: + :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" + React-hermes: + :path: "../node_modules/react-native/ReactCommon/hermes" + React-ImageManager: + :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" + React-jserrorhandler: + :path: "../node_modules/react-native/ReactCommon/jserrorhandler" + React-jsi: + :path: "../node_modules/react-native/ReactCommon/jsi" + React-jsiexecutor: + :path: "../node_modules/react-native/ReactCommon/jsiexecutor" + React-jsinspector: + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" + React-jsitracing: + :path: "../node_modules/react-native/ReactCommon/hermes/executor/" + React-logger: + :path: "../node_modules/react-native/ReactCommon/logger" + React-Mapbuffer: + :path: "../node_modules/react-native/ReactCommon" + react-native-get-random-values: + :path: "../node_modules/react-native-get-random-values" + react-native-safe-area-context: + :path: "../node_modules/react-native-safe-area-context" + React-nativeconfig: + :path: "../node_modules/react-native/ReactCommon" + React-NativeModulesApple: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" + React-perflogger: + :path: "../node_modules/react-native/ReactCommon/reactperflogger" + React-RCTActionSheet: + :path: "../node_modules/react-native/Libraries/ActionSheetIOS" + React-RCTAnimation: + :path: "../node_modules/react-native/Libraries/NativeAnimation" + React-RCTAppDelegate: + :path: "../node_modules/react-native/Libraries/AppDelegate" + React-RCTBlob: + :path: "../node_modules/react-native/Libraries/Blob" + React-RCTFabric: + :path: "../node_modules/react-native/React" + React-RCTImage: + :path: "../node_modules/react-native/Libraries/Image" + React-RCTLinking: + :path: "../node_modules/react-native/Libraries/LinkingIOS" + React-RCTNetwork: + :path: "../node_modules/react-native/Libraries/Network" + React-RCTSettings: + :path: "../node_modules/react-native/Libraries/Settings" + React-RCTText: + :path: "../node_modules/react-native/Libraries/Text" + React-RCTVibration: + :path: "../node_modules/react-native/Libraries/Vibration" + React-rendererdebug: + :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" + React-rncore: + :path: "../node_modules/react-native/ReactCommon" + React-RuntimeApple: + :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" + React-RuntimeCore: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimeexecutor: + :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" + React-RuntimeHermes: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimescheduler: + :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" + React-utils: + :path: "../node_modules/react-native/ReactCommon/react/utils" + ReactCommon: + :path: "../node_modules/react-native/ReactCommon" + RNCAsyncStorage: + :path: "../node_modules/@react-native-async-storage/async-storage" + RNDeviceInfo: + :path: "../node_modules/react-native-device-info" + RNGestureHandler: + :path: "../node_modules/react-native-gesture-handler" + RNReanimated: + :path: "../node_modules/react-native-reanimated" + RNScreens: + :path: "../node_modules/react-native-screens" + Yoga: + :path: "../node_modules/react-native/ReactCommon/yoga" + +SPEC CHECKSUMS: + boost: d3f49c53809116a5d38da093a8aa78bf551aed09 + DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 + EXConstants: 89d35611505a8ce02550e64e43cd05565da35f9a + Expo: ed0a748eb6be0efd2c3df7f6de3f3158a14464c9 + ExpoAsset: 286fee7ba711ce66bf20b315e68106b13b8629fc + ExpoFileSystem: 2988caaf68b7cb706e36d382829d99811d9d76a5 + ExpoFont: 38dddf823e32740c2a9f37c926a33aeca736b5c4 + ExpoHead: 1a1b30c6c1d125e9b8a199ca305c16a1dc041624 + ExpoKeepAwake: dd02e65d49f1cfd9194640028ae2857e536eb1c9 + ExpoModulesCore: 9ac73e2f60e0ea1d30137ca96cfc8c2aa34ef2b2 + ExpoSystemUI: 2072307375696c398a5d75633bdd5143fadc3d26 + ExpoWebBrowser: cf10afe886891ab495877dada977fe6c269614a4 + EXSplashScreen: a4ce3dd5d28d48e8b9132bcd9b58ee8e340db78c + FBLazyVector: 4bc164e5b5e6cfc288d2b5ff28643ea15fa1a589 + fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 + glog: fdfdfe5479092de0c4bdbebedd9056951f092c4f + hermes-engine: 01d3e052018c2a13937aca1860fbedbccd4a41b7 + RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47 + RCTDeprecation: b03c35057846b685b3ccadc9bfe43e349989cdb2 + RCTRequired: 194626909cfa8d39ca6663138c417bc6c431648c + RCTTypeSafety: 552aff5b8e8341660594db00e53ac889682bc120 + React: a57fe42044fe6ed3e828f8867ce070a6c5872754 + React-callinvoker: 6bedefb354a8848b534752417954caa3a5cf34f9 + React-Codegen: 49cfc291275676ba00401e4cbbb6931906d50623 + React-Core: 5378e701a95b000d5a0b7020149f428b854a6222 + React-CoreModules: 80cd03b1e5ad19de582bd076fb63114964e5a45e + React-cxxreact: d162761aef4ff8191d01fea602e2b981365f5f10 + React-debug: 164b8e302404d92d4bec39778a5e03bcb1b6eb08 + React-Fabric: a3d85fbd80e336d7137b77bcd6e713bb1ef5f9e3 + React-FabricImage: 60a42161a730e98b8391b71aa79a3dd01c91c117 + React-featureflags: d97a6393993052e951e16a3b81206e22110be8d2 + React-graphics: 98ac899ccd24a52b95607f6e936f0dee1df72fc6 + React-hermes: 7456eb2ac1cca407e743db848e39473e1e8cb67a + React-ImageManager: 5f8615ba4d5a191c7bb085a22063f12ad1ef77ee + React-jserrorhandler: be31e8fa6c5056976215f4363c018a09521eebdf + React-jsi: 673c0629d1347e4b47f3e8af50425b84dbe3bffb + React-jsiexecutor: a0ce7f28434a949235e5a849689cceae8bf03a8e + React-jsinspector: 37ce74bdcd2d604b05ad871a2bf500da50770f18 + React-jsitracing: 00f6151766dec0ab324e2854a9d4dfde0e1f30cc + React-logger: 70e002e04cc56ff5c12157537405d1644c050703 + React-Mapbuffer: 8d1f0fc6e7280a8ed6da70ece5f283ac5c8032cb + react-native-get-random-values: d16467cf726c618e9c7a8c3c39c31faa2244bbba + react-native-safe-area-context: 8c70551c8688cd584a53487aa1b9361e991a3b4a + React-nativeconfig: 9f223cd321823afdecf59ed00861ab2d69ee0fc1 + React-NativeModulesApple: 1cd770ed7dc463e55d02a05f7fc3be46076d393e + React-perflogger: 32ed45d9cee02cf6639acae34251590dccd30994 + React-RCTActionSheet: 19f967ddaea258182b56ef11437133b056ba2adf + React-RCTAnimation: 62269ef3c6723d51677b466247734c94a57058be + React-RCTAppDelegate: fff24d087c7cb05849a744b0c7288c71fde75180 + React-RCTBlob: f684ebda742dcc0869aeaf502b760f68dbc2eecf + React-RCTFabric: 908f220527719260d5ddcfb2fe0d8f52833fe71a + React-RCTImage: 71f8c1c9a4f13121211d7e179c5a0a1764a0c1dc + React-RCTLinking: f79e8f8a68ec7155d267922386885cd60ad1208b + React-RCTNetwork: d6c7b68b10b268c80cd72ef7cd710fdf71f69d83 + React-RCTSettings: 2e1d70025490790cc6ce0c766af8cb174390be43 + React-RCTText: a8d1d3716ad2946bfd96932c8a2bbebb07e569bf + React-RCTVibration: 01fe1cc2c7148e74f11ed8997a553399393c8fd6 + React-rendererdebug: 1d87a8cc3c81d95beea2f8caeefa0d4520971288 + React-rncore: edfff7a3f7f82ca1e0ba26978c6d84c7a8970dac + React-RuntimeApple: ea00d0be65f8dcf8a7f33a712dfda5098f8cd85c + React-RuntimeCore: 08ca132a26c286c6be4376a7db27994e5f97aebb + React-runtimeexecutor: 5961acc7a77b69f964e1645a5d6069e124ce6b37 + React-RuntimeHermes: c11cbc1cd10659aac0910de11f11dbc825a32785 + React-runtimescheduler: c5ba36755abc3c28a8cd327325b13599af586204 + React-utils: 08bb648cea0f37a0aa5df0c4f9ef50e5484ee0eb + ReactCommon: 4968ff446d467c4def1945125e59f82e3e986af3 + RNCAsyncStorage: c91d753ede6dc21862c4922cd13f98f7cfde578e + RNDeviceInfo: 900bd20e1fd3bfd894e7384cc4a83880c0341bd3 + RNGestureHandler: 326e35460fb6c8c64a435d5d739bea90d7ed4e49 + RNReanimated: def444e044c354f38bb0a5926a8583ba19d944c1 + RNScreens: a2d8a2555b4653d7a19706eb172f855657ac30d7 + SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d + Yoga: 2f71ecf38d934aecb366e686278102a51679c308 + +PODFILE CHECKSUM: 43d62c9a2cdb594df87b33661537b45c69daf63f + +COCOAPODS: 1.16.2 diff --git a/src/react-native-app/ios/Podfile.properties.json b/src/react-native-app/ios/Podfile.properties.json new file mode 100644 index 0000000000..de9f7b7524 --- /dev/null +++ b/src/react-native-app/ios/Podfile.properties.json @@ -0,0 +1,4 @@ +{ + "expo.jsEngine": "hermes", + "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true" +} diff --git a/src/react-native-app/ios/reactnativeapp.xcodeproj/project.pbxproj b/src/react-native-app/ios/reactnativeapp.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..0613758f4e --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp.xcodeproj/project.pbxproj @@ -0,0 +1,543 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; + 5B906A66AC954B3C8799AF14 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B0478F52474B4C808FD8B5 /* noop-file.swift */; }; + 96905EF65AED1B983A6B3ABC /* libPods-reactnativeapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-reactnativeapp.a */; }; + B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; }; + BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; + C2AA57E8CB91AA78F8ACFC80 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 7CA499B7C37DC82E3E64F2AB /* PrivacyInfo.xcprivacy */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 13B07F961A680F5B00A75B9A /* reactnativeapp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = reactnativeapp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = reactnativeapp/AppDelegate.h; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = reactnativeapp/AppDelegate.mm; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = reactnativeapp/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = reactnativeapp/Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = reactnativeapp/main.m; sourceTree = ""; }; + 23ED077BD19D4E86AEAE4B7F /* reactnativeapp-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "reactnativeapp-Bridging-Header.h"; path = "reactnativeapp/reactnativeapp-Bridging-Header.h"; sourceTree = ""; }; + 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-reactnativeapp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-reactnativeapp.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6C2E3173556A471DD304B334 /* Pods-reactnativeapp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-reactnativeapp.debug.xcconfig"; path = "Target Support Files/Pods-reactnativeapp/Pods-reactnativeapp.debug.xcconfig"; sourceTree = ""; }; + 7A4D352CD337FB3A3BF06240 /* Pods-reactnativeapp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-reactnativeapp.release.xcconfig"; path = "Target Support Files/Pods-reactnativeapp/Pods-reactnativeapp.release.xcconfig"; sourceTree = ""; }; + 7CA499B7C37DC82E3E64F2AB /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = reactnativeapp/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 92B0478F52474B4C808FD8B5 /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "reactnativeapp/noop-file.swift"; sourceTree = ""; }; + AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = reactnativeapp/SplashScreen.storyboard; sourceTree = ""; }; + BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-reactnativeapp/ExpoModulesProvider.swift"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 96905EF65AED1B983A6B3ABC /* libPods-reactnativeapp.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 13B07FAE1A68108700A75B9A /* reactnativeapp */ = { + isa = PBXGroup; + children = ( + BB2F792B24A3F905000567C9 /* Supporting */, + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, + 13B07FB01A68108700A75B9A /* AppDelegate.mm */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + 13B07FB71A68108700A75B9A /* main.m */, + AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, + 92B0478F52474B4C808FD8B5 /* noop-file.swift */, + 23ED077BD19D4E86AEAE4B7F /* reactnativeapp-Bridging-Header.h */, + 7CA499B7C37DC82E3E64F2AB /* PrivacyInfo.xcprivacy */, + ); + name = reactnativeapp; + sourceTree = ""; + }; + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-reactnativeapp.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* reactnativeapp */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 83CBBA001A601CBA00E9B192 /* Products */, + 2D16E6871FA4F8E400B85C8A /* Frameworks */, + D65327D7A22EEC0BE12398D9 /* Pods */, + D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* reactnativeapp.app */, + ); + name = Products; + sourceTree = ""; + }; + 92DBD88DE9BF7D494EA9DA96 /* reactnativeapp */ = { + isa = PBXGroup; + children = ( + FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */, + ); + name = reactnativeapp; + sourceTree = ""; + }; + BB2F792B24A3F905000567C9 /* Supporting */ = { + isa = PBXGroup; + children = ( + BB2F792C24A3F905000567C9 /* Expo.plist */, + ); + name = Supporting; + path = reactnativeapp/Supporting; + sourceTree = ""; + }; + D65327D7A22EEC0BE12398D9 /* Pods */ = { + isa = PBXGroup; + children = ( + 6C2E3173556A471DD304B334 /* Pods-reactnativeapp.debug.xcconfig */, + 7A4D352CD337FB3A3BF06240 /* Pods-reactnativeapp.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */ = { + isa = PBXGroup; + children = ( + 92DBD88DE9BF7D494EA9DA96 /* reactnativeapp */, + ); + name = ExpoModulesProviders; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 13B07F861A680F5B00A75B9A /* reactnativeapp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "reactnativeapp" */; + buildPhases = ( + 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */, + C2277CA7080B937B969F4DDD /* [Expo] Configure project */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */, + 4C3206BEBB7C68040650018F /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = reactnativeapp; + productName = reactnativeapp; + productReference = 13B07F961A680F5B00A75B9A /* reactnativeapp.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1130; + TargetAttributes = { + 13B07F861A680F5B00A75B9A = { + LastSwiftMigration = 1250; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "reactnativeapp" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* reactnativeapp */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */, + C2AA57E8CB91AA78F8ACFC80 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Bundle React Native code and images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; + }; + 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-reactnativeapp-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 4C3206BEBB7C68040650018F /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-reactnativeapp/Pods-reactnativeapp-frameworks.sh", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-reactnativeapp/Pods-reactnativeapp-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-reactnativeapp/Pods-reactnativeapp-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/ExpoConstants_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/ExpoFileSystem/ExpoFileSystem_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/ExpoSystemUI/ExpoSystemUI_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo/RNDeviceInfoPrivacyInfo.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoConstants_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoFileSystem_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoSystemUI_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNDeviceInfoPrivacyInfo.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-reactnativeapp/Pods-reactnativeapp-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + C2277CA7080B937B969F4DDD /* [Expo] Configure project */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "[Expo] Configure project"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-reactnativeapp/expo-configure-project.sh\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, + 13B07FC11A68108700A75B9A /* main.m in Sources */, + B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */, + 5B906A66AC954B3C8799AF14 /* noop-file.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6C2E3173556A471DD304B334 /* Pods-reactnativeapp.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = reactnativeapp/reactnativeapp.entitlements; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "FB_SONARKIT_ENABLED=1", + ); + INFOPLIST_FILE = reactnativeapp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; + PRODUCT_BUNDLE_IDENTIFIER = io.opentelemetry.reactnativeapp; + PRODUCT_NAME = reactnativeapp; + SWIFT_OBJC_BRIDGING_HEADER = "reactnativeapp/reactnativeapp-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7A4D352CD337FB3A3BF06240 /* Pods-reactnativeapp.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = reactnativeapp/reactnativeapp.entitlements; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = reactnativeapp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; + PRODUCT_BUNDLE_IDENTIFIER = io.opentelemetry.reactnativeapp; + PRODUCT_NAME = reactnativeapp; + SWIFT_OBJC_BRIDGING_HEADER = "reactnativeapp/reactnativeapp-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CXX = ""; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD = ""; + LDPLUSPLUS = ""; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + USE_HERMES = true; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + CXX = ""; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD = ""; + LDPLUSPLUS = ""; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + USE_HERMES = true; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "reactnativeapp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "reactnativeapp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/src/react-native-app/ios/reactnativeapp.xcodeproj/xcshareddata/xcschemes/reactnativeapp.xcscheme b/src/react-native-app/ios/reactnativeapp.xcodeproj/xcshareddata/xcschemes/reactnativeapp.xcscheme new file mode 100644 index 0000000000..af30646acb --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp.xcodeproj/xcshareddata/xcschemes/reactnativeapp.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/react-native-app/ios/reactnativeapp.xcworkspace/contents.xcworkspacedata b/src/react-native-app/ios/reactnativeapp.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..7a4af092cd --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/src/react-native-app/ios/reactnativeapp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/src/react-native-app/ios/reactnativeapp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/src/react-native-app/ios/reactnativeapp/AppDelegate.h b/src/react-native-app/ios/reactnativeapp/AppDelegate.h new file mode 100644 index 0000000000..99b0e8968b --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp/AppDelegate.h @@ -0,0 +1,9 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +#import +#import +#import + +@interface AppDelegate : EXAppDelegateWrapper + +@end diff --git a/src/react-native-app/ios/reactnativeapp/AppDelegate.mm b/src/react-native-app/ios/reactnativeapp/AppDelegate.mm new file mode 100644 index 0000000000..b27f83286d --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp/AppDelegate.mm @@ -0,0 +1,62 @@ +#import "AppDelegate.h" + +#import +#import + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + self.moduleName = @"main"; + + // You can add your custom initial props in the dictionary below. + // They will be passed down to the ViewController used by React Native. + self.initialProps = @{}; + + return [super application:application didFinishLaunchingWithOptions:launchOptions]; +} + +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ + return [self bundleURL]; +} + +- (NSURL *)bundleURL +{ +#if DEBUG + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@".expo/.virtual-metro-entry"]; +#else + return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; +#endif +} + +// Linking API +- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options { + return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options]; +} + +// Universal Links +- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray> * _Nullable))restorationHandler { + BOOL result = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler]; + return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler] || result; +} + +// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries +- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken +{ + return [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; +} + +// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries +- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error +{ + return [super application:application didFailToRegisterForRemoteNotificationsWithError:error]; +} + +// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries +- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler +{ + return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler]; +} + +@end diff --git a/src/react-native-app/ios/reactnativeapp/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png b/src/react-native-app/ios/reactnativeapp/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..104d8efab696e3f964d28536dacb9fb3b8139d98 GIT binary patch literal 191330 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

cf2$F9tXn37Z=E+}>Hf0bE=E4bt15^{r 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ⅆd;e$EQ4sMjtN`F_)qYrWJ|#c4Bot&y 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 aCXgmXtRG>GItT>9l9QEE2Z0d19)F&q0Pl>T zG2{Th(41xU+(009+Q%ORc!8J)2!uRrqp1tiRZ@gNogCQBES$_O+2Ib(z-SOiSPbrL z2DP(+c=8Q9Mm_{P}x|B(CF|gaVj}WTE4N7^>($?@K)A@dfPz-Eoj6Ct^!QRmg0vDnAJ1+!y{rENq4b|TvFgp<%iN^)0bd^-8B%NF>sRY@4 zE-HROc5{9x9}g62CCEy}#mU9P!O717=3@hMLAV7WoIF(j`bPsS=xSjFQI~rCujPQh zL}=c?V9pQ@4o^={c2910Cs%6@u%MtI2PYQ?7Z)2ag3Zm#5oQKwb9AHqj~S#a-Jq^E z&M+G%N2b7B!TI0QI=cN!Q-IDm;AYMoV0O;OUHu(s0sZ$lXLnco zzl&QyIV|lh9V{JTZopXZzsEYiae_Iyy>a^AO#SbV|Ca>-?J6n#dyW5A76*raFX0B0 z_5il=FNOTKqun&UoGm%jE!~{lU7?oJ9)Os%kGpY(NV-~@!JJ$*ot*6d!&a*QAu<&g zA3K=prIH!c#_@3zO#kT-ODQv$r3lTV-2jWRfx((!9tbxNgqNFz6AaC+HdKGT0%8Vz^mY*% z=%bk}EolDrw#|Q|kN?ri|9al@jU_PY|H1hGtnTJy1@km>wUn?1boW1SFOL76_-z(F|UcRqesADORRZwWGDyUTm1W}92K6SbHlF5BQiGWUD=i_0$c5&yszu`Bv zJK!a61LxZKjk%H@g8S+zb?7CL91QgM0ykHL*(>z%J^x5~3gGWok(9ZKGLN4uM-;8% z{T)pG|L+i4MhNI}C0U=ZnJio37s~OP1Ty)`BN1HtoW)$+;4oyc-bjcWTDrnpDv2<3 zIag;bcV}5Xtydu(Lw4Sm3%Mp)?HG7GZ_I1bc%?}0Wn}sGj#m%qrK>ymq$@Y5T>4&osBrd29BC9Nn zB7g>g7Q_lX|BuKvAHB?aod@!}EgNCfn*y2_ruNA~;RS!4?X3onZ-xLdWNuV3alpDN zx@``n9;&JjmjF!hcBN#4(UW&`Z3FZh)IaMLJJuy6W1QqE)d#j=NO-h+(X{|W8!;iz zO!lV(km>Ub#vx*Ndrpv&0tGJ&_?RwGF0q4z(6eEln4*C)b`FOb{>u6D9h<>F`$E*b zyIn;%!$=Z)!l?}VDBev>S#*~C*9+c)lCI({6r&U}>9^J*B+`g|(8g6x@NAZl0S|d5 z@Eb!TTr#li%)zqqCtcTJ)k_Ih^ki zsUmyp_}4uCW!^5XpWHa)GjYO?ax34i_h9-VSiIq-_{S{%U;NFw`!L^n27{U5#_?{a zwqk0TynjT#Fl#Lw##I7JPA{6rlqMo9E&*F0j2lr?o`yQN-|H19tmb7(f#uJ~cX zrD531UWSE*f4%sU_9QpHMxn(n*9{j;SEM!_EBOc|K?IDf<;RbbK z8HPNZHRJN^-xMI33S5iL4L@ulID@u_`-&KERS-;(O$E=zD#y$o96ED;k=HBGq&%rK zX5^Jk{G+NqkE^ZafVL7C5;V4D@e#_o{o_f>X&>V$$Aa%x!6)YZ2XdNx%d;4WF+127 zF*OhkPL{|(pWrf3O&o!{Txe@+n;Q}w3<0JJ0*^<5$MM8z0x$9JorIx^Nq!kss)pl% zPW}Te3p+UNOR5IG<*W*kPq~Yha!~AKzcsP{$}i_3aqnDtO;?`5Nn^>f(a>U5xfUKC zPFP$bzrYz~z{9!;r${;yd6Nf41f@4WuGGhX%!zyzX8}tn`7(KERy^*g)8nH##Hhn7zK&)8UJ zs^Vw=M7lF*>>0`sjyNTVoERz^;Pd7nh|Bk4#@~KUD-^%EeCv#B*JEP8>wK3atZ!f^ zq@rEDCDltk+RgY06%qjXw^SRx&2x?mt z=Cg;-S+Dj$TwHxTKeY>2oqyk|m?)BsRZM-qa7sTR0r`OPT?RZ$OX>=9a?Cv8aCiYj zPUK*T$@^Io^J5awaBd}T`H3ZvHFk{1LxIo|W#!=DcnJo(6w%4$5kuP%FcF3#!0Q(= zB_lW=p{+PulRs;SW5KXJ;-DoYe6YDH&GmV7SVv&H*I2FFxCvW4w}Y>>{hVIpw6{T8 z`5ah~jGJRKMlNs0_*}VzwE4&iX|hXjVL)&}TSw;;2_Bx>*!^%MM~VL1ktr&-JX~y@U>Dq9qF(G81vbZ5@D2jxY(5=@?Jq;JWGp}xFI^@Gr~ z5da}$J2OCAEdOZBm{~+*Zm3kJ950bh$uu?&l`|9kxhH3=si<|gW#H8O&!1_|Y)@7Q zUG?qLq|TDXX`cXzkSYJ(39AJmiUa?Y=wo?ql=G-|j09!Td)`u|)^&1Zz>jfeJc+8e zyqX*{Xk7Z~@4&9k>NgLq`YnRxsNY_+plE6FYienIjfsjX9y_J!$dg}C!NiIhDL2KW zeH1VbFysB|n_^PhzGEH`K0>TnEON}iTIs!RMqG{9f`9LhNS)MDT%mINMKfiKb<8N0 z0_MqrD5V*7xW>F)1+(m&Mkt#QdWEGmwe9v7HseZ@a$Q5uEzs$~T4pz;;088m2J}T; z%iUdCy0fmfwiZ%j82g6Zugqd|n(>M#FoPX}apaoLfu5S;8CKd3*ih>2Pqz*E1hM-| zT)mHl++Cj$lY!91%jh!^KKw1eE2asEk1yU`L z*&Eb&qwpxsk3xbaS&0*&&#@G#u{#{3k?}qIMw~r@HAs`#i%!yN_lgP%GXj9|Gz!_H zoPjk*+8dLaQJ~y_T10~~0dJak3~FRl)T|z2A<~wVAm5v@jQG`w#dF4c;kC2*Iq2bZ zl19SAb&S)6X;1l!WUe3h6b+V|^<`@6pk}L z6)Jtr|8VTWo9UK#hXo@Kvi**M+_tr~6+YkSqmo3oB?h{0Cmubw@g1SjTB|*uH&N4q z3T~Yt_$?nUqhYYdUzy%3-+mXye@Js9@%D%tp_4QUA-B1a|K{d|Hgf)fs{9*a#c*rw z(s59-@aH^+i8mYrUc7+|f*WEJV`F#9H>X~&@7l1r>7)FxAPFCbC=NU|@dy@vf@~zO=rSLu!zN>p+gCSztmelT^ z@2u!Kcytq7+BG;G;VXo1);>LzEn zHHEv~H%{5#v(wS#Pv)5+O5NqgkJ3f?p)terGl*5oI|YEu?xODE;v#EkIC~Xa@uH%l z!W!JAJXaJ4pY6qxQTB2G(DrnH{xk;>tj3ToSU~Er%hno;aa~8Rq4*w6quZnHPeoje zP%rcEZ&O+c3r!;HoAc3yz!VtR*#0qYO{s488J*@=q5=Z7va&D5G@4)9yzPK3APKln z@lk(WR2;J?rMun=e(UiI$aqZAuGAa8X1>0@6?AeKFQ7!~ttZ%4F-W8}8(F8RtYAZ* ztw2IC&nqv#w;2Y=rTx|1jx)@B5Lw;U8~(23-^6JQawGK;5)xPGCt4*X^M)E4dHq#Z zppxqnNk)`8ClC!lX_}&3UIQFRC0WR`EdOOM&%o722E?5?(b9_vYR}-{x$MVRK$x!n zXCQq9izzCH&7U1I63Wf!+1~V9qs9=8E*2aG=F>~e$7yeCLl@jw0A#jNR>r==9eq7! z@>+%jYgY$S7F)Z#$z8>s2c&Xtdp-k>fh+Dx>%oCU%PXg@$upTOI~rr#{`J`;e{!lpMoKgKyC^7VP*JS5+)_|E}jY67%t3vDuXd<1Qa+$<=K+1va>kuXj zrofMd@n|+iDTI#+WA%xamKGkcVIa-C;Uqri?y>@RL1G4^^>uWdy5k!e%PEt+Buu12 zs~r;RzTqNyd*lecS2By0=InC(vjr<9kQU4?*%djhy+c*qu%f3#_j0g;US`2;=ENXZ(|V2(F=Dhk6n2V z!TTNRJN)59G8Jl%+ao|vxVz*0G^A92G;_3t_s{M!bhu;kQOKa z5U6>1waQDj*V0eMycSrAFd3*84rwpp1luPc;w%srSrb?F%6D z^Ee3F-rklS{yAIV?{fScExSKHs!P{+=fH;aIz;YP-^j=)y`-cv9Gg6qO>V@zYm#m_ zCGwmv{Tu(hSE0L1_bO+Q%~R*wsYadl_I5YH4W}9VADOw_HpTw_#~`$0b&!L>)Jj1z zJF%jQN--QC+kZQLUm2*$Zxj2icKQV$IO*um zMG26`i|Gia1V;~H9MOg;7dzwwVrFl1xf1s*E2s@GE_J3WtYA0p6CjGHTw;?|?69OR zf^C2{a)~W#?P6@^<}9@#jBJ^%OZPjSTsc6`txHQF-K09JqJJ3Iv;vLTArY0+`iJp3 zxr~aILmvvN>OMZn{QX-oucV{~ha7U6O(&Pd)pcuIO<~i_CWL`UN*>C>VLx+K)lm=b zGN+UCW)>C}R?r&LBOo9!9-iGHa`z2HxQH59`f^U#04>@?tB~n?EPBgpyw7YiN=o=W z4(9!u>EsSZ^uDhq@7aXaUX@TkmRM93<>voEi2@-NevgnZ9{yKzU58 zteEGkXZ;vLnS;clL6ul?oH`iuV9itE$YKLt@_4thHF#*PVj`VY%?w8(oeewmx3x|M z-i3Y*Jx*i23@v+CUcdod)I3D&A4VoQ0F(=> z$$j~$ZpU{vJd8Zz*IR!Sf`+7_*vuKNrXS6Vfgh1ZfCN8}qj7TtIt6vU2r-lv5Gl>=z7h!Fy=^#_2?N7+&I6LD{vk+w;()z|P&m-) zbT-VbNqYxeyoyKd>guXkQX)zL6k0vR^%>yTeY9xQ%4V?{g%dlTZUYZG8XEX}zlk4% zjVtLM2QpuCen#?6Jro$00r<3G1R+j zveC@U3>AnaegORz#s}9MsgYkOQi~xFuXaUd=G3{1^vV@&+LRnm9K`&v5qSyB1qQGe zwBdU-EKM*cwE=WtvhrriZVxt>W4ZNx9=3lbvNJGwfdiu`A~!tbkGvC%6QVQu1iFtE zh)Sc!SJZoG9d(S1$a@3>6beW8Ok*<`AUM<=58y8EzVElF8@C2Aog>A?7eJBp`b_Q$ z(==6dmpu_WXcyQxo;Q)7TZqv0;N1NUa7TmU5^r~){zHN8vU~5x<1X98Rw%^1hSrso zBz!I`BvroEp9_BffKdBdm8VA4uF}lN4QsLJWYfKP^QY9B$CYpbit0vm2;-goTG@K9W*HsT%nzGKQC4l29BltjWH)xIC?b=S73!zT#Llj@#v zO59#j+|jv;085qZ(#09p0~#buy+JCbGhiJUWvL#A)|^EE_wg~ zc(QQ|l}r4n(MlT%XIUHao%9rCgM`Zr$7X(7(cLHuMg^DxyZZCB+sMes#@LDnuC7_v zcslCPT6w{SC+B+!w73VxYQrbyig(i)?HWC_%EhInF)QgD?=7zwyL6*Bg@INZ8ND^r zt^viZwhX>niFb{{qH<*05S= zUhamaz(*+)J^hsd1wal5517VExrN^SM=&7^VBOFvDZyi;-L(Cqo#1W@+SN<&TMgxi z=hLg1gN!-38zRp?1g!4c4Q=a>Fhu93v&)TG$5sGY18A?=y`Rl8TYwSOo-;~&VHs`2 zWK;4HaY~T~DD^+!|M-d%Y`|i0%lfsBAnpLDu=#(_>ExsckL0$swV4iF%_P#@NgyZS zE@L3(E}qpAUW1)7G=Vsi7ewk}ifM^e>-YVR*S{InDL8-B;r@mpfv3;024{2&25{3x zfJ=tH{h=Cv`}Ahr=eBtfE1<0N;;;m!tJ9zVLgYZx(7fkhrk@#H66VFhuvOw^{1n{nfYfQ6LR-d6%odZ+=8 zaQUqJ9tSCV(P(Br7!^P;BJUXuWSs0o8BqS`&)b3<_>kkY5@mBA^BF)yGiKxrBJ_S`wY5p>gZA=T~70$_L4 z=J;3BbTM)sZl`!g4moZw1Vy#?TMS7|9{^bED0C(`cSulcwPQ>j#xJRAwf7ktB`QcH z3XCty%m9cFSDlE$(<7!5tRHcnEiP}GHt8G-+*^e{i%1W?mR6Cxok}K^w-xczsxu-r zwY9T@zLJz|wu;SQ`m33kJcJ+a{1QyYjF2dUpQVc#zh<1~rpM==(m!w{7?1kFyP8si zCED**s(r3|HIES^=Nu`&jBb78>Z*$#0NST}=B1(T{ne^{p3%z7+L&`b5$Cc@a$)X(lt{bLy=hPmK>r{ajv@rYuOiEru#msq`{5A?$9bJ_d$Z*Ybw8mI~5Aq7A(27Rguor3Z0% zCUfR#xj=JeXHZ^VUNr!4F^HkoKz|Mpu7K%!Jafu_3nKv7cIvd zQ;v<{^)81pA=aynbX-XNt5-~E{o~xMtoHbi@(oseY;QWkp5&W<0YW|?SwhA+{P98r z`^GV6P8P{m=Cx9g48N!&I`9~^wAyFc#8Yx8tN!2E<(5GrLlujFE(k4pJT$XyVsXPC z82n!+v^SlZ34ABC5iXON65PlOv0mT91zKpCS!!BmC|#4NvEYzRR{dqNBK{dXk}pK$ zVYsc!T{xSPbmBZ)kJAJ2eRIq9DkS zw(HZjgw7|56cty}i1IzDG2(tsi^>=sFa6X7p}ap>{gD69tyuO)hohZJ>xZvLgnK8s z(5hc2(t~2?6sSKe|Ewn9S1=lD6s=wb0a3o#(a`}EwlPxH!_((;oyjND(@DmoJ9G^< zvoB$S-kJn4naIG({XSz zQa({bet{vw2$6OGtvAQV#}BZIjl;|6B-eKQCAh|0FWEWW|1;S|!UQ4eDH^9Cf~HXR zG-wRFOc$XOQ{eYv^v|P*nu*|+iH)nf<)|Mc?ms83(J2lG z&11)-=PNpi2LMGe!57mPR+JvYc4PF5w%w<SC8N%eDR#N}H zxNh!jCusT=RHMx!x?xq0P&0-okF;2X>Zwbzuv3Iew!R`A&!R0}jTl{hGy$uT!B-@D zayRr7P+yu)OyE~^3E^K2nb_bPNKT1CG}kKONHh;e2$vlOr!QybZm1yR zpnm0DHwcz0e1j;Gv=Q=LI>jFr^WJ$_PuOfJ;pVV^@W#}$=qVO>ah(MfI(<2i3&mUZ z|7c#cR-diC7o`6I!MGZyK{Uc@!uRd$l09)(039S;p~~m=U^#lG-da4Enj2$O3e^Vv zgD_=Y$u>c31;?#J%=__VHthFWsqdZ>A!fv%A2QrWhUn~t=zm9$pVBT`6KWwvmyVzz zdDm9o3O~0U1{;o-HnOWNwo6=Ok`OYHBrp0H3o% zWA(AA?^_I?7B~~U&mB{ZnFyLGk!GZEv`FW{Q6JF+=K8$;fVNYYrtg>ad>pF|;X+cG z7)RE-h@gH^Hh@&VhXE)5^vS*cP;3LLbm1E`KyCn9@?tACUO*Lr7>qoDpZUM^YL@J| zA-C14+Z5;sNoGRnDqaW-yLd+4X*q7vE%{Z51`;mY=YJ>q(C|o|HmTSE5!dMC%%gJ~ zT8Mq59_Mj`-{HNCXpV5TVEU8FI_wfD{`)z`%AZbAlT-U0$I!%wPn*QShj)Am?a7fl z%q3EcHdtTF&de1)vc4mb_R0dE2Rx?PX}JpVp1T*lImoJgHKXQeh`{+Dm#)sh;a#qE zIYEZ_d*+CcyKbVtxy#t@YnPdd^T`Jfk1t8XMf2j4`dcXkAN}4yx2D0zQ8>FnPK36y`G%Wy$wxe&V)NBEa zI&L`%a&X<)~{8-l58qr`V|-r43$T-<_1_T1e{Y(iSt@tK_sGg zk(jImbm1z64=)gF7LT$n#-1B;?LKJMZ_*9qCNfSAYgH|9cCkNuT!Y8hllc5=f;iI@ z6`%?{*NDpOg8&X)3o-GES8V!7KGSYr_md{ghc)(8k3UHW-irKLuHMt1>kUq#_7p~~ zE8}jVxvsi$LohfLFfle~6KFnhFOh~l*HP`kf76ple@y?$kSpsS;wP&i@IEA~J@cHV zww)D%d4zW@S|iR6A1^lfrqf=xEnh^ymSq_rKdj-P%C*s&c|=|N^H+g=ELau|Kb!QB zDnHqbt%+Y1g94RrTxW7Hvi@t4GK^41tq0#?fA;6d?o_21;8l!(SFLI`Hv|1*eO#BuDk8;y@d96S06r4oZ=PpDcspK zeFtjxqE$5K)1vPe#L${YDj@j5b(L|lMr`~t7N6STk1fDJzDlc5q6=)#)g91qceZk# zlgl2h+(!{*bHhO%5c^~b52dmNVVFXx9Wwl^y?@8S?pu040h1>H0Qc{2k)`uCD?l^&Xhw}p!cJV_faM zZxl)9)L>+pJP2+DsrE zD4!|QcsKQf_z|ZDW{X9OF>19aQ3DN@ZKtyH*pjd4!$u7<4hWWu^d$OXqoAqE*9h8*6lmn5 z&?4B9yl5KwgsZHjVn=ZDB7hZwb|k@0B)oX}b>{rJ2m>j#XCqnNzD|(zxzn-8am7Qo zG1l6zL1(hdC$|066W_02VB2fh3-p;_P>2t%dUbSTc+OpHOs7W>oMq{arb1ZI6$}kB zjI^Mg^LLhIT_@-U9)xYS8dBX%tH zFAee=9Nvrkn7y+l9@Ix@|3%b_xx^lRM&ujv^>gb%CeSQq_HsNw3O3TYuUSt1O{Sn zn~!aW)n?=5GfDlb=^Wa&m1LT1Ir;r)-=q%+TQ zTMMF`#mG#=B(n$*{3-^omVT@KPx#3KqWF)@Qw>CZG4d7`Jy>T)W_3nd8tH{;KiB@uzL% zrYxPfzl{XZk4IhT%vx+Mxv7Q})HSw5hZw-8L$h(5iU z=a*un7VR|x*h1LKVWL&@Z^eos9IxCn7fqo*iD!>4AMbY{-g8Cqru{_?Yc39~(aA=| zJgXy!|5X`l?bb+V&;@?x!#x&@taIB`sm8@~Pn$lUenN)}_U#$k^~>LrWq$Ov)&s7< zx#7}r?G2ZaNo&2g2K#=%wbLrm*sH>%!^;dP9=@fkm!XrUzFF7Tgu9?V$2$a$#+nyZ z1O?(H1V7FmP-Vu=hvgy@Tn$>0vOg9Er^Te*)s+o81hQ9kg5Q5BH@ouU`NCq|)&ynW zwc%*}u|=WlPl0vQHG`mVvchk?qRr`-ta0Usu#t=}OnV_ZrlZ4H7b%|^K7ZwVQ)tJx zq5Nj&X08J7Y)Yek>35G20%+}nmGE^NGpoUey^-V_Y)EsPp_bs|d7qBxq_1zx`?PYh z;3g5MVee|c|2+%7S6KC8I&|-&;qJT%Geq6g^-t@MYyFp30a41p?HVD#&x<?&YWV%<_1yal8KDdYXcWKA@5x&b5Qk`HHg%LqT10TvXf{#^q0Y&mb%=nzx| z4^4hAfH%b7T$n+7=OFOC+2)L7)(~-KdIv$~Bt~vcd7}mrpHNZC+|2jJYJMg+B=R-A z3ew5Pee!1Wm3K8W2D!7<9O=r8OGouxH0%tQmyh+((mNvUyoT?0F(T3OJ8F7!O@o#c zWo;rVY~5vk4`0s7hlH?ejJd1kCN6l1GNj7piX`4o!-92 zbz#+IA7P-Jse&tiClf2X!qJajk_{-`nF(QSI69m?#mvx zh<^0JZUAv6OIp27JOgx9%_~hb`ZQ+z1c3_9>E)XxZ?rv%(KKf&6}3N6W;&~m&oesH z0K}8<&@0pej*S!3?|fnTH#(n`iKh^BO#U3?PXK6(dg8e_$Kffirtd#qw!DdHtmM!~ zUtTsJKUH4VSssvONI@U9v^4WN&kYsA@vin=0r5D&C&{n<&mL8jKqw4KulZgdJlnQ_ z!e5|$*45r5pcCL{dAwGxcrATy@Q6buhl??mEjOkq0**n z?@n{Ma44{nw2|M*&DjSXayBpb{sYPs6U_+JOg)#86VL8hAS=Aaa;ZbbAAu+^0q~&O zN~?SV16o#H`d2#>!)>%&;V(DJZ0wiZqMgWNyf9JuAoljJR(ZW-q^yr#1B)L{wN;(y zI0_#JmKtQkWRGX(r96$qFp<2wGmftxaqVHNSxt5Jw6`=m4}-TPEv0AXgK;ph{_v_` z!-nEc{6qTiXxN|7sy1!3ostw)yXo^w1nLKd+(lkvf!ll;oBOz$Zz&beg&O8QL0fyo zRZqm6YhWTA=L+svS&#JWs?Qu7y(4#8(QM-Lu*b)AYHDA- zd;9Sz3mim+iV*(Gs(E%~nc8RrqZKBxS7#XGvtP`2s84w#5p^}{rho|)qwV$QhXXp8SoSguZnR5K;g3gt`Ki?e|qjAW$dXLP1eL&_{%FMI%v42nLxmpZeo-k9!$vsFj-3JDB+?f!Y)>h6WDc( z3R=%QaDPeWG~``0z;n9If(AbEW%8!?q1U ze#(BL0~+42s1AT&bdEZG5wm27cZ>H@IM2@Q4F-;CgQxRq%-OV2e-ol+23XU2?Alzj zc0_X0X8JqR(6rxKX(%m+0ZArQ{jg?}*jNsI50T07d46)v+g#L;unT+FF*=|h<*>4c zpm(^6ZS5lsL>W3s%B%^T01EY8X9169#A?xp{Bp1y>dzDD zAsl~1&L7UP`Crj{-xVmYU2vxLUY!9&Dcf`Mj!&GP=~>%Oz;>WRC2?Lt%%xvb=jQ!) zwzk?-UOnFWEBF0YFvSgHjNgu&4JIKQD1E(wjW^Wu40}zJ?`nRLN+dJDf(zI>3~K&t zlT0WpyfLNuITBuy(%WZ@uarfx)JJ%}5mI~+d;PcfuM#MPc%sHIni3EweQtLbmzk|= zdgb!8wy~*)gB$u>aia|R6pt;TU8`uVcya8eg@7f0kxteHiU8g5j3ukj3=vsDvL5kK zCr53jgTJ27$_=?BN$s)gtom8%9#ZR9{Slc%lurr{R1R`^Lb(9EU99sqR;*96{T$jM zb*f({8gCo!IPnB!PxQf$GhH+fBMq2PMRS59x(vRlFI)UFVh>OEg=E{UR5r$=0QDI{ z_Y(a+)@En2{hK2?v;<&RLYV-)S!QVd{q@7Q131aGT6wiFb`n)*Jjh(8YUjAY6^9H} z)Mmo^$;&WFLH^5<;LitkNrY;Ej43W%V&jfXaerKYN994@2&O9lX&%cRix0SISJ+cd zDfBb?9j|$$3wAKb9>W?%`iAL@s&E2XESUdBAh0f{Wn zO`Hf;Au60}G&8v8Ve7VtHS@+N#gBmjcU?@YnRRd7ZZZeo(T7Jkl1rzNSkrl31-3zDt z&Cr^LJIgXz+qkLu@P4r?3)26T*AL&XAl2@hGMo6gUURQK0^G{%zg&-qHMZm5xK~lD zzKgLm%@Tkqp3mOH8P&Do>rjNYNq39BR_6SeN2#2`j!}|;y+;Ee-E8oFgfFg>xSfFL zTrz=OjnjY(I6|hRUq%^s)t#7sIzO`i;4iP744MnPq3(=_If8uH>X7QZ-$4~a`#GV+Zj>}()&AqYdA_N6RX?rZKKO6X z3iZgn>M$2Ak*-1}(?qXUC{ObQKP}4-{w(}7X2N?iNq~$Q+d{`2xWNh#=%CyY$a|es zH616<8T&|OMr!7^(9K^|Qqsw|_?E9=p=jXYR@q3b*RSlKn&*YQIS?LUKhJPmnmjlg z#I%u*C&!*!WK8Gq1i{z#yJjlqMKow*pL0Ly>M_A!^LAhZ`s9pCVg8rgrqmfT7ZUq{ zu7?Vfp3S>sF^&QoV%pCM42PGDc@O=+y8)C+34WKv7Nhe;DE9~nwp7LvXi9;b3~+he80AG zRnLCw;66SA#lWu09hHOMY>kG^l{iH822Dd)etafanj5TX-+$x%t~2VDBxdch*xg%V zqF|~dYzYSPws=CJI(G#gGp6vX?(?sNr_#T15$;+dfG8p{Ww)nsEDv(%LsC8dXhSqG z81>S-jIbd9`dL7>f|e@m0>s?~O2l+5M=Bo-(N94!{z;Txb1z~feDC^;06C$gq-#(X zS%BG#5gs7t{YKx`*v3(!zqmf4ZnNt}i1X1@V-CZ9wx3VVmZxgj=5Y5BXe8k!$^voO89--}+ zP8&}r#eT}Q_=*e467lO+S5M5n@4wr%lnEN3(F!|99l+#Tk~7@64q&3b1b%bH;HCoy z&de*u{7aWIto5P@zm>gj4grao&2I1Xn?}D%C!iZAk&$hmNpQO^5Ri9dsr4Woo{hxj zR~wv|xJ~4N(%o3Ec-z^a^)xlvgq0>nF({RdJ>?M*cWx+qEuu$5JE`|8>Z*njj3#<9 zb>W}8sXLfH!#Vv(Roo5{9=E4#fIgSqjnGqllHsKV`4W(c6>&hudT>S(Ge4F}B*F|= z`W}4J7i_&6Ko5y*&PzmH6xY7$UHo(#wwe2Y+WE2 z#i%^ZRCpyJkA>PO&msV6=NRai^p8`K3%(n#aV%csEmlSzz)DTI2-&0xqFPj#2Wr0o zxjBtLGjkIaLVx(2cy=Afs$+B1Fv63U$CzWzSW8X_-jy#=WQg*!7ZAn=oQiVJ_kN|43A_qB?}~2 z0choi%bjFXUO%U*zpO2{4fES+|K{KYGOT!$$bl=XhLlYSgm9j5P}v5S>GcrdLiyNN z13-Btq00gyK)ZV(H{?llAiEc3z=vs@llb7NOnoz7s?rhK37aV3%60L?L{4^XSx&Bylwdax&jJyG~(kP{BsC=El3mE$n0BzG{D;WFRv>*4{ z#&rARU~g#qY^y7|z9buLY(zk`ls-zDupmhIx?Rl2Jta2Ivx2tmAtfv_3camQ zMX|Gpx<@I#(sl*Ux9+7<`|7mr>1Y!JQSu}?^LjwDjyTN-$zwzFt&d9NFiFyCS4v)w z3DReQPu&_AAKR}t1c5`oH*eXUH*e;!=CWmu4&s9KoVj8(nr)!Nb`RX%Km@j2;YDC2 zNm>zlFPLEZvzsc+7h-sdH2HbDsHhm9$Oid*+N@cRQ~6=uow=-GJh4SL>$l=O>wMLs zp`7~^iw^`c&r@lVw&Uteb{`Zlgj z^MWUyH!aw9cYL#RZM^Pzsl=y`F+v>9_ZL1DwkyRqZ=^#> zk7nDGoV)VNl>FIQt14DIrL*dmDmnrmjKNPY?maD%Se(Rw-VD~viIHMi#z*Dlr(C>^ z*`bkzJHUmGP`-C7-EFXS%D3jclTkeYg-NwDRSD>G*igDD)dp^EeTEYk`j<}q_0s7) zS4&r*0<4P4qe9R-#2C}j=37!-rNP{U&s(;X1(eylvYa@MVfgl%pkvDtjtIz!}S zeZECDrGAljCjvTgOW4oA2wv>PKHhQ=Bev z7Ui|DS}Lwdi0po1*mDDKjVI+lU?ry6zWy+lX+%)N-T1^Q;GK8xPEt4Q(dVQMVWTXT z31}E#p8C{tDL^ zuJ5(U?-eI@7>4muJ75w+34YB-QylBpH5$ONkM1Xvr`4i5A+Vr=IiMS_A&i+sROK+X z2VfQ3C8??dNC2({vEOm}9DKo{ekx8pcfev@vu-GD6d=Fx##QFW!t2pM2bHZQYd@J{juZYh1{2 z_WkZmS{MI==VRU`snD_&laF@NQT<%?8hob1DqON&({Qoc?9db;l?*Q zy<##B=)Fm2hckXF90*@o+;H&bNU{j*fsM%G=OAPT(hSPb5-#-Ho>4>sqJj0Z&1nlJb(|HTlP|Kn|nQ;NEIgHKy z$0i*JBxr_+xiXK6`K}Dd>T94w`&U(YzB`B43w2%~*f?VD2_X*{hM zd4N$&Fe*r0bH@7QX9?&qE^a|Y4&a9Et5<>S&oQ5Jrzkoh)=I(3#0fb^i7@;JlB;ZF zmh^JncsxUsKRypzx$@-8tRk9k5p{vP?VoxO2!kS{FkhJ)-XwfXh5W!bP7}eBLwlG- zoNB6nn#DRfwqNlS0rd0cgQ)~sE>wKtNDsMcUx$KlWP1`@Zi#@hC zaS43iA%BkrVd%2|c)8MN4d~> zMQS{hM)_^*&_$!<1T7>^+lNK&X(gi(~s`{vjkp3y4 zJ@b=@=J8B_Ny7y-yZGYKZG9Y%hBm&^k)CTuuKBA^#6-<%q-W`|FQgAoSRFa%OXKcIqIER-%( zVEK(wX-YzJ(Jv68+<*p&p+>+R4{I+0Lc!hxg?S$nhq$R^{nN-zvTlLr7atn@Qq};y zVS~hhS_d#BES7YCdYo$b9Rr=9V3KEU-+)89Qfw4@aC^@3RSkb`L*l>!-5%W*Z+fH6 z3caLItH7O%L%gmA>$k7XVdu?u$T}bRID(x&JW6=rGeJ9X%>Nkoi~(4i?fO1DNPKB= zKR9t)4it?eN28SMnI0eD(^sh*+q9lIIfdpr1K03X9+^twbcJcIAS5GyDta;q z_)g0?cOkSRn@&^P;P6(6bn&od&u-b|@pv?vVmHOEGcMHSdeC%GuV+IC(r{(f~4LgNaT*K#<<-?PVLSty#X{7QFCqFl`K&{(YzO=yJ~V0b0=^Id;oW(4BB8Y+E!g61oG*iDM-Nwcrn> zl=1m)NEEQLDoG~>D4!}HNX=)pY~+3(ML7_v8;sDp^3_4l%EQOWkUhSkNx%*OO5 z3X|h^M6=ZUv$p>iNoO5ZMc0LKI;0z=q(!GBdH-Q6A1rIduElyo-;(nxoC z>F)f_eZRH*!?pCznK^Uj#NN;I+eU>h|8G*@c_V?Uh7jSPe>-v;e@#m0B!?zs@; z%gvA+$geFKi##xblche+k9p%2chvp6Wj7xd$Bfd^?RT9{l-$x?0%q{qpGao)L?rO4x6)aTPBg(cSf zECtt&kzUDv@hp^hrTg53Ln#ZV@z0M#EQo@?Ll>hl*YIMqMtb%*n6o#LD(1;ntak2} zipK?qS%EP)Q@~+e*|uE`?kqha)uHm9!cH86i;Y3s8AN7ZUjLN4`30LD? znK%VhELXR!()b^1ml~3BPuUYFLnE@KRKEJ2{uvK4$#|qqLs=-R30u7RxP7<$Z`=wc zw@xgN5xm1Hs>H;CH{yfUd(@x45Ph-^q-bfgcVGiqs{w)7KDfMZaYHQC1 zNwOV6y}`tqRwcdMT5+y2E;wJ}q|mU97L3byGRX5P?4R(JiNPz(#5N>uLAQU5md)T! z1ut8%1a@B-@sM-@5z4E^_6RI!2q|du3f>sM?Zy3JQ&W?`IQ9J()s^y0N5iWb--o-n zQ5K`UzX8BT+ZL{M6y|a<DkK_XZLPoYQ?ytW~!}fKv%?F{`$~Scl*NLY2YNap_OvFmLD!9fmm!- zq;V4Ya3TC_oa-2lH*TDAE`%Id8@RqI#R40Qs`szW;ml^;dMBd+)?B9=*%eA)hCE@4 zM4qmlktiD$+EN4pBk*^`$hqPimxsfE@;|+7D0Dp@>h@flY^mWf<4Nf-m9|XSF^QPY z>3UNr$YZ^SYFvrkogd%Y+@n$VJIwMeA=i3aR3E7^yLQ*@*ust2bd^)xJlmYb8|kI( zk#Vdb3$ad}c+sb=rly9g>|)geRe*_xHw|{^pNKN^L@`mGw>AO!ICWcB{3SwCi&VO_fe>pU>Io#CWWZfdJt4Zj}Lo%a>?zzxWMz8R{X~0s@jVy=HX7(^kIUK#7sCI|r zsB|NbM$vJ`l$0ZTCF|?&vvOzS+YX}k(E1OY(w!VP%p9~2xN;)03TbGht@TnA29}Bz zW0oCI1;g8b(`IRlPZfAU+b0N;-tZOk70|Sa`bUH$|Y=*2FFcnN17OT(Kh5g zL@_m#bkwbVI35&LG598f6Jm0nUQ_$*1dYidavQDeW3)_gSl9}+P*}xTaYDU#vt!CO z=D}2{9wGjQ_xfL6Nrcpo0WQNXt60b?IGq$&mF2C=JDmC07E}98QD+VecB)UV<;-{GP_f6lm>*;G%skNBQ}~Z73||E zHTqofDS~h(p3y(y4EL#*avAISad%Lt_!x?t@@>XIKc$4l5mfzt%%!ctfb2g4qxh|o z)(M~33E9jFjY*3ojVe@>U+%JDP1XWTE8mKQ-X ztI-7uOXkOg=eSNwa_38kT)Vpx>JlzwvHMX-Qn_ocUYoiTIPi+jS4(OchQhD`}D zHHal0Pk-tfRv}I&b7#zV$HqZ`$dN76rXq5X)Bd3B?ry}do~khS%c7WyZ6y%mu` zt}x?E4+O5hlR?yUhl?fgje}8*_(UUGA!2GV3ol)~$U%y<#9M(umUz$z5r(yu9bARr z_Ft&Zxf)PEp)uV2W5GPZW_hIo;&z;Un7|TUA3m~X)zY+SX8K`~K`4lwQ;+-_;zE3w zaY16<`is~LCn+LEI(&2%oHyar^yy7T>SW)2p1u^(u`La>0jojd@8VHKd5s*Zi`SWv z5*dA%?{aAyc2myJorAV<+j^`Nmq}I%GCf{4C#W2_B0$N7uZTC|p;{&*R(o+S`MS<@ zk}dOVEuWJ#@12-y@~6WE^^RoagX;83i-3uuyb+~R_-ZA8@djUrC`jPTbD!o-&OZFR z^Bt#R@Up?x4Sh|P&X(_6zE{BR@Jg(foXV#a1IrxBXF=byVzcD3yRU2MgZ9t5RqrlW zD;XZ-!r^+?|3bG6`6a|xeU-W6;c_qtGCRzotH5k_OmC=jO3b!MQ0wKlqc$#hA5!9Y z4^Fg;r`ufC%WL;@8Nt`3%Eiid0D*uTGnalO`A+I*!HmXWU3c9YaiMB2Sj=&n4EZg; zMO=#)Ts=7beGY-_y9!?f@tqDPXqnWus%ss2Eflyn4}QkT@^C_2zPA=0BK|f-iv%~w zJS-45b$>~>m4YTxdxL!tW!U*_wq9iW9C{&@9axUB)JSvi9fLUY4S`VRq51f8?+~q& zmY}(0Ky)~^@GBeW6Lm`2Kr8E_MbC^^YsrDd%t%%pPZLOHLlxYg%+RApZ#1)U=)fp zvidA#wQewNXSHC7pFC~<{~KI>j9r_(s&k?;=K|;VFmiE~Nu?ffPN2IDWFUpC0ek?r zH1rtRQ0w&9SqZSM;J#w{fNJRL$4z`6#|ADs$of-8!Xa~;G#^=$_d`CF_1y<4aPgrz zZ^qL-e4b$wRj=m?(=#JJ*V}^i>O&mL+<4-2H?jjjWHS2{F|vx$QnKlD@9?>28Sw|A zG!%^vq$z+<5U38YA|*?|)}HtBH;>mB){Q#g*_16MU})N`WZ%8EBK>FGhUnoE@y)!- z&Wl{(kbT5Qn*|Inh@Yn${sly5Z9BGL5zHWaLxsJOgd9iX zX_*pn{ajp_Q>Jk8LCYD%4yx&gNHJ2@rtTd2rjE4?O|`WRo4AxlC~~waTP;R2dE>0N znbTbRSBG>yZ(~TUK$^kYIn>HJC#`wQb@T7%tD~=_uCvoC2(`}DPKczrKtznI4jg7& zc;a36rJL{#fhrxJzRo1Igoqc!&Sz`p9F*tfF9AM<@iep5r>JDVcbYMPQ}gL?#8AZ- z>t|h`V+(k=O`@rf=V}M$9^scCZ0&7{kEHt}m)E`#V&U_C7J*)R9uM+BQ8;?LIn40# zaSyogo;uQ4gaQjlAyvTqET-p-ZTF9tzM`_>aPCr!Olpyqwwm0@FzUFNL(VjIa!yI*LcDS4~L^*ibMgE*mA*H|~ozdDAGaKXtN+JoNR|19_3Tp$6=< zq(qz_5H>$8s|a=HGQ^qh6{KTz-VYQ`9s>twW5`p z<9QfQvy_Z-@{M3;RZEIiQcLcyCNCL_m&$tWyf{>>vrIyvGvhmSLjvtMV!k&l8Jxu! z6F5mGTYcmpAD%NQ4~qZ>hrQr5vu5n+zwLh~`Iy@>5m+X?4@M`+SSHwzb@f-7xz5%wXvLb7Em8Y0{-*l7;r1x+ zoZ8~`yKJ z!h)jsS!TN_j_BzW(i%N`?_op5uld&^sFriGMn^s6=lGyy1qU6(l!`wR^KJMU!eyxM zlWF-FNV`$!a+j_9_o(c8!4wN&d}#B)(%ia+)Lzzqek$uU>EhP2>wO$#`}U<6oD5y2 zi2PgUK@a@){UW1Uzz9J|i5=Z6o6A_(+{j4~l4v*o_i zI_ylmhrSL847Lw+y?BM~-N3qUiCgGx&ji5<~JKTVIB| zv9-@Yh7&lJ!0+d)`@3!E7bOjMTwQ5#^*V?@cS`hU!^5fEdpQElt+U*-?oG~2pcX}f zGoILvasSsDk#^PRLHd`G^2q0Fq@CZAYP%l-tHHm;6uJ>E;b?c;J=R&R;-z)*T5nWq zt8!#Q=wQj;8yeES7I_(VI8LhUfzskyzPs9%t{0R2QLdSLouD^94U}38O1WIP-l}X! zVVi5MmL6S($E;}rRjUI>Gd?%lHbw-zh3Y{}#{IVqqgYJ-^_HC_&Z_`)0VhW-)2;Ws z&Ba^}*{yefbTiQHNunmS&nK9hz=#Bvy}DX{gvcKk{QMHT&Ul!R<$_$2Pjs!@NNk+X z_1KDuh*D5R341NjSUnn%YiGh+#2iKd3hIq+s1x(U{WySQZ6}e(3_yh7;UuNbx8n$> zH@&*0u(qdIpW#0&?K&tv9q+R&NBoS0AGK?K?!{cw?2toP5oELE2VZ+L_a#Lx^AWMT z;R+bx!#UBT(fyv4c>I!gMo4usIssdg;w^LQ0GihEgjQhQ@bjrxnHB}_sj)G3Bv zY*|4zo1)f37QVdMdR4x6*!28B)B2GC-UH1BGsL!flW%d`%@r_=ar?8q|hG2jb{sc)7R{!0_ zD-EVCa^NbElo^$A+_&GpU4c5Uxz_h-PPIK8x$jq+=F{={q;96IuirL{{=Yq$A6Qxu zO?=~hcFe!x9Ev2JF>@~W*?YfmqeR3==&Gsd&+JcQ(9FIUHJpDm+JC)QHkYRG=m^X* zDE3hEnID_n#%bq2+*UrHe^jDEd6;#Bn>r*CSK^UBJ z8|Uq*r{rUlVXJ2?8+Ws0GnH8cZiZ8fxSi}9yX$mZ5=U=d))SQ|zY+gkGiHMrqE?C@ zKD=Za19ynPY7D3EuzRMy{+_hJ8|&W&*}ur|R3`}9_NW~n=!F!{yzf0)Ah#FMol^BN zLTxwq?G#K!ShwEq=8&INm+9qnJ1P2%9`1)jK-Wqi6&g>8Z#yZ6_ z#oemUQZd`4%D+m5S`s{I)fMk7`3e&5$biq?xox{w)&C@8Do(OixU73+r^yhdQDXyQ zyf{E0FA}gLDJ?rT6dX@+y!+E~d#Y?F?{=_s7{^^8VFv$~rOG?Y?k_auii?oPs~td} zB8W!$2LEz-3w%rs7iipCbD9)}%B}D?m=EOL8~*D$7WK2py;ZgM zKqSS{U?;-5E21Db@JC2pP`bw@!t4F}uP0}xO8TBLuA`)Q>m?wnuiZ?q>Ky$6b|Xs; zw1-ru$Zr`wRipmUbwf%q>hE?w)P3W)&S#)T6Fu1$1ZGmT(o4&PffWvUoNn;G4USJ{ z+@%6Kq*)=JPc3_}liaPdxX0UAr{(tYayB*|9-h^!+tcfV`BCBnvC_)?<*1o70t;A@ z{X@D_eK?v!7<=2&K`Tz@Qa2O8f6XJAcdc1C&O17*}8vo4apwb#=8GY->>{**!FC|1F66D6jiY@qV~(6td4A zrd>AE@8tM>szU!&L(Lz}u$^Ae&8|7tz|m4)|~i zm(gfCkl^p9wwU*SRR9-`mW;>gw;m@j(N@`{l8C!2A$0vp))C0i1B{4C@Bm*jXFmF@ zsSWpS0%ND|a~y%snPhLU15MVUV=h9f)k&d|%^2YWS5MnN*{pgp_0|yr0J${u#%BIm6T<>b|C{&%XKSxD0p2SPoNc5+Xf-E$lc%zXPQF;A_X|v zRwqOb^jkc3i4`dEFxSm9CUa6}M5@o1d!OgbaSANO%_9jYB!d0@*hcf{*@f#PFK3UP zA_uE%ORwzoB<@Fn0qg$Mtzet8gQNCd)fY?%&OS(W#@D*5oz-PUo2`Hqy5uIDPj|$28r) zwO+)sTE*02whT5?5g1c5<IOog65XJ@{>vhNS77UBZxfaMPuqF`*WyXqK_{Vk?v!-2LFX2aV)^och6H zsOy9V>=6F^0#7VugyPtJmWubgYrX{-p(cxW{-)M9Ut)xcWUNF82IX05qPEexIQp8j z%cc)=ox<1S6STsXNv8hJ-#>L?IW7kLd^V0J2d7>48l$+m)!mMZf7STfest^l?6>=H z-}}9oj@zr=Ro)SHeUo^Q{cIyl$R>RD5Dx9^(iMjq4m@D#pBxe`J)R!*=m0X9vBjB) z`swS^p@8Npb^k#jb$TI$6DN8ztZV0Y-?mA+yj!l+?{iGXH?Ts!aC;_?tlXMYXOcx3 z{)HQMjQGCCN8kumoIf`N3K9N72Lrvq5^;=8=qb2l>f_g@@Wb&bs`{PK`ObYVH_Q#%O_Iw9qu^9 z)Lle`%l=^$ZG>axR?bpC(^Yr-x~P{;#G(Kr#AHHbyGj424x8#HZ|oz)H+;1_4}&=s zEuNaJWA21x7&!Y0{iKRDbJn6VP~6S~`Ue|07#Xn2+ zJd!x3@vb_Oyw5cocS!~tZQ&QdRNmJb zz|$cqgwSLR7GD5oX%np7r>ReEDbbCxdw3Hr+OA*nWEx0!;xp-5l%49RJ1EoMcPXeHWtw9bkK%>>@y$k9#7S@qeZn0S=E}b; z-I(1_|6F#KcE+r@((FS9GYm%aL)n0Ph7&*pVQK%# zAv-Uc+>je6>=w8n)1EQJv1OW}OD9gFCI>05+8aRtC~{1ZEE{!!ygrZ{50a5ReimJ2 z2%FMCuBSJ*+C4!JI@)g7rv&dioOLa%A`eSMAe zeH{F1wv-M5Pxj=VHWBy5dOK98jxNrEGs5-rXB+pmC1v}u>_S%^`&E5!w{2(TerHqG zKp_0_-@X6W&QgOBJ?R%n&acpIIx>FIim2{*H&~fai}u;3E*;-8O6C&LnK~EZjs+;| zPdR5C^(ifbFaGej#T;3RHox82jk>Gf;~qfIY1rDOK1AQ#%CF-wk<|STM2_vvcxFUc zxp~+5GN>b+2}9gG6ksz-QO7$2k4=*Gg-5!J!;IQFlYN3sTX+C{BZur*?M@5?j92c& zuaF!OnfO+Pl&ugB`FqO1QuuSZf)Cobo9i2wvCRrtoRVSr90!OVf;t5WvifIhGs0D2 zm)%YS>p>P9=|L8jLIvtAl+($nh#yF@$`Ua_ej4Kz9>?F~8dVZzu92C*A ze(X75ZI*M-KM2-ZV82WcD?9XtphRPt} zPB7Dxr;n(@pe21-^Fx{_)*07h-cFjnOGg`^wQ?=H*}U{Y0*U27K%1IJLhJ~{Hzs|e zep&l;7`V~F2-~oy^b+L9#TetkUu^4mVQPaD*vi4m0(pH>ORTuc6qM*@G#3NzH+zXp z07gHP&GNe*~i}=zZwf2n7ZF6?W(q!=aF?QZ@r4q~ahD(0D+HuzcE| zt@5oslT}<)Ki%ZG!Hk-EvQ_oHT7WMUbE9iVS(u3AQQ3F^mI;vO6Z3akox-U%o)KG_ z`_^T2@9EAZrr551=0Jfe7Gm?j>i^NflDx710;WzI!ae*8s4O5gO*B-T*D3%Q3P^4z z*%C+wj5c=tcVvLlE$xh=>YzBly^u7y$XWi$uWYyvfXfeVqjT+BE^b`2y|TJBfe!Px zJ*Z_+=4EI2dfH}~fP&WeA&VO?d%sos%ptjD#l(P@pt6xqn3-P5T0ahN{>M`G)I}?X zBO}ySkr}n!U%jcfcr=nO#1$oq^0iQ?79<)AFSAnvJninTH7%^&lEIV31v2|rg(b>I zT7)q(V)KE~N=Jgx3mUn!LG#Y%Wa!q}Yzo~+%+=EUXzqUGU;SgR3`=erKF_&or#_*! z99AlBR8}5xWIb|k2BX_NMlY_hY@>*6|GfYJ7vKpOxB#Zik$Ewzox+T-^B3~AOdeCb zb(DvsGh~0K=Z=q^m|^F@R|;pZRpw6RsFNPCv#**o6?OTZ?pn2*h8ksG zhF?C4a8XhnHj^!9fpO5W3MvV>X@jj8&d7XIJAaL6|8pO2%jw3p>jC9M?K%c3j$H# zeODscXP+xwEU1Cx3u%#conA%yA<`?3gTh+P)srFOHSfP>S1dDb3YHkIOe=q2oH3@ z=nBTU%7w(4|NKpc=)X1{5LL_S8HrqXQU6BV8GAE}zlkShaf?fCP1M-n%5U}G`bGt} zj~t{E!|@PJq1Kw2{BGHSDP7L-iWw}*&lwVn+5KyCof^{r)mxG64qKFdUL7%xf6D;r zu$GdZUjyv{w1t5%LR7;_WXrfa`@yp!{RO@HjMB;Rz7xGd-OqPu z^M~$vXw^}W%%zj<8!uiEwLoy=Ono&(irg4f2PL@UmQTpI4_epbc}j06=$pP|ghZ@7 zTNR$lf4*{`Ai?b}W~%upSCp|9BZ2Xf)8;A2mHZyRMT`Vo621u+ipm9WDi>rhHy@KH zM}B^>3Xa)=w>Zf9LaWgV_I$Bkjx$Nw^pawPFXi%rU}9PQ)r_aoy4N7H&ry!qy4YFU z0+4&5mNAhAfMeN&_gfseq(CB&IOa5Vb;xrcfP46@1$;&GJJjTN;(-ZIg;s({AAi9& zWzB%434mV&^U9Z}b@n(Tj^@0+6UGpKpi1mG8J}qeEUKE{U0P+Vq%q*IikNKG{ya!G z8T*eBiN99l9sCuj%l(CaX@-Mvyh#J_j9N;b>*Vw_Mh*rEes^NP6B{{Hi_g>x*BY6}70^DX&4aXyjedpopnjGM+vScF z0veK}__~LGqgzND?E!K&ySowz=7awocvzhTIv3P8^c7{h0FA60BYUr9R*MXLhaV6A z>Ho&>_Fr~L6Kdn`iNa?(F9#QA{wa?Adm`a*zndv5 zQpKN8lly*uYW1@dc)+Y8ig}=FGP72lxM)ny>UDyL{A}LFJS^BjBzC!&_7}v7`6T;J z(Di`1lPuf1cgpQ4nqPb=^e639E+pO+48t+S+0Y{%@5Yd=sx5J!fzwwgjPAl}n78!3?)B{SGTPzs zgLvU>juYJ15j3~>6*poV#jM_}pIh#9l?MZ_dVy1_w|lfq@`dQiR_zB{kw6^)FfnLV z27DTm1;yKqt-oX@ZW`kobuVV8^)cw7!dNIy9d(byMJ|HnvGi#f9Pp0)XW%`czCWGM zt6NrCD8wE9LB-O&!Cu~nabzp0gKYC_Ul~|yNC2CN$TiH45?MySKCgz|P^EPMsBuG_ zLkY!4wjB10t8_N$9%u(hzHYN>f>uPpXd?oX!i>=v*=*H%kV+<5i% zZ1wlOLf-q2J18P>#M7G2nC%^;lbK$JjpYw(r;gu}Td>G3!!$qW)T}Ti#t{Io32+Eu zRT~-xohn3a3&0nH^O3BPc8H7KnY1jmp{bUR9cYMQI5LZnn-ByK;50H6H;U-Vj8{1I z5|wi0$AfbAe5$ueePt?U+z2x}GkKWJ8h^yBMJkAo6O7K*Rv-aq7o+PTD;@>?cT?zx zjkZQ+aEO%zJs&bL=(!PM!{1%d@Zo&3XMjV+VE>f(b&D7(;5Y@A&f8tATPpE&a@_jC z%5+*H+jz(4o-N>=f%Kh1OrNw}MHK(zR zI9j+2U%I}C0tMdVZjK#{8Lb$hT@X)0Y^a^6b!Z9p9m_Lb69uc0EO@J3)(+>>pIO!^ z=prO4t`05KiIO)SDqL45Wq>XCnsp?gBDG*6#EmZ?hK0_is{SXp;jD`|%fTy8;3+^A z!+a>3(HB1mEUmO@A^2SDmyyoG2xOzc(ZYF;5BV7czNUPgf$F(r72Pi~J$sY1C`OM* z`rcP-Aq|HU@VOf`pLc#Cx?laFsCg*`0WAN~wpw@$Kczxs;(UWkV#d`F(Q0D{QavB` zN#stBL&WXdr5^*e6qchBOxJpeRnm|GQjk&t`+D)buPt?;#z4Da4*sX|W@oru8l^b8 zP+0Mq{A;!Gc-@P;K`GDo+AW22%fgB>)CkQN`0l7!p9zVM9 z0j{`P@SDEIfG(U@pX|42`WFz)P)@t?akIm%nI)O(1dA$xj{rIz4!xdfv%v1Bv-(?#H&?57Kd7a9P<2NbiEA&K097HO99QEJD1Ptn?;%Nm>NW^oh ziB=`B5%n0%0P#RHSP_0nuY^z0y>jCcG;Mt~h!RCBSy~nDp3SDx-Tf{PkAf(;SNuS# z7>7cub~Vhorx$4h)Z75xTltm8gn){+6^!H$e-d3I!5qAQOc?zlAy~p^!(@yqU3MGW zSsT7TAU22mk#f-xqjAGy498QtINBRLbl~pjQWNJ_m2B!l#BPUHwc(mRgJs$TuBm)j3Q|QO}Pk zP$SUMOiBY?Zv4Jao1-^0T!Ma8vbe`4-N9v2eFgB|@(K#4nO~z_$E+DD>PG%8dU{AM zb{wj~7ATk*f%f-i)<(+xK>Ym+k*mwM0AmyhsAT@*FCmNJ*Z?=hjdJk?mEhfejG!w+ zSv#S~e+R|lRSz|1XJ--rZm`Px&%R&XkYoSOj zy=HnGJKv@+b+XiD0HcIbsJa^n9R8leII4gUcia25rhi+u4U<@TrCLNjWeZ7dz-oE> zl~4WA_6@~)h_BJt5N-w+nOL^?+&p&*kOy905S1N8D0uRfpHzBFQ4oC)d{*Eln~J@B zv0Y2Mfe5&$Q878seX{ka-P)v`qy4){&lY+~z9osEf1gZ<&|1&fh_Z9rm&{0-qZDB;VEXp3dEELgKcLZ&klQPu`!SlDPY8{#IdJzyDVQ!9 z={YeWVTCX0v}3y)r?lHykCIxiL@a?1=d}l%@Abw@u_tqWLaMo|IQJ1CvTN7`&Ns2K zX1Ao(3t3|WCs7#xFOnfYj*yhm2YowGMi$*PJ{Peeih+LATw}e4RF)YCCA+Xvae$M3 z<53X+xlRsKi+_vkQ=w{lHDjn8MZm0y6X=t0+!(j(16niBgcp4`F1;5$9yqE>;gGrX z$YHxH?Rs8SFyoq`oX2!ekzDorFSk`@i-MTm!Rqw0aS5JI%yc4o#*6C_1LPK|Fu0x+)yLpEV+;uR{&ywUrO0`V{;H&y#5_Z ze;)q~aG%osV@Qe097^}(EG?!%or z(|eJM({qhyc$K7F>h4p%jrPqr0Tbk-0b>D7fIPWhTT*5z7MZ7~7<*7?83zCE&)i)e ze?ymTC!(4>b)rA1>NIqt{A?mmk>%~eYWqzP4N#;soXM5PE?;e~NCsY{Ie>_oy(dm~ zW@F0w+aS(=lYRyN9f`5jPo2l#{T6S@?QRI-!(e|;2}V-+uliGCKPw}~a^}~ivQNZW z2TZTau8hCcZDedDhBSYlkr%kCIn3Q?$S>)OBw5Kjcqd2OM>>+RNHk+81h#Qv$kF$m>XPLk1nP6|Iu*r750DgsCi5}?Fb0<0Jgfc!#hYn^5K0w7 zci3lZxgo^g*g?&jN9Yl<{GdM@W(4$2N%ok#8=6)T^DG-`$cF9~w1dnKkS%Hl<gAut`d0ps(fRCI4{NFA7>_pgGn+r@jvLz=aI3hU3CFEesglrylB-(ws7b)d_ z9-{gF7!7o1!@+!xyUnGgujcU!&h0R9)b1j!PVY|(cn|)lfEkkxlya7BXQ;)QX~d&^ zfT32BAbR(w#e6qUF$_)LV-ebn1zhd4) z_C^q1i8-Gy^;%r@ec}FQ*t1~+5;aGDwTON{M~Epx+ymZ8CBO!fuD95n(Q&9ZIEZ2Y zFb>&%#X51-j@kr|6B#4%ty7TwVkU2xhsgs+q&oNGQ_eHLJBN5Aj#k4yM)vH33%_?C z-s>ELphMM@TI2RB=}JJ)v2FB3WB79TN+`0QN!B+Iph#AUkG!xoSB}^~Fo8t~#S$Lc zlEq2|*&6@|52IL5v!vN-!_&qXTMrx_?fU&MPf;D^w=6qVIWrI2<>VueTY z)UCR22W5J|OU{%2L6iI4B;WcbPLu*yF*2^VATG(j3O~*% zw-*Q)x+S|(_386+c?pHTb)%)i`ERV0`N|s`#7!HwAY85%Ngpo?^sN<{9sfj7CiINe zLg;QUB0J-J(Mc!7DNFe%J5h}ez7uW0gDQaCuu5z@1kK?wG+APpAk+S4=E8ASJv&&p z&cHfDB35$d3Onby+yX~mJ|ZeMDctqa^P(4-27f?xhjtAEtKOK_Ua-G7NvfDTcn!Fo zU$P&EobTlEO9mZY72?BW2WLiK$M)!6yCDJm#A;`{EH&q{9SMq1hzwTnNe$I^azo(O zP+a{-GisO(M%z#T*u2FWrZzCJuqdGd3dzQ6oG}84i1vlL((U|&!dK)l;9R;9S8&J+BcWrz)7o!$s+ee;4vNF4qhwC>+jw@VL!s`28Jc|D?L45gpsMymR68fcHd%XWsL`AKP;rP&mSt$naYN z2x_UoNwmA|$N-pHf|w8I%mM(-vabaTY}9O@XE%U)3*XME?edfd&e|=A(Ba|0j-eA^ zBJ+@&k7r)Y=LUyQwrjCaHu_-Z(zbf_)@yO~N{KtO0n%asWTjc{7fBHF{L)v*EiPb3 zV=|fKnnUnM6X*um6|)%hiuC=SDim}=zM7wfub4zrGl?M~_qycf#lg9D?ua@}4oQ@; zA<)>EvIT?4Ctw~R)Hk}O@BtjGfF-5&`@0Y81V#k1UbS&8ek^XzJ@fdz7Iw! zpWQYV@fa0wJ|brlihPAD zKZj7Cf>?qG*exK3o1er@-3th_Uq6L={lT7pF`2(PP!qiZJ(x2JP56b<(~lD5WV{th z3rwE)aSYM>{&#kiQ=3eTJ>1&%&w!5xOfw=;3WiQ}5e__AL(<;wK^?qiC`*4OJo<0u zpE982;dne6x&ZgcQIr+i4!aNvHGCLYLp#!>udE*40L7pc-`&zWjbuv}9p|F&ff}%P zr-Nk{>2>=)r!FAs|5+iIM04QJljx(ZkL@g?mIqsQ{K`)Z70A&y7KjYNxNgrdcvp+> z7{0q*eHwpQn~Xlt1V;6NgGW75tF=m5|h=WkIxS0jwj8};dzH>gPj z3Nsj}OTIGv$_wNE8s_HacEN@ew}(*XX6hth%jed@eA7cxiMT{2gaC*i*atoFJl~d} zuMqUi+#LG|ZtlclNl0dW4*0D_{(^u2^(K|C&M~Mgn`J%u-#=@Cl+xN)R7PqZX+W~3 z-ZUj1hhLP*Td0kOwa=3W?px%cLpm4X?!0PzP0+|2!YjZ9F^8n%-^8460oCC?wI z*OLst9QtnuR%&JT^~MGRJiNulHhzc&WriH6f^qbLR>;5k6Ijvl&lZT4(5OeYmj&@h z#dsoY$MM%60J=`PB6Y6@ltz`jmjF|&uBim5s|OTGK`JGG|GQI{lPYTW%bW-_oID$K zv=cmEy;B|!HRT7UX(M!I9@rm)*XF1XMuW)7#EZYv{D;n$z4grw(2H(|zI?WiK^`RS ztRA|eiCX!+0^q@;fN{#{kRo=(nV9v2i^{w94A95mz%JhY5&JLiEONmqTZU7+&!$qk z#i{9s@BjVA$~0nae4+ol-6$#S?s^}8Mrs&V&l7HLe!!61sJ*|8=eDU+8~-Ew|9b;9 zSKXF4$n!$!B4Q-v5`m^u)#D3iXaj>G&U^5od$5}PVpEKA0Ofg8^TVU}#<8 zGm%8&BsB#SkbBSDNlW73YrOVl1Ql?O=GsyC|0O_oT|KSHo$tS(2ZLBz4;GmCZqcaw zWy_{Z>Ps#yt|U^^?fPRH$FCr8)3^s<9Ao53jQst~VkbqGiI3k<5VIHk9D0QZtX1nM zunx8{85^(!zgG^$QVKRy#nB& zC>!jqZS9Op*=|MdEHvDvj4#=O2^CRwMsb_iZ=Oje!5YFqzdUG-+wwc`asj}U$~mGW zO&&A_X*4{Eiqw-HgAH6FiBT{Qj}poZfD}w7&jTLs>n_tNM-ex`2+nkjS&0C69V9qX zEUxmVA}T)HtG%!Kl5zxxO}?aM`Sd-b4kI4&@&hLS1zHnG@XU+G!A~pa3H3cy>=wPJ zaL@OMywuk;-p7E`JvOi_aBPx?)gy;Gl!mq6DGa5WV&(B$fQ#O#{avlp$y}+$Mw22c z%rOr4eNujVg&7-AcQC*i?46oEqW~v$k4EUZY6p;Pg6TP2RS}$aTIjvv^k&Z`v@^1A z=YcB9`%V!B;E)zG4(Y-~Jvi||W7M6YQo1ovl^xVS_M`h-*C(S&8Qf*UFtNGF({EGl zvS+qwoVa)`1VF^JK~^hDXt%z^eMToF6h+ z&!+fI%&>ew-b!Xv&3b4RL$&j3qe%7gEzPx7H5!}TEX?v$sP1(AL4qR?XCNqF4Zjra z^m0Q@@KN7~^lcFK#@l@3&A6V8e&XktTtbD?#t(HO%4 zi)|JJYTrMf;>O$E$YGwHp%2JGw|zmJ-z#ew@6o6dJ~d@}D0lj(NCUsdqj4dLMdD+PEh8BW0=q{mZw zP!Nhh9%LSZ88k4-;`}EWT_v8Dt7g9%2FCt7>WN3FFp^e6vkdYTg`9NdB~t%6C#R%7 zJU?K6e(g9w39j+|v`;1u)Y>Bi`fmmn4Nw?OQcg}Tq7shs`=n<_!}j-YrwY}h)*NPa z0x?fdkkG<6jNGt62#!B6nf9L0kO^|mLn2+=#mlZy#w?VmBkZyAE! ztBcSGC|el2>dcUCBE54?zA z9fX|&0QYy?xDG=}3C$stMG?lV36D9y4q6UIicWh)(1)c8>c=wu9w_bHU@t@IfU}>q zeg-BCadmttncfBV-L9hHKFeMQrK}x3DPzNzgs+Su_MS3NR z6ILZStHFx=^RBh~=@f5K>D7HOIyA%lG$Utn$H#H>D_#)($=o{6I42sl?O$ppOt%#Q zeK6t?0;dX$51*!`DiUF$Akx45*lQ+ld-{@!4j3jK=46?Z+fTyj|8 zl>&{>z1$@J+hwjb*6L*1ES3rmt6*-V>utU|#~8UW@0%s9H|$Yt*lLrJE;3<+%VzQb z(Ss8sn84_%oD>|Ssp0b=j%ga%dy}HN8+60-8^stA|56reB^bID+@cjh@hChX(%Eo} z2~dHi*trDbQuPSpghNl@_>)CiB_6(V&dX%s(qKa{ahADWIB<5tdb9-%Dq>tWVXrvQ z{5V1V1HG!VMuUS|It{G6oyP$HKJ?#z$pAHu4{$-5xJ6eST28V2$_qC0^ug}2VCx5)@Z`>W&_D@~tfe?r4)E{C91o75 z?j0Jna=aOO?4lS7=m@X}qc#k8QlVGHkYJePuelDyU6-FR;)8qe>P0M(q|pYk|P z$@n}=T$i#we36YSslwyx{)|ni6x6f{#%1pngx1#97Uwzvff|3TLO7P-`p5}7H4gfzOx>ZgA0KGFKl!N1}!@JgW7|B*0>ZMlZ$$% zG(o;VU>1z)*niPI)+p8RUpxJRE3brt3L9%Tkpoz}4uqE*w#LPeFQE%-Y7N^0zF(XS zZ-B1a6c~3cZN+Pa`54?|n_<6W0i7e_+E2P|I$scRU2xDGRk=BX3C_dou~T!`R?2nT za*wu?8G=sl$Eihz59rxx7O$iJ|4R@9kDT3p3GT_^+uXXq&J1yB-d8t#R{Ige!w;;h z0SSdOXa8&Ms^6mgp7sI~N=b+`(uj0-ND9&^snWf4!y-tRgdkmlv~-tBhje!%$OL_|DP;Du&B{zu1o8(w!TQ1y9?R#oWbTh6nPJ?S;v|R6G&dxs=a$uH2=h^F{7%O}mtN-hSQ&DM{gcYNm;g*G)AEf5}kH>moYB8XGSJi7Y&0w6Z5&{ZUca1_yg~gfDNDd(A=G0~fjZqRXi|vhXEn^58!{ z!{f@Tc6D0$0&nf>xxm_VX;^1Y(O=ter?rfGHj!Y#e;0vGU6F_YX#Da-3M23lz&Dh` zasPA7!OO|jHg8erK@%eQO-zk1$Ylbz0T<@rwI^^)KolV=S~*+`6!cNc~ssybAX+T;aNLHLcKG#_ijO_$DPX8wFr}F_S_Hg6}#fnpJ=S9FGV|?#L z2|@k7@K`0q7UvOsGMrGiG2zyrc;SnJka!w7qZH8g6u5E(1eV0$rcZ@x=AodG#A9Tg z%)XOS@OCLo!9@RKrf(E7DuitOz8fAQ6lHl7OISUoZB)Bw(Wcrwp^6zz^m4w~s=<1U zz%T2+!npEysxKX-aqkR#Ng-&R&dWC9T>dYgR-rs}4k{^;?B~f0N5e|%Pj{BSUp&mr zM-7+)ZL@B{mBtgQuA=9U6jV+4fyEAMVDQa6R)DBGaaH#wV!-}yqoO_c~mm`jOu zpxC;W(9YKWbh#m@0@3ie-n>Lc)4J11QxVIi1NadjL&&Cj2m~r0^x!D>q~`X|w&p`3 z2M7r5VRwA*SpXpdjYt^nwzj!{)Fo#@_=xl+9M^Dcs z+d$N}hTtRPX&(J0tY_%a0KJ*}KfT!+ z@el2xs5{oRiW|nuaHoY#jYyz*d+%fb6!KyZ`!QB$Cffp9R3L8=GqvcfUp!d{Gk@@8 z1+QS)77?{<*m1z%IqUF~h+VDQf=zLPThj4YP!YIJ)XJM7jV;p9RBXA3#zO(XoR%rZNAJ75rY`(pPl(V&lfTVQe!j35)FK$Vg z1keR*uv^$Ob$C0rtE)@y$4f8a$}j!tyjHRE4GIVYm{Q8P5 z8HThMu)`i&GKMlE1cVmF zGO$)NTw9h@8*CRk_m!5>@H0##bMzKTz(HKzpB;)yl(71vUHBF;e@S`;fB29;DCEIQ zxPE6ftGu+V1~ElNUt~qgXUKcw?&|NXZ=WWw&{ee5%RSg*mm>6ewAc1}9?|3)5D2SK zMBTI69yz)7y9s_}c?_ZVb~zM>qwHP%2{RgaF?kY;vPzic1?5wrppofV_)h(Myni0iqkqt=SQI>C2E4Pn{=W;>hYD1EKfX0e8q?N;{MlK5^z!o zhs=I)!K|Wb1$rE}?x)PmTmA+JN6&L*Y61=W0{B8JF9cTW-+cLizv15;6&A#}nuDKz zsz)@W6gr=fV)pe(kO=-k1`5o?jB9>3ad*bYng14rWQNKw*fPQ6j|4n0q#SpS9o)(zL{~NYZ-saTP z+v~64Tu!`jO2{*Z7QD|I4sD-2aUeo*+?IT#ICkDUP#q49V;&wJ%7?LdK_@BQK3P?CG<+CRrQLp+pSyXY#1M<3TAa7yH;xNw%&J9Sd|y8i&Z2&WfqbITH^TFoGhR2sx7CnL|E zaJ&KZ^`HH+8M6BNzvX~UZGoA}xq1RL0d2i^;vc23fo&1In{TN~!-TZ$b&fr95rX!U z|HAZ`4Ja?W;Xjq*t*my1@10AM@_{4Ns=WBVB*5i*pB{egA@~GQ!S-9Yr1(L7z zQ!S}I=24}bMEuGkJs&_Co<+XL02|sEXLOSGQ3@CseQeZ%2{TFj5}bfJx&VGo{0N=N z3c;1a0oL#?X!)cS`UnGpNC1pu%dPL-3yEjzAtjPKdJd-O+frUOt|3xZVEE{`h9r0d zcj)yo#AinG3HXR50yTvbd_+WYODs?_CKxGFuqK7`F^xrMmSIgV#~AzN`&A{6&=e=NlEg+yL8CthSCcIF9k?EWl!pu zInSC~lnKL^g!6wtdD;49KA3DEmr+zWB9$6}GrF;iKp@ICsa_5+XdQ=#Q@7jwGTq3# zP4h;ICjnJ7dHN6_jUt9wnE@z``b#uy@>L0tP+Tfv#J6Wy;J;wMNTUUo2_OtWq{=!v zBuOlMzHBNj`!_HL#wR>B`h{eEK+e_la+-Ya?2JG7zY{TR+QE9Ty;N zQZM;f(cxH-gjJ{zwX&MpQy?pt32fe;h0HXsDX8l+ktc)EWF(Iwf)9opQJWo5G#Rxg zd*XT0_9rOF7L2JkcVuG*XhL9)iTw`@PR0nXe3YrTGAbAo=SD;cVS~bw7hccdl!vl! zUpKp=+}+)+>D({9X$(Prm_+(9i^z{KLW~FM$MJ8Kl(3j+$|F75AVoc-zB-RXdck6t z6OhDK{(L_fulH@{2+7}!Sg5$sCq-k=-|-3Xf5`jM=BZML|JHWm^to zFg=#IIiAHe^-nqH)c7?b1lgsi(rD*%x93yIeykiIVY}=MX>=8$bT#LhlV28IjM)S% zId3gUwo$|{i){t|s8l`Y&cNB8EdX68C*?A#>RPfzD_ay!&<+gO9u z;sb$|ZqjzS{dRao{Pb@x7+q-=eXH^~gc&GMJ;(o8!nCRFN;|-x3#gdYyheUHC@(L0#@Uf&5;iM_4%S0f&1Et3b@uVbrj6x* zyW&P_cJQ#yz!=ELP27S>#VvZQ7#hS1@Rhg^Tro{TBGi)@ru;tIA$f31@7ol@4)JFH#4n@Ylgxj5Zp)wKl(XTo~Z4+4^0GJMR<_w+vusZ*M%+4 zU#7jmz?4tib7FqhedVml8J@%tm_X)8Wl>y**a)z`1Oy;f`7tXiOQ+RU>KfE$He1Ws zbn1-@zhOoa;P2dxKZiwT=R4HSr)Ku$MjZEPo_LLXNv$h3 zBJ#Wx6cxjRJV_eGl3E28Js1A9KD7CyhK1Tw0)e^CSJ%X=ZcPEy;TXz&7X30;2++t4 zN6AF=FkA4Zj{EuA^?zrDZ5DlZbfod4U4HjPbQL@sByV>B-9QzV;Q7#_&E25GxCr&(9kACRO z+}VDxP--O;Ofk2e@MJUj5IEB6DDmX^PvuKW_|*ZJNi$@dwEeD8I;JGBaPJ5w zG)MKeCEnaBW++dIM0KMkCft416=brRuj70})yUbSAJO%eG-9x}0-LdtXxiVyezqdG z`wec4Wf=?=rge0Fl5=j_5=!h6(C}G^GWz(@X_9Y!&~YRJh-uMri7sLH;ZiBQTt~w% zI(9wpmPMi`E)?%k9wf6cOj8EPFo^~+^K;_J;MN+cncPkH@n%k!!+Q_AJ5di&0a6s0 z>zit>n8LWYy@|>cx{ z6<(NG?rSE)-{27Ol}w(twsV|BWuFlbZ~rIh7(JI0C00eJS2H$_b>mqw7PTi*G} z6k0ptynI+}WHnh-$cR*I`g0i)-{l*5a`jAOfA}8niMK0})XL#=Hf7wT5UYp3`rpTv z^*zu}<4*UJXC%Jpsjb)#7qx{A_P?pLytuTs{?llkCd?oEL#DQMqmi;_whJ^8cy)Vy z-tcb(btx=iMy^zk1|h67r>|kOe9$e54SRuwhoIxcXMFNm;5c@i{ll}-@OQLH{?(!O zs`_pf8Iy4&oTOuBmA#~6?etr{pPAIT6r7Gl5%sOxW{al)G(^dh(ciuofcbJQ(9Mb!Pbj?iXtv$12&wObrw>R zfj)N;uMlvWlU;L1D!9;JLOJ<0T7$^AG51S;Ah;9QrRNhfhR5HEyH6|Ur=}@v_7CYq zl1pTiee(zl3E?fx!Dj+XC)G zK37{xB!y#!EtfxW>^Hx-nn=WtDWvfv84nC_yVL2@4UVbEAYIto;TJHp9#&AWS=yP? zt`t1=;~FWk#X+o4eVm-N&+WQJQ!Gz7iQOb7HLL75uh#S0fn@~w^Gg- z7#JEmMJYtE&o@uw=V}D|^Ak~()V8L=jz&;dAN9nB=M>!ueGU(=hrh_>r=g~;>0bUj zb9$k=vlDXiVZ^rY7q<(2 z9hw3c2_$!|wP-FK6LOdxm}_ZG2uVtIFfG5y@qGJJ3V*JV+c-L6lu_a1HL1513Kabs zFJ+=9Fq@7puh=YquggoB#E7o4EuHeAdX!bW=Hh@)&M!8pZ@6;oppt2m z+i$NBgwYsnRA4d{&A^=iwKZ;pSD?M#HZKUb?xy6rW&G({h#r@!`G z;)&keiNo|Y^Jk(G*I3#TYvrrc2mFb3eA49gae#xz2OdRfa4(1Vri?DkZKV7C6PukN zO&&ue9%H+FHxSL8&l1V2!#d@RJcQiM)9*>YM*kEt4ff|9ZyRPhhmyc*`iF`OoayQM z6-w!nHB}RPWr+yJA~+7;w%zu~UODS&6lL%1C7^vD#OwfUvR$`V0OQ(eHVle1hbDW|w_yH>E~%K?|-P*|4A7hPmoDzeKSS5@iCX zA6hK&7x*lU5JWD*cU~wQy>DyBA_dQGe71|9JzfgXLKVO5(?3S+E|v)bv@D^kFrb=c zCc+{CTQ&;lMt7aWqbV)KzxOWFs@$;mplbY=;PB3dNWA%=h~ufXC-lIL{nn;ifVJFh zL^yn@o7DF;M@rx@5I)@6c$4E%s^@{}Vj?c(&lG*(eqOgRtG&s$F_i@MAfHBJe6<_KOWnOSY<#hC-7xA+^;Ykx>jRdGMG3Cvh zJ(_(rzzSn`^iNV2Ti5o>3%BA_3aX0No{DiqM(egV?aWMZK4)Qd$Xf~?{={p`aN z^%hkS%NS3)L zX<{N!+U#sn+_C+g!=JSpV>(QPVhQv*e}^DCD%a`DSVzZ z``Uxkr2?mBucLQwGh$7AEy?8?s%U?%RNf}H+7)(B@W#b57gm#4WUqW_uW zFR;**J6ln`{}~{*D*Xz?@o~cRIG@`iB@>$FKod=s@$ahzeOxp7=1%04!R-G zM67qC4-IO)8cb0wDBgG<;6HSIV=-^4yPu>aEZ$^|Gn^*;eRzhm+&VYe=`SM=M_6o0 z1^?*aeIs-+j`v+Oe?*>;OtJQR8*=qyFMX)p_)(S3r$k^ZQmr6RvamRvu@y<7#qC~V zmmumE&KSpb%f|$_m7B#=F5^DM)?4Edd;#XN>A%Zo()Z?OJTywX=0&@tt6fy5Mw!zy zDrLBP4CFLg<#W|3*E7*G(B!{C6VgaEbt?rA%PV+CcnuFyQ*odVt(3|8-#>ZI$XzfT zSHut+pHh?nKvrUyytE3tZnKAh7;gAP-Q^`a#*5q2uTy4o@aDvP9#?o@eY zKxEBLh;jy?K;zaL*vVrk%_CDgLCVak6REj|m|>E#5>%re;|9EZ#7U`#!@GmU#wRUH z(vcpq0=$N@K7W#_+zKJ-OS!%`w|uqRm!*9RrGJ+e{XcSBItx(>4s0FMG-99>1t*J* z$TNK0nh{LJ*P9~W)-R*eML;-cug%%fcg4O1+Aq9t>&T#Ev9k+9&wLU1yRB(vOa2|q zmFLS}Z7r(;;8!g2%pTy0610FAY~UdK10nXZP2q^TY>TCTC(8+yX@=!2K9H1WSg5yq z?R;q>0?k^#iR9!t%a#=|V|5XlJWxF{WhQk47dVxzInToLb9*!p?bOt;AxhR2&;kGe zhl#?NTVi`FY`aKe&d!w5h+HX)$Qyo=@y5{ese>(d&MwMhf?^$)KD>GDsj2|qs6A>wu_>AqH59X4|t z$__}pk?H+CIUcbn!pbskipbJoHFw+kHJgk-tma>+(9WVrsFaoX=3Z`kc;PJRrltv9 z4u3J&fUzjZ`7TL_D}LR~Z4+KZ8<>fC>0Ro3kiHGCBX^jbH7^X6=baKv`zGy_=hODZ z_D>8rx12vBXk^i;E)S>#opkAjFMq~!NOt5kC*xV@XOTbFHRTw@nF7l=@?wC{m55DzP>!=F)CZB}7p@#klI*E?UuR;J2Uf%eImoc|rGy5j$Ry#qI<@J!7N6Dk9~ za6DFG{n}QDJvDRkkSS`#)|ziZvO^qn+90Xcmjmi)^8I&Bt(uR(!D{rw7JolIBwhRV z?7MP+D)73HFf98#S^bswPHd7+>89K1<}5S3MSN@PaPz@=P{PiyY5z~W@8G%Bf9pB=TEKqiSmC#0$LZz+d??=s~V@56=5Qxa6DC|XwUy!&a+ z)L%o1SiCt_YgCwt&M4Uj**KieRx{CIMIk6bh{X+}SLJ`MjB$#v$#?hkJQC*K!@JBO zJG*}Th@y`+h||x0AV^!XaPE3_Z9|!;AUD!%b@;E+mxZp8AW7`$(NW<+cs}!=xSb~g z7XZt4%J@aowEf%Z-`tuz%ku!|>*qfyE9-XPMg@ZAvxjyTnPs_Kr5>g(nDh{*TxpZD z2zvUW;cRgng=FcJx95dXjlAMbVzi5#0`H{WJ^^tAe|BL1b=fj!9lKtX+UG{kc-&v@ z4`nF%oGt~MKV7(^_3(Phg;c)%qTg-MU}4{&G$)%?8uaS_azxdSjrx9kELJf&YffE@ zp!II8fgqBl0`UzlFBpzbbsH{^w7gFd7XyE_b*GN^&4$@YK&76C7OnMBuea+t2V+$q z7AYK(z4`#l!yI9h=&7`L?a~)7YKc3%mWggep_CQX->2BX8nb{AM?uz<;zDs&aFBRQTCd)VfA(dUWGOgO)>E)$ooQ4ULRvA^zXX zRfusC7gtWTX|#aH-N7c^@|(`n+|8z(=xCf?QyOaCyOLK`6rw!zIGs9IVi%+}MMmJKwhiUF|9p?!pX1}{(2NH`~K z0?p0Dz-6{-``JpW!qaFQzy<{9y$-A4o=uvCs|6qLOj_pJ3JdJ`L06Fu#qMFiqBE@mt5R_IvXM- z#bZ>hC2HQ!M7cCs_LK4Vgmdgtor09K zdXXeJnVei@(|RYBr-#(x;?D!|`*VNu`tYZIufHaZ)kO7b>3^^H?LdLyjr*|94HY}% zOM)-Q0ei=nyZP#uzh~h=h7g_KXpYx?y^|O!6b0#VwJ(I3A};F1yAi*zB~9JP&dv>R zbxYcYb{-S_6*W>-&R&pD<`2cDK0neOJMLwQZ>Zl08$xrFgTjg&u0m$X&WBY@eu9lW zRmut(%FZ-OB4)>@`9kS)bjku@eoC>W94E<@7SNK?=jb__78g4Xic|I3K3NDn_8u;u z_V66PGtqbh;J^I~Dj@^st_|Rv`}~R9P|WR=jH`G?H<@0M`dFDrL7`66vUd&%5jew6ZGnwHE7AOwIZ}`~-EFF1)|3XQ zJ%f91JpYb1nCbUH(l5jwJ!(v9-iR^o6jK+BU8c)wi$O0dm))6qNlBi-tKO64Y2?- zB*>RPqszM>r6N=D5HTLT6Nh#F2C?(6`<1(aU1pD(qUCY%^C!@80kUa2S9MApe9-*f zZ>S^Nh|lszD)%QLA+oCn6$*;8G;k&VBOrEqVIQrlXwfpJ>9OTUSG@x1=-wYJ-n2yP zv=lc@jqlBr%%r#642$n*F8|vXRW&_ ze8IIY^ZXK(ukaNUkC|DA%y`0enE`@>JND%PVPwwlS2f8}^6@zmI!35_?7Qdg0AGAp zvmvp8pZQbRyWrpfEh02CczXIV5u9x`OZ|B9S5M5|x>g{i=-xmC_X}~pM+ZHS3M9_i z3G0cMk~IzR486Pg@mqVM%eX3KeA2#YmpHm&-v3+l-Niv1GCrC2qt#~bHXlopK{!k| zI2q5f?jEg6%{TIzYq)!pC#Wzs>Q371QuwOtlD@Pt6r~|F=BcBlo6^PEw(fofNwB+z za;Z+2D1IYNjDhrTN$!YATVW7Hm-O$rwU2vJlV!;@Z@qu`Uh}yH09N{h4}xMdE4HYx z!*?&f7$_;@(Pyv3sLX-oNZfRor5Nq)tF$lM3Ygh0ZbWStaisBBM7p+Dbve8ZiA=xh zWe!7SWmUnfQJww;tl{AnxYbAm@eLD0-*|HJ%#CUTh3MCh@)h7zubj$$7Yt<_8taB; zEr2FR**rhy83F zOO`D+Id5Qx&5k~S0A^Zm1gg4wyP~Vz1yCbash%V5dMJx1#!zmsK1k6gzT_!>laUH; z2;2i)Q2J&1(F{(Ur-v0{bpmva?KDmZdIH zJSebg)vxmNO#Q3_2DE??y`fg3eoQddlD+*PMVs$%uxHC~m+`|hp}%dO#Q4mPIJ!KJDgU|I;2=`Mi0_u>KG61Cf$uPLRhL-|JB?~^M|AZ>-}K` zz$ln-F-RMru+JhU&B18}cYpg_V698SFw=1?8bnG~_QNyvfzkNZU6$lOrCyF}(B>Y2ucF7QK(VpgA_Gb)u zEwS=wFo~^PjnUc3a3|Es9>eY5+4kF+m^qxeo6_0(x9@b-T}v-bfd=bcBjkV}1VHdi zn0D9RD9Q8+C}#!l9h6lRM*OSEuymKg%pr#hggJ-hK8h4PJm%O=g_`iY*VGDx%1*90wqv_=BP<_&j@Bx}<=sUcQD37CuJ3s8o#-2SV;uX3kE*l9BWQoob98%0Vn?ZwK=M(wLs!#aX2016M!F>s&?FG22rN|;} zZLj~n^$90Q6viRlkCsy7Au~M=9G~CB#DaMTD2lK3!>7{{NN=*nUq(IUcwL9w_5hgM zqI@a7PN-7-erWGQD5NzG#mG=LwL$ouRA-Cty&+;27!;xF$2pkDxeZ%rtxVn(-!UHa zxYHbQi;#aIRswtv+^i5T(=m74gCaY!NlB=V&RvJ@YSJTE*2e_QgrlyWgVK@DbvL&c z#c4qTqV0N$Qx~<0S0^%NicA^T?$XZm?8Z%*_5y5ojgJ8T0AFNk)obav#frJ@rzk#5 zJ9jf^)30`K_WOYC&$NR?ej)=L-5^iu-8W7hUi@+&y-okkmcpqEfDZ{(dO-D6d*HbZ zboI+DO9!LpipYWQvNxnawM!HtrIwy8aX?C-@}K2kBe}Xh;&m6)n<3Y3b(Q}8Z_MOI zZ*QY~JN|))(oU%}1OCJLCu9dT)+1%KAX@+h`c%Iktv_AdH_`97&ROm0XFf^4<{XK~ zaPOIV>j2i_4D$2+%D*0%;un)7C1s9VsgLFfiT3O$Cs*!?zD}F%1@Aq)z((CQWAR?q zm00$&_j%<$IM}N?Q%D{yU^L(^4K9)o+uccHsHs)KiC%3EZnz<2`QiG|EF+HmkRTLB z(6HqNJTo0+no&bMfj~R%#hjmCC(5+5b~GM+&KqY^0~<9mR?JE9{|AHp?LwiB%j~c~ zg$Mxy)Nnplm?0WDXpkiqP{`3`{o_Cf7Mn0=k;L^Zr`5C;P9CUp_hN4^)d_R;wfZq+ z-fN6kaE|2uG=Xhg2(*{HdQa z2b@T?Dh2zIBCi5;)a_21_{XJJJ zfRNt1g{avm#`i8u1ykMk=Bt^w5F;8TYM5;6nN4g; zTtd8)yL;08r&Z8 zOa-if@cgK7gMP?zVMsUM-%YF3LNR!m*g(q(@hfM0ITu9b`1&RaPENiZAL;J+`j*6c z+385`MAfp>i+2r((m)#VK~l8f>0XCRr~#XO^%z4TS#*7u3j6lA&m>V5CQj3}q-89y zlpOG((UqU;`{iTT*2zz@vIbD`W9WKiif50Owt0QIQ}7@eC`!~2Bl8KtrrR{!&sDmm z{*80?G}g7V^wCU)(9*8$nZ@@;XatZXDLi`MmtEN3c$0NsN??D1$Hm2L8m3eD$btjR-px&yf6 zF?szm<)fvO)dpXmz0hK@=(bH>XR8^raXS5SgK#VRg#z0L(g>5FPwWplzlSU4NFA$( zWnK;tfA~yb^JRBbB)m2JQ_Ap&Shz6p2Pss7PtS0k|1ttonfIuMe&&c55F9>Ax1aL9p6AXe Q0tz#Dy85}Sb4q9e0EL(iEdT%j literal 0 HcmV?d00001 diff --git a/src/react-native-app/ios/reactnativeapp/Info.plist b/src/react-native-app/ios/reactnativeapp/Info.plist new file mode 100644 index 0000000000..ef9c9c0e39 --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp/Info.plist @@ -0,0 +1,77 @@ + + + + + CADisableMinimumFrameDurationOnPhone + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Astronomy Shop App + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleURLSchemes + + myapp + io.opentelemetry.reactnativeapp + + + + CFBundleVersion + 1 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSAllowsLocalNetworking + + + NSUserActivityTypes + + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + + UILaunchStoryboardName + SplashScreen + UIRequiredDeviceCapabilities + + arm64 + + UIRequiresFullScreen + + UIStatusBarStyle + UIStatusBarStyleDefault + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIUserInterfaceStyle + Automatic + UIViewControllerBasedStatusBarAppearance + + + diff --git a/src/react-native-app/ios/reactnativeapp/PrivacyInfo.xcprivacy b/src/react-native-app/ios/reactnativeapp/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..5bb83c5d43 --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp/PrivacyInfo.xcprivacy @@ -0,0 +1,48 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + 0A2A.1 + 3B52.1 + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryDiskSpace + NSPrivacyAccessedAPITypeReasons + + E174.1 + 85F4.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + diff --git a/src/react-native-app/ios/reactnativeapp/SplashScreen.storyboard b/src/react-native-app/ios/reactnativeapp/SplashScreen.storyboard new file mode 100644 index 0000000000..ec5457492c --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp/SplashScreen.storyboard @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/react-native-app/ios/reactnativeapp/Supporting/Expo.plist b/src/react-native-app/ios/reactnativeapp/Supporting/Expo.plist new file mode 100644 index 0000000000..7fa791181b --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp/Supporting/Expo.plist @@ -0,0 +1,12 @@ + + + + + EXUpdatesCheckOnLaunch + ALWAYS + EXUpdatesEnabled + + EXUpdatesLaunchWaitMs + 0 + + diff --git a/src/react-native-app/ios/reactnativeapp/main.m b/src/react-native-app/ios/reactnativeapp/main.m new file mode 100644 index 0000000000..25181b6ccb --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp/main.m @@ -0,0 +1,10 @@ +#import + +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} + diff --git a/src/react-native-app/ios/reactnativeapp/noop-file.swift b/src/react-native-app/ios/reactnativeapp/noop-file.swift new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/react-native-app/ios/reactnativeapp/reactnativeapp-Bridging-Header.h b/src/react-native-app/ios/reactnativeapp/reactnativeapp-Bridging-Header.h new file mode 100644 index 0000000000..f8f0758cd7 --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp/reactnativeapp-Bridging-Header.h @@ -0,0 +1,5 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// diff --git a/src/react-native-app/ios/reactnativeapp/reactnativeapp.entitlements b/src/react-native-app/ios/reactnativeapp/reactnativeapp.entitlements new file mode 100644 index 0000000000..a4942dca99 --- /dev/null +++ b/src/react-native-app/ios/reactnativeapp/reactnativeapp.entitlements @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/react-native-app/metro.config.js b/src/react-native-app/metro.config.js new file mode 100644 index 0000000000..40ddc74b57 --- /dev/null +++ b/src/react-native-app/metro.config.js @@ -0,0 +1,16 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +// Learn more https://docs.expo.io/guides/customizing-metro +/* eslint-env node */ + +const { getDefaultConfig } = require("expo/metro-config"); + +/** @type {import('expo/metro-config').MetroConfig} */ +const config = getDefaultConfig(__dirname); + +// Needed so that we can make use of the alternative @opentelemetry/semantic-conventions/incubating export +// See: https://reactnative.dev/blog/2023/06/21/package-exports-support +config.resolver.unstable_enablePackageExports = true; + +module.exports = config; diff --git a/src/react-native-app/package-lock.json b/src/react-native-app/package-lock.json new file mode 100644 index 0000000000..f1016955c9 --- /dev/null +++ b/src/react-native-app/package-lock.json @@ -0,0 +1,19603 @@ +{ + "name": "reactnativeapp", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "reactnativeapp", + "version": "1.0.0", + "dependencies": { + "@expo/metro-config": "^0.19.4", + "@expo/vector-icons": "^14.0.0", + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/core": "^1.28.0", + "@opentelemetry/exporter-trace-otlp-http": "^0.52.0", + "@opentelemetry/instrumentation": "^0.55.0", + "@opentelemetry/instrumentation-fetch": "^0.55.0", + "@opentelemetry/instrumentation-xml-http-request": "^0.55.0", + "@opentelemetry/resources": "^1.28.0", + "@opentelemetry/sdk-trace-base": "^1.28.0", + "@opentelemetry/sdk-trace-web": "^1.28.0", + "@opentelemetry/semantic-conventions": "^1.28.0", + "@react-native-async-storage/async-storage": "^2.0.0", + "@react-navigation/native": "^6.0.2", + "@tanstack/react-query": "4.36.1", + "@types/react-native-get-random-values": "^1.8.2", + "@types/uuid": "^10.0.0", + "expo": "~51.0.14", + "expo-constants": "~16.0.2", + "expo-font": "~12.0.7", + "expo-linking": "~6.3.1", + "expo-router": "~3.5.16", + "expo-splash-screen": "~0.27.5", + "expo-status-bar": "~1.12.1", + "expo-system-ui": "~3.0.6", + "expo-web-browser": "~13.0.3", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-hook-form": "^7.53.2", + "react-native": "0.74.2", + "react-native-device-info": "^11.1.0", + "react-native-gesture-handler": "~2.16.1", + "react-native-get-random-values": "^1.11.0", + "react-native-reanimated": "~3.10.1", + "react-native-root-toast": "^3.6.0", + "react-native-safe-area-context": "4.10.1", + "react-native-screens": "3.31.1", + "react-native-toast-message": "^2.2.1", + "react-native-web": "~0.19.10", + "uuid": "^10.0.0" + }, + "devDependencies": { + "@babel/core": "^7.20.0", + "@types/jest": "^29.5.12", + "@types/react": "~18.2.45", + "@types/react-test-renderer": "^18.0.7", + "eslint": "^8.57.0", + "eslint-config-expo": "~7.1.2", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "jest": "^29.2.1", + "jest-expo": "~51.0.1", + "prettier": "^3.3.3", + "react-test-renderer": "18.2.0", + "ts-proto": "1.181.1", + "typescript": "~5.3.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", + "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz", + "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-decorators": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-default-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.25.9.tgz", + "integrity": "sha512-ykqgwNfSnNOB+C8fV5X4mG3AVmvu+WVxcaU9xHHtBb7PCrPeweMmPjGsn8eMaeJg6SJuoUuZENeeSWaarWqonQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "peer": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", + "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-default-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.25.9.tgz", + "integrity": "sha512-9MhJ/SMTsVqsd69GyQg89lYR4o9T+oDGv5F6IsigxxqFVOyR/IflDLYP8WDI1l8fkhNGGktqkvL5qwNCtGEpgQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", + "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "peer": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.9.tgz", + "integrity": "sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-flow": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", + "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", + "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-flow": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.25.9.tgz", + "integrity": "sha512-EASHsAhE+SSlEzJ4bzfusnXSHiU+JfAYzj+jbw2vgQKgq5HrUr8qs+vgtiEL5dOH6sEweI+PNt2D7AqrDSHyqQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-flow-strip-types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", + "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.25.9.tgz", + "integrity": "sha512-8D43jXtGsYmEeDvm4MWHYUpWf8iiXgWYx3fW7E7Wb7Oe6FWqJPl5K6TuFW0dOwNZzEE5rjlaSJYH9JjrUKJszA==", + "dependencies": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.6", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@egjs/hammerjs": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", + "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", + "dependencies": { + "@types/hammerjs": "^2.0.36" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@expo/bunyan": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.1.tgz", + "integrity": "sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==", + "dependencies": { + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@expo/bunyan/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@expo/cli": { + "version": "0.18.31", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.18.31.tgz", + "integrity": "sha512-v9llw9fT3Uv+TCM6Xllo54t672CuYtinEQZ2LPJ2EJsCwuTc4Cd2gXQaouuIVD21VoeGQnr5JtJuWbF97sBKzQ==", + "dependencies": { + "@babel/runtime": "^7.20.0", + "@expo/code-signing-certificates": "0.0.5", + "@expo/config": "~9.0.0-beta.0", + "@expo/config-plugins": "~8.0.8", + "@expo/devcert": "^1.0.0", + "@expo/env": "~0.3.0", + "@expo/image-utils": "^0.5.0", + "@expo/json-file": "^8.3.0", + "@expo/metro-config": "0.18.11", + "@expo/osascript": "^2.0.31", + "@expo/package-manager": "^1.5.0", + "@expo/plist": "^0.1.0", + "@expo/prebuild-config": "7.0.9", + "@expo/rudder-sdk-node": "1.1.1", + "@expo/spawn-async": "^1.7.2", + "@expo/xcpretty": "^4.3.0", + "@react-native/dev-middleware": "0.74.85", + "@urql/core": "2.3.6", + "@urql/exchange-retry": "0.3.0", + "accepts": "^1.3.8", + "arg": "5.0.2", + "better-opn": "~3.0.2", + "bplist-creator": "0.0.7", + "bplist-parser": "^0.3.1", + "cacache": "^18.0.2", + "chalk": "^4.0.0", + "ci-info": "^3.3.0", + "connect": "^3.7.0", + "debug": "^4.3.4", + "env-editor": "^0.4.1", + "fast-glob": "^3.3.2", + "find-yarn-workspace-root": "~2.0.0", + "form-data": "^3.0.1", + "freeport-async": "2.0.0", + "fs-extra": "~8.1.0", + "getenv": "^1.0.0", + "glob": "^7.1.7", + "graphql": "15.8.0", + "graphql-tag": "^2.10.1", + "https-proxy-agent": "^5.0.1", + "internal-ip": "4.3.0", + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1", + "js-yaml": "^3.13.1", + "json-schema-deref-sync": "^0.13.0", + "lodash.debounce": "^4.0.8", + "md5hex": "^1.0.0", + "minimatch": "^3.0.4", + "node-fetch": "^2.6.7", + "node-forge": "^1.3.1", + "npm-package-arg": "^7.0.0", + "open": "^8.3.0", + "ora": "3.4.0", + "picomatch": "^3.0.1", + "pretty-bytes": "5.6.0", + "progress": "2.0.3", + "prompts": "^2.3.2", + "qrcode-terminal": "0.11.0", + "require-from-string": "^2.0.2", + "requireg": "^0.2.2", + "resolve": "^1.22.2", + "resolve-from": "^5.0.0", + "resolve.exports": "^2.0.2", + "semver": "^7.6.0", + "send": "^0.18.0", + "slugify": "^1.3.4", + "source-map-support": "~0.5.21", + "stacktrace-parser": "^0.1.10", + "structured-headers": "^0.4.1", + "tar": "^6.0.5", + "temp-dir": "^2.0.0", + "tempy": "^0.7.1", + "terminal-link": "^2.1.1", + "text-table": "^0.2.0", + "url-join": "4.0.0", + "wrap-ansi": "^7.0.0", + "ws": "^8.12.1" + }, + "bin": { + "expo-internal": "build/bin/cli" + } + }, + "node_modules/@expo/cli/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@expo/cli/node_modules/@expo/config": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", + "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/json-file": "^8.3.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "3.34.0" + } + }, + "node_modules/@expo/cli/node_modules/@expo/config-plugins": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", + "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "dependencies": { + "@expo/config-types": "^51.0.3", + "@expo/json-file": "~8.3.0", + "@expo/plist": "^0.1.0", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" + } + }, + "node_modules/@expo/cli/node_modules/@expo/config-plugins/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/cli/node_modules/@expo/config-types": { + "version": "51.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", + "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==" + }, + "node_modules/@expo/cli/node_modules/@expo/config/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/cli/node_modules/@expo/env": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz", + "integrity": "sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==", + "dependencies": { + "chalk": "^4.0.0", + "debug": "^4.3.4", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "getenv": "^1.0.0" + } + }, + "node_modules/@expo/cli/node_modules/@expo/json-file": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.2", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/@expo/cli/node_modules/@expo/metro-config": { + "version": "0.18.11", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.11.tgz", + "integrity": "sha512-/uOq55VbSf9yMbUO1BudkUM2SsGW1c5hr9BnhIqYqcsFv0Jp5D3DtJ4rljDKaUeNLbwr6m7pqIrkSMq5NrYf4Q==", + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.5", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", + "@expo/config": "~9.0.0-beta.0", + "@expo/env": "~0.3.0", + "@expo/json-file": "~8.3.0", + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "find-yarn-workspace-root": "~2.0.0", + "fs-extra": "^9.1.0", + "getenv": "^1.0.0", + "glob": "^7.2.3", + "jsc-safe-url": "^0.2.4", + "lightningcss": "~1.19.0", + "postcss": "~8.4.32", + "resolve-from": "^5.0.0" + } + }, + "node_modules/@expo/cli/node_modules/@expo/metro-config/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/cli/node_modules/@expo/plist": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "dependencies": { + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/@expo/cli/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@expo/cli/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@expo/cli/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@expo/cli/node_modules/fs-extra/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@expo/cli/node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@expo/cli/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/cli/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@expo/cli/node_modules/lightningcss": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz", + "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.19.0", + "lightningcss-darwin-x64": "1.19.0", + "lightningcss-linux-arm-gnueabihf": "1.19.0", + "lightningcss-linux-arm64-gnu": "1.19.0", + "lightningcss-linux-arm64-musl": "1.19.0", + "lightningcss-linux-x64-gnu": "1.19.0", + "lightningcss-linux-x64-musl": "1.19.0", + "lightningcss-win32-x64-msvc": "1.19.0" + } + }, + "node_modules/@expo/cli/node_modules/lightningcss-darwin-arm64": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz", + "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@expo/cli/node_modules/lightningcss-darwin-x64": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz", + "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@expo/cli/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz", + "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@expo/cli/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz", + "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@expo/cli/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz", + "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@expo/cli/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz", + "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@expo/cli/node_modules/lightningcss-linux-x64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz", + "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@expo/cli/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz", + "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@expo/cli/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/cli/node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/cli/node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/code-signing-certificates": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz", + "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==", + "dependencies": { + "node-forge": "^1.2.1", + "nullthrows": "^1.1.1" + } + }, + "node_modules/@expo/config": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.4.tgz", + "integrity": "sha512-pkvdPqKTaP6+Qvc8aTmDLQ9Dfwp98P1GO37MFKwsF5XormfN/9/eN8HfIRoM6d3uSIVKCcWW3X2yAEbNmOyfXw==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~9.0.0", + "@expo/config-types": "^52.0.0", + "@expo/json-file": "^9.0.0", + "deepmerge": "^4.3.1", + "getenv": "^1.0.0", + "glob": "^10.4.2", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "resolve-workspace-root": "^2.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "3.35.0" + } + }, + "node_modules/@expo/config-plugins": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.9.tgz", + "integrity": "sha512-pbgbY3SwCMwkijhfe163J05BrTx4MqzeaV+nVgUMs7vRcjHY1tfM57Pdv6SPtgeDvZ8fvdXFXXzkJva+a7C9Bw==", + "dependencies": { + "@expo/config-types": "^52.0.0", + "@expo/json-file": "~9.0.0", + "@expo/plist": "^0.2.0", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.5", + "getenv": "^1.0.0", + "glob": "^10.4.2", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" + } + }, + "node_modules/@expo/config-plugins/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/config-types": { + "version": "52.0.1", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.1.tgz", + "integrity": "sha512-vD8ZetyKV7U29lR6+NJohYeoLYTH+eNYXJeNiSOrWCz0witJYY11meMmEnpEaVbN89EfC6uauSUOa6wihtbyPQ==" + }, + "node_modules/@expo/config/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@expo/config/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/devcert": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.4.tgz", + "integrity": "sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==", + "dependencies": { + "application-config-path": "^0.1.0", + "command-exists": "^1.2.4", + "debug": "^3.1.0", + "eol": "^0.9.1", + "get-port": "^3.2.0", + "glob": "^10.4.2", + "lodash": "^4.17.21", + "mkdirp": "^0.5.1", + "password-prompt": "^1.0.4", + "sudo-prompt": "^8.2.0", + "tmp": "^0.0.33", + "tslib": "^2.4.0" + } + }, + "node_modules/@expo/devcert/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@expo/env": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.4.0.tgz", + "integrity": "sha512-g2JYFqck3xKIwJyK+8LxZ2ENZPWtRgjFWpeht9abnKgzXVXBeSNECFBkg+WQjQocSIdxXhEWM6hz4ZAe7Tc4ng==", + "dependencies": { + "chalk": "^4.0.0", + "debug": "^4.3.4", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "getenv": "^1.0.0" + } + }, + "node_modules/@expo/image-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.5.1.tgz", + "integrity": "sha512-U/GsFfFox88lXULmFJ9Shfl2aQGcwoKPF7fawSCLixIKtMCpsI+1r0h+5i0nQnmt9tHuzXZDL8+Dg1z6OhkI9A==", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.0.0", + "fs-extra": "9.0.0", + "getenv": "^1.0.0", + "jimp-compact": "0.16.1", + "node-fetch": "^2.6.0", + "parse-png": "^2.1.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "tempy": "0.3.0" + } + }, + "node_modules/@expo/image-utils/node_modules/crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/image-utils/node_modules/fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/image-utils/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/image-utils/node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/image-utils/node_modules/tempy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "dependencies": { + "temp-dir": "^1.0.0", + "type-fest": "^0.3.1", + "unique-string": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/image-utils/node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@expo/image-utils/node_modules/unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@expo/image-utils/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@expo/json-file": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.0.tgz", + "integrity": "sha512-M+55xFVrFzDcgMDf+52lPDLjKB5xwRfStWlv/b/Vu2OLgxGZLWpxoPYjlRoHqxjPbCQIi2ZCbobK+0KuNhsELg==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.3", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/@expo/json-file/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@expo/metro-config": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.19.4.tgz", + "integrity": "sha512-2SWwYN8MZvMIRawWEr+1RBYncitPwu2VMACRYig+wBycJ9fsPb6BMVmBYi+3MHDUlJHNy/Bqfw++jn1eqBFETQ==", + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.5", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", + "@expo/config": "~10.0.4", + "@expo/env": "~0.4.0", + "@expo/json-file": "~9.0.0", + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "fs-extra": "^9.1.0", + "getenv": "^1.0.0", + "glob": "^10.4.2", + "jsc-safe-url": "^0.2.4", + "lightningcss": "~1.27.0", + "minimatch": "^3.0.4", + "postcss": "~8.4.32", + "resolve-from": "^5.0.0" + } + }, + "node_modules/@expo/metro-runtime": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-3.2.3.tgz", + "integrity": "sha512-v5ji+fAGi7B9YavrxvekuF8gXEV/5fz0+PhaED5AaFDnbGB4IJIbpaiqK9nqZV1axjGZNQSw6Q8TsnFetCR3bQ==", + "peerDependencies": { + "react-native": "*" + } + }, + "node_modules/@expo/osascript": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.4.tgz", + "integrity": "sha512-LcPjxJ5FOFpqPORm+5MRLV0CuYWMthJYV6eerF+lQVXKlvgSn3EOqaHC3Vf3H+vmB0f6G4kdvvFtg40vG4bIhA==", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "exec-async": "^2.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@expo/package-manager": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.6.1.tgz", + "integrity": "sha512-4rT46wP/94Ll+CWXtFKok1Lbo9XncSUtErFOo/9/3FVughGbIfdG4SKZOAWIpr9wxwEfkyhHfAP9q71ONlWODw==", + "dependencies": { + "@expo/json-file": "^9.0.0", + "@expo/spawn-async": "^1.7.2", + "ansi-regex": "^5.0.0", + "chalk": "^4.0.0", + "find-up": "^5.0.0", + "js-yaml": "^3.13.1", + "micromatch": "^4.0.8", + "npm-package-arg": "^11.0.0", + "ora": "^3.4.0", + "resolve-workspace-root": "^2.0.0", + "split": "^1.0.1", + "sudo-prompt": "9.1.1" + } + }, + "node_modules/@expo/package-manager/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@expo/package-manager/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@expo/package-manager/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@expo/package-manager/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/@expo/package-manager/node_modules/npm-package-arg": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@expo/package-manager/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/package-manager/node_modules/sudo-prompt": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", + "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==" + }, + "node_modules/@expo/package-manager/node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@expo/plist": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.0.tgz", + "integrity": "sha512-F/IZJQaf8OIVnVA6XWUeMPC3OH6MV00Wxf0WC0JhTQht2QgjyHUa3U5Gs3vRtDq8tXNsZneOQRDVwpaOnd4zTQ==", + "dependencies": { + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/@expo/prebuild-config": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.9.tgz", + "integrity": "sha512-9i6Cg7jInpnGEHN0jxnW0P+0BexnePiBzmbUvzSbRXpdXihYUX2AKMu73jgzxn5P1hXOSkzNS7umaY+BZ+aBag==", + "dependencies": { + "@expo/config": "~9.0.0-beta.0", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/image-utils": "^0.5.0", + "@expo/json-file": "^8.3.0", + "@react-native/normalize-colors": "0.74.85", + "debug": "^4.3.1", + "fs-extra": "^9.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "xml2js": "0.6.0" + }, + "peerDependencies": { + "expo-modules-autolinking": ">=0.8.1" + } + }, + "node_modules/@expo/prebuild-config/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@expo/prebuild-config/node_modules/@expo/config": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", + "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/json-file": "^8.3.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "3.34.0" + } + }, + "node_modules/@expo/prebuild-config/node_modules/@expo/config-plugins": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", + "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "dependencies": { + "@expo/config-types": "^51.0.3", + "@expo/json-file": "~8.3.0", + "@expo/plist": "^0.1.0", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" + } + }, + "node_modules/@expo/prebuild-config/node_modules/@expo/config-types": { + "version": "51.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", + "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==" + }, + "node_modules/@expo/prebuild-config/node_modules/@expo/json-file": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.2", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/@expo/prebuild-config/node_modules/@expo/plist": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "dependencies": { + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/@expo/prebuild-config/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@expo/prebuild-config/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/prebuild-config/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/prebuild-config/node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/rudder-sdk-node": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", + "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", + "dependencies": { + "@expo/bunyan": "^4.0.0", + "@segment/loosely-validate-event": "^2.0.0", + "fetch-retry": "^4.1.1", + "md5": "^2.2.1", + "node-fetch": "^2.6.1", + "remove-trailing-slash": "^0.1.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@expo/rudder-sdk-node/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==" + }, + "node_modules/@expo/server": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@expo/server/-/server-0.4.4.tgz", + "integrity": "sha512-q9ADBzMN5rZ/fgQ2mz5YIJuZ8gelQlhG2CQqToD+UvBLZvbaHCNxTTSs2KI1LzJvAaW5CWgWMatGvGF6iUQ0LA==", + "dependencies": { + "@remix-run/node": "^2.7.2", + "abort-controller": "^3.0.0", + "debug": "^4.3.4", + "source-map-support": "~0.5.21" + } + }, + "node_modules/@expo/spawn-async": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz", + "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==", + "dependencies": { + "cross-spawn": "^7.0.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@expo/vector-icons": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.4.tgz", + "integrity": "sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ==", + "dependencies": { + "prop-types": "^15.8.1" + } + }, + "node_modules/@expo/xcpretty": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.1.tgz", + "integrity": "sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==", + "dependencies": { + "@babel/code-frame": "7.10.4", + "chalk": "^4.1.0", + "find-up": "^5.0.0", + "js-yaml": "^4.1.0" + }, + "bin": { + "excpretty": "build/cli.js" + } + }, + "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/ttlcache": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", + "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/create-cache-key-function": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", + "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", + "dependencies": { + "@jest/types": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.52.1.tgz", + "integrity": "sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/core": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.28.0.tgz", + "integrity": "sha512-ZLwRMV+fNDpVmF2WYUdBHlq0eOWtEaUJSusrzjGnBt7iSRvfjFE3RXYUZJrqou/wIDWV0DwQ5KIfYe9WXg9Xqw==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", + "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/exporter-trace-otlp-http": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.52.1.tgz", + "integrity": "sha512-05HcNizx0BxcFKKnS5rwOV+2GevLTVIRA0tRgWYyw4yCgR53Ic/xk83toYKts7kbzcI+dswInUg/4s8oyA+tqg==", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/otlp-exporter-base": "0.52.1", + "@opentelemetry/otlp-transformer": "0.52.1", + "@opentelemetry/resources": "1.25.1", + "@opentelemetry/sdk-trace-base": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/resources": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", + "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", + "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.55.0.tgz", + "integrity": "sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==", + "dependencies": { + "@opentelemetry/api-logs": "0.55.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-fetch": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fetch/-/instrumentation-fetch-0.55.0.tgz", + "integrity": "sha512-wkybQE85HzInYX2csZ4UuMlCIMCyGGHcNqL9TcoZgAZC2EuXFReTsLytoszknhcaX+P7UT9Ee3915t8KC6XP4w==", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/instrumentation": "0.55.0", + "@opentelemetry/sdk-trace-web": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-fetch/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", + "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-xml-http-request": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-xml-http-request/-/instrumentation-xml-http-request-0.55.0.tgz", + "integrity": "sha512-Wlz4LzDpBFxHpb24RAM6RoiGspJ7J16ux0Xw5KVLtK3zzpQaxMYEVF0XQNC61WJJa3tRNt3XRjiQ8mrXJZxVQg==", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/instrumentation": "0.55.0", + "@opentelemetry/sdk-trace-web": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", + "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.55.0.tgz", + "integrity": "sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@opentelemetry/otlp-exporter-base": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.52.1.tgz", + "integrity": "sha512-z175NXOtX5ihdlshtYBe5RpGeBoTXVCKPPLiQlD6FHvpM4Ch+p2B0yWKYSrBfLH24H9zjJiBdTrtD+hLlfnXEQ==", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/otlp-transformer": "0.52.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/otlp-transformer": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.52.1.tgz", + "integrity": "sha512-I88uCZSZZtVa0XniRqQWKbjAUm73I8tpEy/uJYPPYw5d7BRdVk0RfTBQw8kSUl01oVWEuqxLDa802222MYyWHg==", + "dependencies": { + "@opentelemetry/api-logs": "0.52.1", + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1", + "@opentelemetry/sdk-logs": "0.52.1", + "@opentelemetry/sdk-metrics": "1.25.1", + "@opentelemetry/sdk-trace-base": "1.25.1", + "protobufjs": "^7.3.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", + "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", + "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.28.0.tgz", + "integrity": "sha512-cIyXSVJjGeTICENN40YSvLDAq4Y2502hGK3iN7tfdynQLKWb3XWZQEkPc+eSx47kiy11YeFAlYkEfXwR1w8kfw==", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", + "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-logs": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.52.1.tgz", + "integrity": "sha512-MBYh+WcPPsN8YpRHRmK1Hsca9pVlyyKd4BxOC4SsgHACnl/bPp4Cri9hWhVm5+2tiQ9Zf4qSc1Jshw9tOLGWQA==", + "dependencies": { + "@opentelemetry/api-logs": "0.52.1", + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", + "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-metrics": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz", + "integrity": "sha512-9Mb7q5ioFL4E4dDrc4wC/A3NTHDat44v4I3p2pLPSxRvqUbDIQyMVr9uK+EU69+HWhlET1VaSrRzwdckWqY15Q==", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1", + "lodash.merge": "^4.6.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", + "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.28.0.tgz", + "integrity": "sha512-ceUVWuCpIao7Y5xE02Xs3nQi0tOGmMea17ecBdwtCvdo9ekmO+ijc9RFDgfifMl7XCBf41zne/1POM3LqSTZDA==", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/resources": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", + "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-trace-web": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.28.0.tgz", + "integrity": "sha512-/QOIrJc/A/caKbA9voLua4isf///cjQKB6gomEzX2fL18TBqZhIkm9k2DpjlbtrQoYCJDZ9x7Phrec22aQGpQw==", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/sdk-trace-base": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-web/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", + "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz", + "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz", + "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.0" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@react-native-async-storage/async-storage": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.1.0.tgz", + "integrity": "sha512-eAGQGPTAuFNEoIQSB5j2Jh1zm5NPyBRTfjRMfCN0W1OakC5WIB5vsDyIQhUweKN9XOE2/V07lqTMGsL0dGXNkA==", + "dependencies": { + "merge-options": "^3.0.4" + }, + "peerDependencies": { + "react-native": "^0.0.0-0 || >=0.65 <1.0" + } + }, + "node_modules/@react-native-community/cli": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-13.6.8.tgz", + "integrity": "sha512-0lRdgLNaXixWY4BfFRl1J6Ao9Lapo2z+++iE7TD4GAbuxOWJSyFi+KUA8XNfSDyML4jFO02MZgyBPxAWdaminQ==", + "dependencies": { + "@react-native-community/cli-clean": "13.6.8", + "@react-native-community/cli-config": "13.6.8", + "@react-native-community/cli-debugger-ui": "13.6.8", + "@react-native-community/cli-doctor": "13.6.8", + "@react-native-community/cli-hermes": "13.6.8", + "@react-native-community/cli-server-api": "13.6.8", + "@react-native-community/cli-tools": "13.6.8", + "@react-native-community/cli-types": "13.6.8", + "chalk": "^4.1.2", + "commander": "^9.4.1", + "deepmerge": "^4.3.0", + "execa": "^5.0.0", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "graceful-fs": "^4.1.3", + "prompts": "^2.4.2", + "semver": "^7.5.2" + }, + "bin": { + "rnc-cli": "build/bin.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native-community/cli-clean": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-13.6.8.tgz", + "integrity": "sha512-B1uxlm1N4BQuWFvBL3yRl3LVvydjswsdbTi7tMrHMtSxfRio1p9HjcmDzlzKco09Y+8qBGgakm3jcMZGLbhXQQ==", + "dependencies": { + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "execa": "^5.0.0", + "fast-glob": "^3.3.2" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/@react-native-community/cli-config": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-13.6.8.tgz", + "integrity": "sha512-RabCkIsWdP4Ex/sf1uSP9qxc30utm+0uIJAjrZkNQynm7T4Lyqn/kT3LKm4yM6M0Qk61YxGguiaXF4601vAduw==", + "dependencies": { + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "cosmiconfig": "^5.1.0", + "deepmerge": "^4.3.0", + "fast-glob": "^3.3.2", + "joi": "^17.2.1" + } + }, + "node_modules/@react-native-community/cli-debugger-ui": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.8.tgz", + "integrity": "sha512-2cS+MX/Su6sVSjqpDftFOXbK7EuPg98xzsPkdPhkQnkZwvXqodK9CAMuDMbx3lBHHtrPrpMbBCpFmPN8iVOnlA==", + "dependencies": { + "serve-static": "^1.13.1" + } + }, + "node_modules/@react-native-community/cli-doctor": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-13.6.8.tgz", + "integrity": "sha512-/3Vdy9J3hyiu0y3nd/CU3kBqPlTRxnLXg7V6jrA1jbTOlZAMyV9imEkrqEaGK0SMOyMhh9Pipf98Ozhk0Nl4QA==", + "dependencies": { + "@react-native-community/cli-config": "13.6.8", + "@react-native-community/cli-platform-android": "13.6.8", + "@react-native-community/cli-platform-apple": "13.6.8", + "@react-native-community/cli-platform-ios": "13.6.8", + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "command-exists": "^1.2.8", + "deepmerge": "^4.3.0", + "envinfo": "^7.10.0", + "execa": "^5.0.0", + "hermes-profile-transformer": "^0.0.6", + "node-stream-zip": "^1.9.1", + "ora": "^5.4.1", + "semver": "^7.5.2", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1", + "yaml": "^2.2.1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-hermes": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-13.6.8.tgz", + "integrity": "sha512-lZi/OBFuZUj5cLK94oEgtrtmxGoqeYVRcnHXl/R5c4put9PDl+qH2bEMlGZkFiw57ae3UZKr3TMk+1s4jh3FYQ==", + "dependencies": { + "@react-native-community/cli-platform-android": "13.6.8", + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "hermes-profile-transformer": "^0.0.6" + } + }, + "node_modules/@react-native-community/cli-platform-android": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.8.tgz", + "integrity": "sha512-vWrqeLRRTwp2kO33nbrAgbYn8HR2c2CpIfyVJY9Ckk7HGUSwDyxdcSu7YBvt2ShdfLZH0HctWFNXsgGrfg6BDw==", + "dependencies": { + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "execa": "^5.0.0", + "fast-glob": "^3.3.2", + "fast-xml-parser": "^4.2.4", + "logkitty": "^0.7.1" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/@react-native-community/cli-platform-apple": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.8.tgz", + "integrity": "sha512-1JPohnlXPqU44zns3ALEzIbH2cKRw6JtEDJERgLuEUbs2r2NeJgqDbKyZ7fTTO8o+pegDnn6+Rr7qGVVOuUzzg==", + "dependencies": { + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "execa": "^5.0.0", + "fast-glob": "^3.3.2", + "fast-xml-parser": "^4.0.12", + "ora": "^5.4.1" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/@react-native-community/cli-platform-ios": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.8.tgz", + "integrity": "sha512-/IIcIRM8qaoD7iZqsvtf6Qq1AwtChWYfB9sTn3mTiolZ5Zd5bXH37g+6liPfAICRkj2Ptq3iXmjrDVUQAxrOXw==", + "dependencies": { + "@react-native-community/cli-platform-apple": "13.6.8" + } + }, + "node_modules/@react-native-community/cli-server-api": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-13.6.8.tgz", + "integrity": "sha512-Lx664oWTzpVfbKUTy+3GIX7e+Mt5Zn+zdkM4ehllNdik/lbB3tM9Nrg8PSvOfI+tTXs2w55+nIydLfH+0FqJVg==", + "dependencies": { + "@react-native-community/cli-debugger-ui": "13.6.8", + "@react-native-community/cli-tools": "13.6.8", + "compression": "^1.7.1", + "connect": "^3.6.5", + "errorhandler": "^1.5.1", + "nocache": "^3.0.1", + "pretty-format": "^26.6.2", + "serve-static": "^1.13.1", + "ws": "^6.2.2" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/@types/yargs": { + "version": "15.0.19", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", + "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/@react-native-community/cli-server-api/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@react-native-community/cli-tools": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-13.6.8.tgz", + "integrity": "sha512-1MYlae9EkbjC7DBYOGMH5xF9yDoeNYUKgEdDjL6WAUBoF2gtwiZPM6igLKi/+dhb5sCtC7fiLrLi0Oevdf+RmQ==", + "dependencies": { + "appdirsjs": "^1.2.4", + "chalk": "^4.1.2", + "execa": "^5.0.0", + "find-up": "^5.0.0", + "mime": "^2.4.1", + "node-fetch": "^2.6.0", + "open": "^6.2.0", + "ora": "^5.4.1", + "semver": "^7.5.2", + "shell-quote": "^1.7.3", + "sudo-prompt": "^9.0.0" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/@react-native-community/cli-tools/node_modules/sudo-prompt": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", + "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" + }, + "node_modules/@react-native-community/cli-types": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-13.6.8.tgz", + "integrity": "sha512-C4mVByy0i+/NPuPhdMLBR7ubEVkjVS1VwoQu/BoG1crJFNE+167QXAzH01eFbXndsjZaMWmD4Gerx7TYc6lHfA==", + "dependencies": { + "joi": "^17.2.1" + } + }, + "node_modules/@react-native-community/cli/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/@react-native-community/cli/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@react-native-community/cli/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@react-native-community/cli/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/@react-native-community/cli/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@react-native/assets-registry": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.84.tgz", + "integrity": "sha512-dzUhwyaX04QosWZ8zyaaNB/WYZIdeDN1lcpfQbqiOhZJShRH+FLTDVONE/dqlMQrP+EO7lDqF0RrlIt9lnOCQQ==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/babel-plugin-codegen": { + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.87.tgz", + "integrity": "sha512-+vJYpMnENFrwtgvDfUj+CtVJRJuUnzAUYT0/Pb68Sq9RfcZ5xdcCuUgyf7JO+akW2VTBoJY427wkcxU30qrWWw==", + "dependencies": { + "@react-native/codegen": "0.74.87" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/babel-preset": { + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.87.tgz", + "integrity": "sha512-hyKpfqzN2nxZmYYJ0tQIHG99FQO0OWXp/gVggAfEUgiT+yNKas1C60LuofUsK7cd+2o9jrpqgqW4WzEDZoBlTg==", + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.18.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", + "@babel/plugin-proposal-numeric-separator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.20.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.18.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.20.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.20.0", + "@babel/plugin-transform-flow-strip-types": "^7.20.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "@react-native/babel-plugin-codegen": "0.74.87", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/codegen": { + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.87.tgz", + "integrity": "sha512-GMSYDiD+86zLKgMMgz9z0k6FxmRn+z6cimYZKkucW4soGbxWsbjUAZoZ56sJwt2FJ3XVRgXCrnOCgXoH/Bkhcg==", + "dependencies": { + "@babel/parser": "^7.20.0", + "glob": "^7.1.1", + "hermes-parser": "0.19.1", + "invariant": "^2.2.4", + "jscodeshift": "^0.14.0", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + } + }, + "node_modules/@react-native/codegen/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native/community-cli-plugin": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.84.tgz", + "integrity": "sha512-GBKE+1sUh86fS2XXV46gMCNHMc1KetshMbYJ0AhDhldpaILZHqRBX50mdVsiYVvkzp4QjM0nmYqefuJ9NVwicQ==", + "dependencies": { + "@react-native-community/cli-server-api": "13.6.8", + "@react-native-community/cli-tools": "13.6.8", + "@react-native/dev-middleware": "0.74.84", + "@react-native/metro-babel-transformer": "0.74.84", + "chalk": "^4.0.0", + "execa": "^5.1.1", + "metro": "^0.80.3", + "metro-config": "^0.80.3", + "metro-core": "^0.80.3", + "node-fetch": "^2.2.0", + "querystring": "^0.2.1", + "readline": "^1.3.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/debugger-frontend": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.84.tgz", + "integrity": "sha512-YUEA03UNFbiYzHpYxlcS2D9+3eNT5YLGkl5yRg3nOSN6KbCc/OttGnNZme+tuSOJwjMN/vcvtDKYkTqjJw8U0A==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.84.tgz", + "integrity": "sha512-veYw/WmyrAOQHUiIeULzn2duJQnXDPiKq2jZ/lcmDo6jsLirpp+Q73lx09TYgy/oVoPRuV0nfmU3x9B6EV/7qQ==", + "dependencies": { + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.74.84", + "@rnx-kit/chromium-edge-launcher": "^1.0.0", + "chrome-launcher": "^0.15.2", + "connect": "^3.6.5", + "debug": "^2.2.0", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "selfsigned": "^2.4.1", + "serve-static": "^1.13.1", + "temp-dir": "^2.0.0", + "ws": "^6.2.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/@react-native/community-cli-plugin/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/@react-native/community-cli-plugin/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@react-native/debugger-frontend": { + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.85.tgz", + "integrity": "sha512-gUIhhpsYLUTYWlWw4vGztyHaX/kNlgVspSvKe2XaPA7o3jYKUoNLc3Ov7u70u/MBWfKdcEffWq44eSe3j3s5JQ==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/dev-middleware": { + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.85.tgz", + "integrity": "sha512-BRmgCK5vnMmHaKRO+h8PKJmHHH3E6JFuerrcfE3wG2eZ1bcSr+QTu8DAlpxsDWvJvHpCi8tRJGauxd+Ssj/c7w==", + "dependencies": { + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.74.85", + "@rnx-kit/chromium-edge-launcher": "^1.0.0", + "chrome-launcher": "^0.15.2", + "connect": "^3.6.5", + "debug": "^2.2.0", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "selfsigned": "^2.4.1", + "serve-static": "^1.13.1", + "temp-dir": "^2.0.0", + "ws": "^6.2.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/@react-native/dev-middleware/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@react-native/gradle-plugin": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.84.tgz", + "integrity": "sha512-wYWC5WWXqzCCe4PDogz9pNc4xH5ZamahW5XGSbrrYJ5V3walZ+7z43V6iEBJkZbLjj9YBcSttkXYGr1Xh4veAg==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/js-polyfills": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.84.tgz", + "integrity": "sha512-+PgxuUjBw9JVlz6m4ECsIJMLbDopnr4rpLmsG32hQaJrg0wMuvHtsgAY/J/aVCSG2GNUXexfjrnhc+O9yGOZXQ==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/metro-babel-transformer": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.84.tgz", + "integrity": "sha512-YtVGq7jkgyUECv5yt4BOFbOXyW4ddUn8+dnwGGpJKdfhXYL5o5++AxNdE+2x+SZdkj3JUVekGKPwRabFECABaw==", + "dependencies": { + "@babel/core": "^7.20.0", + "@react-native/babel-preset": "0.74.84", + "hermes-parser": "0.19.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/babel-plugin-codegen": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.84.tgz", + "integrity": "sha512-UR4uiii5szIJA84mSC6GJOfYKDq7/ThyetOQT62+BBcyGeHVtHlNLNRzgaMeLqIQaT8Fq4pccMI+7QqLOMXzdw==", + "dependencies": { + "@react-native/codegen": "0.74.84" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/babel-preset": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.84.tgz", + "integrity": "sha512-WUfu6Y4aGuVdocQZvx33BJiQWFH6kRCHYbZfBn2psgFrSRLgQWEQrDCxqPFObNAVSayM0rNhp2FvI5K/Eyeqlg==", + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.18.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", + "@babel/plugin-proposal-numeric-separator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.20.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.18.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.20.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.20.0", + "@babel/plugin-transform-flow-strip-types": "^7.20.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "@react-native/babel-plugin-codegen": "0.74.84", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/codegen": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.84.tgz", + "integrity": "sha512-0hXlnu9i0o8v+gXKQi+x6T471L85kCDwW4WrJiYAeOheWrQdNNW6rC3g8+LL7HXAf7QcHGU/8/d57iYfdVK2BQ==", + "dependencies": { + "@babel/parser": "^7.20.0", + "glob": "^7.1.1", + "hermes-parser": "0.19.1", + "invariant": "^2.2.4", + "jscodeshift": "^0.14.0", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + } + }, + "node_modules/@react-native/metro-babel-transformer/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native/normalize-color": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz", + "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==" + }, + "node_modules/@react-native/normalize-colors": { + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz", + "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==" + }, + "node_modules/@react-native/virtualized-lists": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.84.tgz", + "integrity": "sha512-XcV+qdqt2WihaY4iRm/M1FdSy+18lecU9mRXNmy9YK8g9Th/8XbNtmmKI0qWBx3KxyuXMH/zd0ps05YTrX16kw==", + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/react": "^18.2.6", + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@react-navigation/bottom-tabs": { + "version": "6.5.20", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.20.tgz", + "integrity": "sha512-ow6Z06iS4VqBO8d7FP+HsGjJLWt2xTWIvuWjpoCvsM/uQXzCRDIjBv9HaKcXbF0yTW7IMir0oDAbU5PFzEDdgA==", + "dependencies": { + "@react-navigation/elements": "^1.3.30", + "color": "^4.2.3", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/core": { + "version": "6.4.17", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.17.tgz", + "integrity": "sha512-Nd76EpomzChWAosGqWOYE3ItayhDzIEzzZsT7PfGcRFDgW5miHV2t4MZcq9YIK4tzxZjVVpYbIynOOQQd1e0Cg==", + "dependencies": { + "@react-navigation/routers": "^6.1.9", + "escape-string-regexp": "^4.0.0", + "nanoid": "^3.1.23", + "query-string": "^7.1.3", + "react-is": "^16.13.0", + "use-latest-callback": "^0.2.1" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@react-navigation/elements": { + "version": "1.3.31", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.31.tgz", + "integrity": "sha512-bUzP4Awlljx5RKEExw8WYtif8EuQni2glDaieYROKTnaxsu9kEIA515sXQgUDZU4Ob12VoL7+z70uO3qrlfXcQ==", + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/native": { + "version": "6.1.18", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.18.tgz", + "integrity": "sha512-mIT9MiL/vMm4eirLcmw2h6h/Nm5FICtnYSdohq4vTLA2FF/6PNhByM7s8ffqoVfE5L0uAa6Xda1B7oddolUiGg==", + "dependencies": { + "@react-navigation/core": "^6.4.17", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.1.23" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/@react-navigation/native-stack": { + "version": "6.9.26", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.26.tgz", + "integrity": "sha512-++dueQ+FDj2XkZ902DVrK79ub1vp19nSdAZWxKRgd6+Bc0Niiesua6rMCqymYOVaYh+dagwkA9r00bpt/U5WLw==", + "dependencies": { + "@react-navigation/elements": "^1.3.30", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/routers": { + "version": "6.1.9", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.9.tgz", + "integrity": "sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==", + "dependencies": { + "nanoid": "^3.1.23" + } + }, + "node_modules/@remix-run/node": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@remix-run/node/-/node-2.14.0.tgz", + "integrity": "sha512-ou16LMJYv0ElIToZ6dDqaLjv1T3iBEwuJTBahveEA8NkkACIWODJ2fgUYf1UKLMKHVdHjNImLzS37HdSZY0Q6g==", + "dependencies": { + "@remix-run/server-runtime": "2.14.0", + "@remix-run/web-fetch": "^4.4.2", + "@web3-storage/multipart-parser": "^1.0.0", + "cookie-signature": "^1.1.0", + "source-map-support": "^0.5.21", + "stream-slice": "^0.1.2", + "undici": "^6.11.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@remix-run/router": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", + "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@remix-run/server-runtime": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.14.0.tgz", + "integrity": "sha512-9Th9UzDaoFFBD7zA5mRI1KT8JktFLN4ij9jPygrKBhG/kYmNIvhcMtq9VyjcbMvFK5natTyhOhrrKRIHtijD4w==", + "dependencies": { + "@remix-run/router": "1.21.0", + "@types/cookie": "^0.6.0", + "@web3-storage/multipart-parser": "^1.0.0", + "cookie": "^0.6.0", + "set-cookie-parser": "^2.4.8", + "source-map": "^0.7.3", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@remix-run/web-blob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-blob/-/web-blob-3.1.0.tgz", + "integrity": "sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==", + "dependencies": { + "@remix-run/web-stream": "^1.1.0", + "web-encoding": "1.1.5" + } + }, + "node_modules/@remix-run/web-fetch": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@remix-run/web-fetch/-/web-fetch-4.4.2.tgz", + "integrity": "sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==", + "dependencies": { + "@remix-run/web-blob": "^3.1.0", + "@remix-run/web-file": "^3.1.0", + "@remix-run/web-form-data": "^3.1.0", + "@remix-run/web-stream": "^1.1.0", + "@web3-storage/multipart-parser": "^1.0.0", + "abort-controller": "^3.0.0", + "data-uri-to-buffer": "^3.0.1", + "mrmime": "^1.0.0" + }, + "engines": { + "node": "^10.17 || >=12.3" + } + }, + "node_modules/@remix-run/web-file": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-file/-/web-file-3.1.0.tgz", + "integrity": "sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==", + "dependencies": { + "@remix-run/web-blob": "^3.1.0" + } + }, + "node_modules/@remix-run/web-form-data": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz", + "integrity": "sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==", + "dependencies": { + "web-encoding": "1.1.5" + } + }, + "node_modules/@remix-run/web-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-stream/-/web-stream-1.1.0.tgz", + "integrity": "sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==", + "dependencies": { + "web-streams-polyfill": "^3.1.1" + } + }, + "node_modules/@rnx-kit/chromium-edge-launcher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz", + "integrity": "sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==", + "dependencies": { + "@types/node": "^18.0.0", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=14.15" + } + }, + "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, + "node_modules/@segment/loosely-validate-event": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", + "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", + "dependencies": { + "component-type": "^1.2.1", + "join-component": "^1.1.0" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@tanstack/query-core": { + "version": "4.36.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz", + "integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "4.36.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz", + "integrity": "sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==", + "dependencies": { + "@tanstack/query-core": "4.36.1", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-native": "*" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hammerjs": { + "version": "2.0.46", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.46.tgz", + "integrity": "sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.19.64", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.64.tgz", + "integrity": "sha512-955mDqvO2vFf/oL7V3WiUtiz+BugyX8uVbaT2H8oj3+8dRyH2FLiNdowe7eNqRM7IOIZvzDH76EoAT+gwm6aIQ==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.2.79", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", + "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-native-get-random-values": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@types/react-native-get-random-values/-/react-native-get-random-values-1.8.2.tgz", + "integrity": "sha512-CmtnfZnHKkVupG71SI9S7DDqkV6dtxxNIAzh2r1F1/tB8vg2weBtLhHmcruMIwp9Y69IZZ3DwJ0BhRpsbj42QA==" + }, + "node_modules/@types/react-test-renderer": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.3.0.tgz", + "integrity": "sha512-HW4MuEYxfDbOHQsVlY/XtOvNHftCVEPhJF2pQXXwcUiUF+Oyb0usgp48HSgpK5rt8m9KZb22yqOeZm+rrVG8gw==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/shimmer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", + "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@urql/core": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz", + "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.0", + "wonka": "^4.0.14" + }, + "peerDependencies": { + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@urql/exchange-retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz", + "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==", + "dependencies": { + "@urql/core": ">=2.3.1", + "wonka": "^4.0.14" + }, + "peerDependencies": { + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@web3-storage/multipart-parser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", + "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==" + }, + "node_modules/@xmldom/xmldom": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", + "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==", + "deprecated": "this version is no longer supported, please update to at least 0.8.*", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/anser": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", + "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==" + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-fragments": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", + "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", + "dependencies": { + "colorette": "^1.0.7", + "slice-ansi": "^2.0.0", + "strip-ansi": "^5.0.0" + } + }, + "node_modules/ansi-fragments/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-fragments/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/appdirsjs": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", + "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==" + }, + "node_modules/application-config-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz", + "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==" + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/ast-types": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", + "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-react-compiler": { + "version": "0.0.0-experimental-592953e-20240517", + "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-0.0.0-experimental-592953e-20240517.tgz", + "integrity": "sha512-OjG1SVaeQZaJrqkMFJatg8W/MTow8Ak5rx2SI0ETQBO1XvOk/XZGMbltNCPdFJLKghBYoBjC+Y3Ap/Xr7B01mA==", + "dependencies": { + "@babel/generator": "7.2.0", + "@babel/types": "^7.19.0", + "chalk": "4", + "invariant": "^2.2.4", + "pretty-format": "^24", + "zod": "^3.22.4", + "zod-validation-error": "^2.1.0" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/@babel/generator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.0.tgz", + "integrity": "sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==", + "dependencies": { + "@babel/types": "^7.2.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/babel-plugin-react-compiler/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dependencies": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-plugin-react-native-web": { + "version": "0.19.13", + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.13.tgz", + "integrity": "sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==" + }, + "node_modules/babel-plugin-transform-flow-enums": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", + "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==", + "dependencies": { + "@babel/plugin-syntax-flow": "^7.12.1" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-expo": { + "version": "11.0.15", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.15.tgz", + "integrity": "sha512-rgiMTYwqIPULaO7iZdqyL7aAff9QLOX6OWUtLZBlOrOTreGY1yHah/5+l8MvI6NVc/8Zj5LY4Y5uMSnJIuzTLw==", + "dependencies": { + "@babel/plugin-proposal-decorators": "^7.12.9", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/preset-react": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@react-native/babel-preset": "0.74.87", + "babel-plugin-react-compiler": "0.0.0-experimental-592953e-20240517", + "babel-plugin-react-native-web": "~0.19.10", + "react-refresh": "^0.14.2" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "dependencies": { + "open": "^8.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bplist-creator": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", + "integrity": "sha512-xp/tcaV3T5PCiaY04mXga7o/TE+t95gqeLmADeBI1CvZtdWTbgBt3uLpvh4UWtenKeBhCV6oVxGk38yZr2uYEA==", + "dependencies": { + "stream-buffers": "~2.2.0" + } + }, + "node_modules/bplist-parser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-callsite/node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001680", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", + "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/case-anything": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz", + "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==", + "dev": true, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "engines": { + "node": "*" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-launcher": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/component-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz", + "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "dependencies": { + "browserslist": "^4.24.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/cosmiconfig/node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", + "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "engines": { + "node": "*" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-in-js-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz", + "integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==", + "dependencies": { + "hyphenate-style-name": "^1.0.3" + } + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true + }, + "node_modules/dag-map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", + "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==" + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/deprecated-react-native-prop-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz", + "integrity": "sha512-pWD0voFtNYxrVqvBMYf5gq3NA2GCpfodS1yNynTPc93AYA/KEMGeWDqqeUB6R2Z9ZofVhks2aeJXiuQqKNpesA==", + "dependencies": { + "@react-native/normalize-color": "*", + "invariant": "*", + "prop-types": "*" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dprint-node": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.8.tgz", + "integrity": "sha512-iVKnUtYfGrYcW1ZAlfR/F59cUVL8QIhWoBJoSjkkdua/dkWIgjZfiLMeTjiB06X0ZLkQ0M2C1VbUj/CxkIf1zg==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.61", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.61.tgz", + "integrity": "sha512-CcRGSBCBB6L9c3PBJWYYrBo6Bzeoi+GZTKvtuRtooJGWsINk+mOInZWcssU35zDTAwreVcrMimc9aMyPpehRNw==" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-editor": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", + "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/envinfo": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/errorhandler": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", + "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", + "dependencies": { + "accepts": "~1.3.7", + "escape-html": "~1.0.3" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-abstract": { + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-expo": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-expo/-/eslint-config-expo-7.1.2.tgz", + "integrity": "sha512-WxrDVNklN43Op0v3fglQfzL2bC7vqacUq9oVwJcGCUEDzdM7kGOR6pfEJiz3i3dQv3cFjHtct0CFEExep5c/dA==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "^7.4.0", + "@typescript-eslint/parser": "^7.4.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-expo": "^0.0.1", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-react": "^7.34.0", + "eslint-plugin-react-hooks": "^4.6.0" + }, + "peerDependencies": { + "eslint": ">=8.10" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz", + "integrity": "sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==", + "dev": true, + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.5", + "enhanced-resolve": "^5.15.0", + "eslint-module-utils": "^2.8.1", + "fast-glob": "^3.3.2", + "get-tsconfig": "^4.7.5", + "is-bun-module": "^1.0.2", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-expo": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-expo/-/eslint-plugin-expo-0.0.1.tgz", + "integrity": "sha512-dNri81vunJ3T+N1YWWxjLU6ux6KiukwZ4ECXCOPp8hG7M4kuvPAb9YQSIM63AT0pbtfYH/a6htikhaQcRPjhRA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "^7.2.0", + "@typescript-eslint/utils": "^7.2.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.1.0", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/exec-async": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", + "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==" + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/expo": { + "version": "51.0.39", + "resolved": "https://registry.npmjs.org/expo/-/expo-51.0.39.tgz", + "integrity": "sha512-Cs/9xopyzJrpXWbyVUZnr37rprdFJorRgfSp6cdBfvbjxZeKnw2MEu7wJwV/s626i5lZTPGjZPHUF9uQvt51cg==", + "dependencies": { + "@babel/runtime": "^7.20.0", + "@expo/cli": "0.18.31", + "@expo/config": "9.0.4", + "@expo/config-plugins": "8.0.11", + "@expo/metro-config": "0.18.11", + "@expo/vector-icons": "^14.0.3", + "babel-preset-expo": "~11.0.15", + "expo-asset": "~10.0.10", + "expo-file-system": "~17.0.1", + "expo-font": "~12.0.10", + "expo-keep-awake": "~13.0.2", + "expo-modules-autolinking": "1.11.3", + "expo-modules-core": "1.12.26", + "fbemitter": "^3.0.0", + "whatwg-url-without-unicode": "8.0.0-3" + }, + "bin": { + "expo": "bin/cli" + } + }, + "node_modules/expo-asset": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-10.0.10.tgz", + "integrity": "sha512-0qoTIihB79k+wGus9wy0JMKq7DdenziVx3iUkGvMAy2azscSgWH6bd2gJ9CGnhC6JRd3qTMFBL0ou/fx7WZl7A==", + "dependencies": { + "expo-constants": "~16.0.0", + "invariant": "^2.2.4", + "md5-file": "^3.2.3" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-constants": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-16.0.2.tgz", + "integrity": "sha512-9tNY3OVO0jfiMzl7ngb6IOyR5VFzNoN5OOazUWoeGfmMqVB5kltTemRvKraK9JRbBKIw+SOYLEmF0sEqgFZ6OQ==", + "dependencies": { + "@expo/config": "~9.0.0", + "@expo/env": "~0.3.0" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-constants/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/expo-constants/node_modules/@expo/config": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", + "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/json-file": "^8.3.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "3.34.0" + } + }, + "node_modules/expo-constants/node_modules/@expo/config-plugins": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", + "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "dependencies": { + "@expo/config-types": "^51.0.3", + "@expo/json-file": "~8.3.0", + "@expo/plist": "^0.1.0", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" + } + }, + "node_modules/expo-constants/node_modules/@expo/config-types": { + "version": "51.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", + "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==" + }, + "node_modules/expo-constants/node_modules/@expo/env": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz", + "integrity": "sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==", + "dependencies": { + "chalk": "^4.0.0", + "debug": "^4.3.4", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "getenv": "^1.0.0" + } + }, + "node_modules/expo-constants/node_modules/@expo/json-file": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.2", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/expo-constants/node_modules/@expo/plist": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "dependencies": { + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/expo-constants/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/expo-constants/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/expo-constants/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/expo-constants/node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/expo-file-system": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-17.0.1.tgz", + "integrity": "sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw==", + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-font": { + "version": "12.0.10", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.10.tgz", + "integrity": "sha512-Q1i2NuYri3jy32zdnBaHHCya1wH1yMAsI+3CCmj9zlQzlhsS9Bdwcj2W3c5eU5FvH2hsNQy4O+O1NnM6o/pDaQ==", + "dependencies": { + "fontfaceobserver": "^2.1.0" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-keep-awake": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-13.0.2.tgz", + "integrity": "sha512-kKiwkVg/bY0AJ5q1Pxnm/GvpeB6hbNJhcFsoOWDh2NlpibhCLaHL826KHUM+WsnJRbVRxJ+K9vbPRHEMvFpVyw==", + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-linking": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-6.3.1.tgz", + "integrity": "sha512-xuZCntSBGWCD/95iZ+mTUGTwHdy8Sx+immCqbUBxdvZ2TN61P02kKg7SaLS8A4a/hLrSCwrg5tMMwu5wfKr35g==", + "dependencies": { + "expo-constants": "~16.0.0", + "invariant": "^2.2.4" + } + }, + "node_modules/expo-modules-autolinking": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.11.3.tgz", + "integrity": "sha512-oYh8EZEvYF5TYppxEKUTTJmbr8j7eRRnrIxzZtMvxLTXoujThVPMFS/cbnSnf2bFm1lq50TdDNABhmEi7z0ngQ==", + "dependencies": { + "chalk": "^4.1.0", + "commander": "^7.2.0", + "fast-glob": "^3.2.5", + "find-up": "^5.0.0", + "fs-extra": "^9.1.0", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "expo-modules-autolinking": "bin/expo-modules-autolinking.js" + } + }, + "node_modules/expo-modules-core": { + "version": "1.12.26", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.26.tgz", + "integrity": "sha512-y8yDWjOi+rQRdO+HY+LnUlz8qzHerUaw/LUjKPU/mX8PRXP4UUPEEp5fjAwBU44xjNmYSHWZDwet4IBBE+yQUA==", + "dependencies": { + "invariant": "^2.2.4" + } + }, + "node_modules/expo-router": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-3.5.24.tgz", + "integrity": "sha512-wFi+PIUrOntF5cgg0PgBMlkxEZlWedIv5dWnPFEzN6Tr3A3bpsqdDLgOEIwvwd+pxn5DLzykTmg9EkQ1pPGspw==", + "dependencies": { + "@expo/metro-runtime": "3.2.3", + "@expo/server": "^0.4.0", + "@radix-ui/react-slot": "1.0.1", + "@react-navigation/bottom-tabs": "~6.5.7", + "@react-navigation/native": "~6.1.6", + "@react-navigation/native-stack": "~6.9.12", + "expo-splash-screen": "0.27.7", + "react-native-helmet-async": "2.0.4", + "schema-utils": "^4.0.1" + }, + "peerDependencies": { + "@react-navigation/drawer": "^6.5.8", + "expo": "*", + "expo-constants": "*", + "expo-linking": "*", + "expo-status-bar": "*", + "react-native-reanimated": "*", + "react-native-safe-area-context": "*", + "react-native-screens": "*" + }, + "peerDependenciesMeta": { + "@react-navigation/drawer": { + "optional": true + }, + "@testing-library/jest-native": { + "optional": true + }, + "react-native-reanimated": { + "optional": true + } + } + }, + "node_modules/expo-splash-screen": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.27.7.tgz", + "integrity": "sha512-s+eGcG185878nixlrjhhLD6UDYrvoqBUaBkIEozBVWFg3pkdsKpONPiUAco4XR3h7I/9ODq4quN28RJLFO+s0Q==", + "dependencies": { + "@expo/prebuild-config": "7.0.9" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-status-bar": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.12.1.tgz", + "integrity": "sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA==" + }, + "node_modules/expo-system-ui": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-3.0.7.tgz", + "integrity": "sha512-KAs72F5JKhdIfPR9ZNVlRubTPK9uUuevPy5oYEp12xNEzSQcjZKvypH5NpwJuNWkXzrp3n3vZ+3pXsudA7J3KA==", + "dependencies": { + "@react-native/normalize-colors": "0.74.85", + "debug": "^4.3.2" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-web-browser": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-13.0.3.tgz", + "integrity": "sha512-HXb7y82ApVJtqk8tManyudtTrCtx8xcUnVzmJECeHCB0SsWSQ+penVLZxJkcyATWoJOsFMnfVSVdrTcpKKGszQ==", + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/expo/node_modules/@expo/config": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", + "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/json-file": "^8.3.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "3.34.0" + } + }, + "node_modules/expo/node_modules/@expo/config-plugins": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", + "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "dependencies": { + "@expo/config-types": "^51.0.3", + "@expo/json-file": "~8.3.0", + "@expo/plist": "^0.1.0", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" + } + }, + "node_modules/expo/node_modules/@expo/config-types": { + "version": "51.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", + "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==" + }, + "node_modules/expo/node_modules/@expo/env": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz", + "integrity": "sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==", + "dependencies": { + "chalk": "^4.0.0", + "debug": "^4.3.4", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "getenv": "^1.0.0" + } + }, + "node_modules/expo/node_modules/@expo/json-file": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.2", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/expo/node_modules/@expo/metro-config": { + "version": "0.18.11", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.11.tgz", + "integrity": "sha512-/uOq55VbSf9yMbUO1BudkUM2SsGW1c5hr9BnhIqYqcsFv0Jp5D3DtJ4rljDKaUeNLbwr6m7pqIrkSMq5NrYf4Q==", + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.5", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", + "@expo/config": "~9.0.0-beta.0", + "@expo/env": "~0.3.0", + "@expo/json-file": "~8.3.0", + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "find-yarn-workspace-root": "~2.0.0", + "fs-extra": "^9.1.0", + "getenv": "^1.0.0", + "glob": "^7.2.3", + "jsc-safe-url": "^0.2.4", + "lightningcss": "~1.19.0", + "postcss": "~8.4.32", + "resolve-from": "^5.0.0" + } + }, + "node_modules/expo/node_modules/@expo/metro-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/expo/node_modules/@expo/plist": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "dependencies": { + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/expo/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/expo/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/expo/node_modules/lightningcss": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz", + "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.19.0", + "lightningcss-darwin-x64": "1.19.0", + "lightningcss-linux-arm-gnueabihf": "1.19.0", + "lightningcss-linux-arm64-gnu": "1.19.0", + "lightningcss-linux-arm64-musl": "1.19.0", + "lightningcss-linux-x64-gnu": "1.19.0", + "lightningcss-linux-x64-musl": "1.19.0", + "lightningcss-win32-x64-msvc": "1.19.0" + } + }, + "node_modules/expo/node_modules/lightningcss-darwin-arm64": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz", + "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-darwin-x64": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz", + "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz", + "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz", + "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz", + "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz", + "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-linux-x64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz", + "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz", + "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/expo/node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" + }, + "node_modules/fast-base64-decode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz", + "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-loops": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.4.tgz", + "integrity": "sha512-8dbd3XWoKCTms18ize6JmQF1SFnnfj5s0B7rRry22EofgMu7B6LKHVh+XfFqFGsqnbH54xgeO83PzpKI+ODhlg==" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==" + }, + "node_modules/fast-xml-parser": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fbemitter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", + "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", + "dependencies": { + "fbjs": "^3.0.0" + } + }, + "node_modules/fbjs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", + "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^1.0.35" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, + "node_modules/fetch-retry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz", + "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==" + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "dependencies": { + "micromatch": "^4.0.2" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/flow-enums-runtime": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz", + "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==" + }, + "node_modules/flow-parser": { + "version": "0.253.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.253.0.tgz", + "integrity": "sha512-EbxtzRIzp8dDSzTloPhsc6uOvrEFIyu08cqQzXBWLAgxK+i2d/5qOos9ryQHRmk+RyDDXfnz/7qteh3jnAlc4w==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fontfaceobserver": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", + "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz", + "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/freeport-async": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", + "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hermes-estree": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz", + "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==" + }, + "node_modules/hermes-parser": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz", + "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==", + "dependencies": { + "hermes-estree": "0.19.1" + } + }, + "node_modules/hermes-profile-transformer": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", + "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", + "dependencies": { + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/hyphenate-style-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", + "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==" + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", + "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-in-the-middle": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.2.tgz", + "integrity": "sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA==", + "dependencies": { + "acorn": "^8.8.2", + "acorn-import-attributes": "^1.9.5", + "cjs-module-lexer": "^1.2.2", + "module-details-from-path": "^1.0.3" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/inline-style-prefixer": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz", + "integrity": "sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==", + "dependencies": { + "css-in-js-utils": "^3.1.0", + "fast-loops": "^1.1.3" + } + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-bun-module": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.2.1.tgz", + "integrity": "sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==", + "dev": true, + "dependencies": { + "semver": "^7.6.3" + } + }, + "node_modules/is-bun-module/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-invalid-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", + "dependencies": { + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-invalid-path/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-invalid-path/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-valid-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", + "dependencies": { + "is-invalid-path": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-changed-files/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-expo": { + "version": "51.0.4", + "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-51.0.4.tgz", + "integrity": "sha512-WmlR4rUur1TNF/F14brKCmPdX3TWf7Bno/6A1PuxnflN79LEIXpXuPKMlMWwCCChTohGB5FRniknRibblWu1ug==", + "dev": true, + "dependencies": { + "@expo/config": "~9.0.0-beta.0", + "@expo/json-file": "^8.3.0", + "@jest/create-cache-key-function": "^29.2.1", + "babel-jest": "^29.2.1", + "find-up": "^5.0.0", + "jest-environment-jsdom": "^29.2.1", + "jest-watch-select-projects": "^2.0.0", + "jest-watch-typeahead": "2.2.1", + "json5": "^2.2.3", + "lodash": "^4.17.19", + "react-test-renderer": "18.2.0", + "stacktrace-js": "^2.0.2" + }, + "bin": { + "jest": "bin/jest.js" + } + }, + "node_modules/jest-expo/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/jest-expo/node_modules/@expo/config": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", + "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/json-file": "^8.3.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "3.34.0" + } + }, + "node_modules/jest-expo/node_modules/@expo/config-plugins": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", + "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "dev": true, + "dependencies": { + "@expo/config-types": "^51.0.3", + "@expo/json-file": "~8.3.0", + "@expo/plist": "^0.1.0", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" + } + }, + "node_modules/jest-expo/node_modules/@expo/config-types": { + "version": "51.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", + "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==", + "dev": true + }, + "node_modules/jest-expo/node_modules/@expo/json-file": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", + "dev": true, + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.2", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/jest-expo/node_modules/@expo/plist": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "dev": true, + "dependencies": { + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/jest-expo/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-expo/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-expo/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-expo/node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-select-projects": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jest-watch-select-projects/-/jest-watch-select-projects-2.0.0.tgz", + "integrity": "sha512-j00nW4dXc2NiCW6znXgFLF9g8PJ0zP25cpQ1xRro/HU2GBfZQFZD0SoXnAlaoKkIY4MlfTMkKGbNXFpvCdjl1w==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "chalk": "^3.0.0", + "prompts": "^2.2.1" + } + }, + "node_modules/jest-watch-select-projects/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-2.2.1.tgz", + "integrity": "sha512-jYpYmUnTzysmVnwq49TAxlmtOAwp8QIqvZyoofQFn8fiWhEDZj33ZXzg3JA4nGnzWFm1hbWf3ADpteUokvXgFA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^6.0.0", + "chalk": "^4.0.0", + "jest-regex-util": "^29.0.0", + "jest-watcher": "^29.0.0", + "slash": "^5.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0 || ^29.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-escapes": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dev": true, + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jimp-compact": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz", + "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==" + }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/join-component": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", + "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsc-android": { + "version": "250231.0.0", + "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz", + "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==" + }, + "node_modules/jsc-safe-url": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz", + "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==" + }, + "node_modules/jscodeshift": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz", + "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==", + "dependencies": { + "@babel/core": "^7.13.16", + "@babel/parser": "^7.13.16", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/preset-flow": "^7.13.13", + "@babel/preset-typescript": "^7.13.0", + "@babel/register": "^7.13.16", + "babel-core": "^7.0.0-bridge.0", + "chalk": "^4.1.2", + "flow-parser": "0.*", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "neo-async": "^2.5.0", + "node-dir": "^0.1.17", + "recast": "^0.21.0", + "temp": "^0.8.4", + "write-file-atomic": "^2.3.0" + }, + "bin": { + "jscodeshift": "bin/jscodeshift.js" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + } + }, + "node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-deref-sync": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz", + "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==", + "dependencies": { + "clone": "^2.1.2", + "dag-map": "~1.0.0", + "is-valid-path": "^0.1.1", + "lodash": "^4.17.13", + "md5": "~2.2.0", + "memory-cache": "~0.2.0", + "traverse": "~0.6.6", + "valid-url": "~1.0.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/json-schema-deref-sync/node_modules/md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", + "dependencies": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lighthouse-logger": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", + "dependencies": { + "debug": "^2.6.9", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/lightningcss": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.27.0.tgz", + "integrity": "sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.27.0", + "lightningcss-darwin-x64": "1.27.0", + "lightningcss-freebsd-x64": "1.27.0", + "lightningcss-linux-arm-gnueabihf": "1.27.0", + "lightningcss-linux-arm64-gnu": "1.27.0", + "lightningcss-linux-arm64-musl": "1.27.0", + "lightningcss-linux-x64-gnu": "1.27.0", + "lightningcss-linux-x64-musl": "1.27.0", + "lightningcss-win32-arm64-msvc": "1.27.0", + "lightningcss-win32-x64-msvc": "1.27.0" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.27.0.tgz", + "integrity": "sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.27.0.tgz", + "integrity": "sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.27.0.tgz", + "integrity": "sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.27.0.tgz", + "integrity": "sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.27.0.tgz", + "integrity": "sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.27.0.tgz", + "integrity": "sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.27.0.tgz", + "integrity": "sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.27.0.tgz", + "integrity": "sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.27.0.tgz", + "integrity": "sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.27.0.tgz", + "integrity": "sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/log-symbols/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/logkitty": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", + "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", + "dependencies": { + "ansi-fragments": "^0.2.1", + "dayjs": "^1.8.15", + "yargs": "^15.1.0" + }, + "bin": { + "logkitty": "bin/logkitty.js" + } + }, + "node_modules/logkitty/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/logkitty/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/logkitty/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/logkitty/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/logkitty/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/marky": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==" + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/md5-file": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz", + "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==", + "dependencies": { + "buffer-alloc": "^1.1.0" + }, + "bin": { + "md5-file": "cli.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/md5hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", + "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==" + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, + "node_modules/memory-cache": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", + "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==" + }, + "node_modules/merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "dependencies": { + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/metro": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.12.tgz", + "integrity": "sha512-1UsH5FzJd9quUsD1qY+zUG4JY3jo3YEMxbMYH9jT6NK3j4iORhlwTK8fYTfAUBhDKjgLfKjAh7aoazNE23oIRA==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/parser": "^7.20.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "accepts": "^1.3.7", + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "denodeify": "^1.2.1", + "error-stack-parser": "^2.0.6", + "flow-enums-runtime": "^0.0.6", + "graceful-fs": "^4.2.4", + "hermes-parser": "0.23.1", + "image-size": "^1.0.2", + "invariant": "^2.2.4", + "jest-worker": "^29.6.3", + "jsc-safe-url": "^0.2.2", + "lodash.throttle": "^4.1.1", + "metro-babel-transformer": "0.80.12", + "metro-cache": "0.80.12", + "metro-cache-key": "0.80.12", + "metro-config": "0.80.12", + "metro-core": "0.80.12", + "metro-file-map": "0.80.12", + "metro-resolver": "0.80.12", + "metro-runtime": "0.80.12", + "metro-source-map": "0.80.12", + "metro-symbolicate": "0.80.12", + "metro-transform-plugins": "0.80.12", + "metro-transform-worker": "0.80.12", + "mime-types": "^2.1.27", + "nullthrows": "^1.1.1", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "strip-ansi": "^6.0.0", + "throat": "^5.0.0", + "ws": "^7.5.10", + "yargs": "^17.6.2" + }, + "bin": { + "metro": "src/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-babel-transformer": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.12.tgz", + "integrity": "sha512-YZziRs0MgA3pzCkkvOoQRXjIoVjvrpi/yRlJnObyIvMP6lFdtyG4nUGIwGY9VXnBvxmXD6mPY2e+NSw6JAyiRg==", + "dependencies": { + "@babel/core": "^7.20.0", + "flow-enums-runtime": "^0.0.6", + "hermes-parser": "0.23.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-babel-transformer/node_modules/hermes-estree": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", + "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==" + }, + "node_modules/metro-babel-transformer/node_modules/hermes-parser": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", + "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", + "dependencies": { + "hermes-estree": "0.23.1" + } + }, + "node_modules/metro-cache": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.12.tgz", + "integrity": "sha512-p5kNHh2KJ0pbQI/H7ZBPCEwkyNcSz7OUkslzsiIWBMPQGFJ/xArMwkV7I+GJcWh+b4m6zbLxE5fk6fqbVK1xGA==", + "dependencies": { + "exponential-backoff": "^3.1.1", + "flow-enums-runtime": "^0.0.6", + "metro-core": "0.80.12" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-cache-key": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.12.tgz", + "integrity": "sha512-o4BspKnugg/pE45ei0LGHVuBJXwRgruW7oSFAeSZvBKA/sGr0UhOGY3uycOgWInnS3v5yTTfiBA9lHlNRhsvGA==", + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-config": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.12.tgz", + "integrity": "sha512-4rwOWwrhm62LjB12ytiuR5NgK1ZBNr24/He8mqCsC+HXZ+ATbrewLNztzbAZHtFsrxP4D4GLTGgh96pCpYLSAQ==", + "dependencies": { + "connect": "^3.6.5", + "cosmiconfig": "^5.0.5", + "flow-enums-runtime": "^0.0.6", + "jest-validate": "^29.6.3", + "metro": "0.80.12", + "metro-cache": "0.80.12", + "metro-core": "0.80.12", + "metro-runtime": "0.80.12" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-core": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.12.tgz", + "integrity": "sha512-QqdJ/yAK+IpPs2HU/h5v2pKEdANBagSsc6DRSjnwSyJsCoHlmyJKCaCJ7KhWGx+N4OHxh37hoA8fc2CuZbx0Fw==", + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.80.12" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-file-map": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.12.tgz", + "integrity": "sha512-sYdemWSlk66bWzW2wp79kcPMzwuG32x1ZF3otI0QZTmrnTaaTiGyhE66P1z6KR4n2Eu5QXiABa6EWbAQv0r8bw==", + "dependencies": { + "anymatch": "^3.0.3", + "debug": "^2.2.0", + "fb-watchman": "^2.0.0", + "flow-enums-runtime": "^0.0.6", + "graceful-fs": "^4.2.4", + "invariant": "^2.2.4", + "jest-worker": "^29.6.3", + "micromatch": "^4.0.4", + "node-abort-controller": "^3.1.1", + "nullthrows": "^1.1.1", + "walker": "^1.0.7" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/metro-file-map/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/metro-file-map/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/metro-minify-terser": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.12.tgz", + "integrity": "sha512-muWzUw3y5k+9083ZoX9VaJLWEV2Jcgi+Oan0Mmb/fBNMPqP9xVDuy4pOMn/HOiGndgfh/MK7s4bsjkyLJKMnXQ==", + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "terser": "^5.15.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-resolver": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.12.tgz", + "integrity": "sha512-PR24gYRZnYHM3xT9pg6BdbrGbM/Cu1TcyIFBVlAk7qDAuHkUNQ1nMzWumWs+kwSvtd9eZGzHoucGJpTUEeLZAw==", + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-runtime": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.12.tgz", + "integrity": "sha512-LIx7+92p5rpI0i6iB4S4GBvvLxStNt6fF0oPMaUd1Weku7jZdfkCZzmrtDD9CSQ6EPb0T9NUZoyXIxlBa3wOCw==", + "dependencies": { + "@babel/runtime": "^7.25.0", + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-source-map": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.12.tgz", + "integrity": "sha512-o+AXmE7hpvM8r8MKsx7TI21/eerYYy2DCDkWfoBkv+jNkl61khvDHlQn0cXZa6lrcNZiZkl9oHSMcwLLIrFmpw==", + "dependencies": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "flow-enums-runtime": "^0.0.6", + "invariant": "^2.2.4", + "metro-symbolicate": "0.80.12", + "nullthrows": "^1.1.1", + "ob1": "0.80.12", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro-symbolicate": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.12.tgz", + "integrity": "sha512-/dIpNdHksXkGHZXARZpL7doUzHqSNxgQ8+kQGxwpJuHnDhGkENxB5PS2QBaTDdEcmyTMjS53CN1rl9n1gR6fmw==", + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "invariant": "^2.2.4", + "metro-source-map": "0.80.12", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "through2": "^2.0.1", + "vlq": "^1.0.0" + }, + "bin": { + "metro-symbolicate": "src/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-symbolicate/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro-transform-plugins": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.12.tgz", + "integrity": "sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA==", + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.20.0", + "flow-enums-runtime": "^0.0.6", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro-transform-worker": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.12.tgz", + "integrity": "sha512-KAPFN1y3eVqEbKLx1I8WOarHPqDMUa8WelWxaJCNKO/yHCP26zELeqTJvhsQup+8uwB6EYi/sp0b6TGoh6lOEA==", + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", + "flow-enums-runtime": "^0.0.6", + "metro": "0.80.12", + "metro-babel-transformer": "0.80.12", + "metro-cache": "0.80.12", + "metro-cache-key": "0.80.12", + "metro-minify-terser": "0.80.12", + "metro-source-map": "0.80.12", + "metro-transform-plugins": "0.80.12", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/metro/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/metro/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/metro/node_modules/hermes-estree": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", + "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==" + }, + "node_modules/metro/node_modules/hermes-parser": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", + "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", + "dependencies": { + "hermes-estree": "0.23.1" + } + }, + "node_modules/metro/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/metro/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/module-details-from-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/nested-error-stacks": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node_modules/nocache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", + "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" + }, + "node_modules/node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", + "dependencies": { + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.10.5" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" + }, + "node_modules/node-stream-zip": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", + "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", + "engines": { + "node": ">=0.12.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/antelle" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-package-arg": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", + "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", + "dependencies": { + "hosted-git-info": "^3.0.2", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" + }, + "node_modules/nwsapi": { + "version": "2.2.13", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", + "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==", + "dev": true + }, + "node_modules/ob1": { + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.12.tgz", + "integrity": "sha512-VMArClVT6LkhUGpnuEoBuyjG9rzUyEzg4PDkav6wK1cLhOK02gPCYFxoiB4mqVnrMhDpIzJcrGNAMVi9P+hXrw==", + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/ora/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ora/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-png": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", + "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", + "dependencies": { + "pngjs": "^3.3.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "dev": true, + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/password-prompt": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz", + "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==", + "dependencies": { + "ansi-escapes": "^4.3.2", + "cross-spawn": "^7.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/plist/node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/plist/node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/psl": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.10.0.tgz", + "integrity": "sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==", + "dev": true, + "dependencies": { + "punycode": "^2.3.1" + } + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qrcode-terminal": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz", + "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==", + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-devtools-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-5.3.2.tgz", + "integrity": "sha512-crr9HkVrDiJ0A4zot89oS0Cgv0Oa4OG1Em4jit3P3ZxZSKPMYyMjfwMqgcJna9o625g8oN87rBm8SWWrSTBZxg==", + "dependencies": { + "shell-quote": "^1.6.1", + "ws": "^7" + } + }, + "node_modules/react-devtools-core/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-freeze": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz", + "integrity": "sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=17.0.0" + } + }, + "node_modules/react-hook-form": { + "version": "7.53.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.2.tgz", + "integrity": "sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-native": { + "version": "0.74.2", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.2.tgz", + "integrity": "sha512-EBMBjPPL4/GjHMP4NqsZabT3gI5WU9cSmduABGAGrd8uIcmTZ5F2Ng9k6gFmRm7n8e8CULxDNu98ZpQfBjl7Bw==", + "dependencies": { + "@jest/create-cache-key-function": "^29.6.3", + "@react-native-community/cli": "13.6.8", + "@react-native-community/cli-platform-android": "13.6.8", + "@react-native-community/cli-platform-ios": "13.6.8", + "@react-native/assets-registry": "0.74.84", + "@react-native/codegen": "0.74.84", + "@react-native/community-cli-plugin": "0.74.84", + "@react-native/gradle-plugin": "0.74.84", + "@react-native/js-polyfills": "0.74.84", + "@react-native/normalize-colors": "0.74.84", + "@react-native/virtualized-lists": "0.74.84", + "abort-controller": "^3.0.0", + "anser": "^1.4.9", + "ansi-regex": "^5.0.0", + "base64-js": "^1.5.1", + "chalk": "^4.0.0", + "event-target-shim": "^5.0.1", + "flow-enums-runtime": "^0.0.6", + "invariant": "^2.2.4", + "jest-environment-node": "^29.6.3", + "jsc-android": "^250231.0.0", + "memoize-one": "^5.0.0", + "metro-runtime": "^0.80.3", + "metro-source-map": "^0.80.3", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1", + "pretty-format": "^26.5.2", + "promise": "^8.3.0", + "react-devtools-core": "^5.0.0", + "react-refresh": "^0.14.0", + "react-shallow-renderer": "^16.15.0", + "regenerator-runtime": "^0.13.2", + "scheduler": "0.24.0-canary-efb381bbf-20230505", + "stacktrace-parser": "^0.1.10", + "whatwg-fetch": "^3.0.0", + "ws": "^6.2.2", + "yargs": "^17.6.2" + }, + "bin": { + "react-native": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/react": "^18.2.6", + "react": "18.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-native-device-info": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-11.1.0.tgz", + "integrity": "sha512-hzXJSObJdezEz0hF7MAJ3tGeoesuQWenXXt9mrQR9Mjb8kXpZ09rqSsZ/quNpJdZpQ3rYiFa3/0GFG5KNn9PBg==", + "peerDependencies": { + "react-native": "*" + } + }, + "node_modules/react-native-gesture-handler": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.16.2.tgz", + "integrity": "sha512-vGFlrDKlmyI+BT+FemqVxmvO7nqxU33cgXVsn6IKAFishvlG3oV2Ds67D5nPkHMea8T+s1IcuMm0bF8ntZtAyg==", + "dependencies": { + "@egjs/hammerjs": "^2.0.17", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "lodash": "^4.17.21", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-get-random-values": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/react-native-get-random-values/-/react-native-get-random-values-1.11.0.tgz", + "integrity": "sha512-4BTbDbRmS7iPdhYLRcz3PGFIpFJBwNZg9g42iwa2P6FOv9vZj/xJc678RZXnLNZzd0qd7Q3CCF6Yd+CU2eoXKQ==", + "dependencies": { + "fast-base64-decode": "^1.0.0" + }, + "peerDependencies": { + "react-native": ">=0.56" + } + }, + "node_modules/react-native-helmet-async": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-native-helmet-async/-/react-native-helmet-async-2.0.4.tgz", + "integrity": "sha512-m3CkXWss6B1dd6mCMleLpzDCJJGGaHOLQsUzZv8kAASJmMfmVT4d2fx375iXKTRWT25ThBfae3dECuX5cq/8hg==", + "dependencies": { + "invariant": "^2.2.4", + "react-fast-compare": "^3.2.2", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-native-reanimated": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.10.1.tgz", + "integrity": "sha512-sfxg6vYphrDc/g4jf/7iJ7NRi+26z2+BszPmvmk0Vnrz6FL7HYljJqTf531F1x6tFmsf+FEAmuCtTUIXFLVo9w==", + "dependencies": { + "@babel/plugin-transform-arrow-functions": "^7.0.0-0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", + "@babel/plugin-transform-optional-chaining": "^7.0.0-0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", + "@babel/plugin-transform-template-literals": "^7.0.0-0", + "@babel/preset-typescript": "^7.16.7", + "convert-source-map": "^2.0.0", + "invariant": "^2.2.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0", + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-root-siblings": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/react-native-root-siblings/-/react-native-root-siblings-4.1.1.tgz", + "integrity": "sha512-sdmLElNs5PDWqmZmj4/aNH4anyxreaPm61c4ZkRiR8SO/GzLg6KjAbb0e17RmMdnBdD0AIQbS38h/l55YKN4ZA==" + }, + "node_modules/react-native-root-toast": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/react-native-root-toast/-/react-native-root-toast-3.6.0.tgz", + "integrity": "sha512-HgZ2OS84ZbInJGuejGghBCPmBwoSBuJFO/bAJoR/NS6rCl9eiXSRegIG/gLEo7lH9BijeA63is1noUqR8Y1DpQ==", + "dependencies": { + "deprecated-react-native-prop-types": "^2.3.0", + "prop-types": "^15.5.10", + "react-native-root-siblings": "^4.0.0" + }, + "peerDependencies": { + "react-native": ">=0.47.0" + } + }, + "node_modules/react-native-safe-area-context": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.10.1.tgz", + "integrity": "sha512-w8tCuowDorUkPoWPXmhqosovBr33YsukkwYCDERZFHAxIkx6qBadYxfeoaJ91nCQKjkNzGrK5qhoNOeSIcYSpA==", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-screens": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.31.1.tgz", + "integrity": "sha512-8fRW362pfZ9y4rS8KY5P3DFScrmwo/vu1RrRMMx0PNHbeC9TLq0Kw1ubD83591yz64gLNHFLTVkTJmWeWCXKtQ==", + "dependencies": { + "react-freeze": "^1.0.0", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-toast-message": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-native-toast-message/-/react-native-toast-message-2.2.1.tgz", + "integrity": "sha512-iXFMnlxPcgKKs4bZOIl06W16m6KXMh/bAYpWLyVXlISSCdcL2+FX5WPpRP3TGQeM/u9q+j5ex48DDY+72en+Sw==", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-web": { + "version": "0.19.13", + "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.19.13.tgz", + "integrity": "sha512-etv3bN8rJglrRCp/uL4p7l8QvUNUC++QwDbdZ8CB7BvZiMvsxfFIRM1j04vxNldG3uo2puRd6OSWR3ibtmc29A==", + "dependencies": { + "@babel/runtime": "^7.18.6", + "@react-native/normalize-colors": "^0.74.1", + "fbjs": "^3.0.4", + "inline-style-prefixer": "^6.0.1", + "memoize-one": "^6.0.0", + "nullthrows": "^1.1.1", + "postcss-value-parser": "^4.2.0", + "styleq": "^0.1.3" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/react-native-web/node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/react-native/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/react-native/node_modules/@react-native/codegen": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.84.tgz", + "integrity": "sha512-0hXlnu9i0o8v+gXKQi+x6T471L85kCDwW4WrJiYAeOheWrQdNNW6rC3g8+LL7HXAf7QcHGU/8/d57iYfdVK2BQ==", + "dependencies": { + "@babel/parser": "^7.20.0", + "glob": "^7.1.1", + "hermes-parser": "0.19.1", + "invariant": "^2.2.4", + "jscodeshift": "^0.14.0", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + } + }, + "node_modules/react-native/node_modules/@react-native/normalize-colors": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.84.tgz", + "integrity": "sha512-Y5W6x8cC5RuakUcTVUFNAIhUZ/tYpuqHZlRBoAuakrTwVuoNHXfQki8lj1KsYU7rW6e3VWgdEx33AfOQpdNp6A==" + }, + "node_modules/react-native/node_modules/@types/yargs": { + "version": "15.0.19", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", + "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/react-native/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/react-native/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/react-native/node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/react-native/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-native/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/react-native/node_modules/scheduler": { + "version": "0.24.0-canary-efb381bbf-20230505", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz", + "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/react-native/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", + "dependencies": { + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-test-renderer": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz", + "integrity": "sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==", + "dev": true, + "dependencies": { + "react-is": "^18.2.0", + "react-shallow-renderer": "^16.15.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-test-renderer/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readline": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz", + "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==" + }, + "node_modules/recast": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz", + "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==", + "dependencies": { + "ast-types": "0.15.2", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/recast/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==" + }, + "node_modules/regjsparser": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", + "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/remove-trailing-slash": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", + "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-in-the-middle": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz", + "integrity": "sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==", + "dependencies": { + "debug": "^4.3.5", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "node_modules/requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "dependencies": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/requireg/node_modules/resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dependencies": { + "path-parse": "^1.0.5" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-workspace-root/-/resolve-workspace-root-2.0.0.tgz", + "integrity": "sha512-IsaBUZETJD5WsI11Wt8PKHwaIe45or6pwNc8yflvLJ4DWtImK9kuLoH5kUva/2Mmx/RdIyr4aONNSa2v9LTJsw==" + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", + "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-static/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-static/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/serve-static/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static/node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-static/node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-plist": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", + "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", + "dependencies": { + "bplist-creator": "0.1.0", + "bplist-parser": "0.3.1", + "plist": "^3.0.5" + } + }, + "node_modules/simple-plist/node_modules/bplist-creator": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", + "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", + "dependencies": { + "stream-buffers": "2.2.x" + } + }, + "node_modules/simple-plist/node_modules/bplist-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", + "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dependencies": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/ssri": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/stack-generator": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", + "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", + "dev": true, + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "node_modules/stacktrace-gps": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", + "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", + "dev": true, + "dependencies": { + "source-map": "0.5.6", + "stackframe": "^1.3.4" + } + }, + "node_modules/stacktrace-gps/node_modules/source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stacktrace-js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", + "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", + "dev": true, + "dependencies": { + "error-stack-parser": "^2.0.6", + "stack-generator": "^2.0.5", + "stacktrace-gps": "^3.0.4" + } + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/stream-slice": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz", + "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==" + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "node_modules/structured-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", + "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==" + }, + "node_modules/styleq": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/styleq/-/styleq-0.1.3.tgz", + "integrity": "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sudo-prompt": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", + "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/synckit": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/temp": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", + "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", + "dependencies": { + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/temp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/tempy": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz", + "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==", + "dependencies": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/traverse": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.10.tgz", + "integrity": "sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==", + "dependencies": { + "gopd": "^1.0.1", + "typedarray.prototype.slice": "^1.0.3", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", + "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/ts-poet": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.9.0.tgz", + "integrity": "sha512-roe6W6MeZmCjRmppyfOURklO5tQFQ6Sg7swURKkwYJvV7dbGCrK28um5+51iW3twdPRKtwarqFAVMU6G1mvnuQ==", + "dev": true, + "dependencies": { + "dprint-node": "^1.0.8" + } + }, + "node_modules/ts-proto": { + "version": "1.181.1", + "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.181.1.tgz", + "integrity": "sha512-lNmd/KEgqWtwDG9mIM3EpcxBx+URRVHkDP/EEJBgQJaQwmZFTk6VjHg56HNQswd114yXGfF+8pKQvJ2iH9KfWw==", + "dev": true, + "dependencies": { + "case-anything": "^2.1.13", + "protobufjs": "^7.2.4", + "ts-poet": "^6.7.0", + "ts-proto-descriptors": "1.16.0" + }, + "bin": { + "protoc-gen-ts_proto": "protoc-gen-ts_proto" + } + }, + "node_modules/ts-proto-descriptors": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.16.0.tgz", + "integrity": "sha512-3yKuzMLpltdpcyQji1PJZRfoo4OJjNieKTYkQY8pF7xGKsYz/RHe3aEe4KiRxcinoBmnEhmuI+yJTxLb922ULA==", + "dev": true, + "dependencies": { + "long": "^5.2.3", + "protobufjs": "^7.2.4" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz", + "integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-errors": "^1.3.0", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-offset": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz", + "integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.0.tgz", + "integrity": "sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==" + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use-latest-callback": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.3.tgz", + "integrity": "sha512-7vI3fBuyRcP91pazVboc4qu+6ZqM8izPWX9k7cRnT8hbD5svslcknsh3S9BUhaK11OmgTV4oWZZVSeQAiV53SQ==", + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/warn-once": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz", + "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-encoding": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", + "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", + "dependencies": { + "util": "^0.12.3" + }, + "optionalDependencies": { + "@zxing/text-encoding": "0.9.0" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url-without-unicode": { + "version": "8.0.0-3", + "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz", + "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==", + "dependencies": { + "buffer": "^5.4.3", + "punycode": "^2.1.1", + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/whatwg-url-without-unicode/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wonka": { + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", + "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "dependencies": { + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/xcode/node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xml2js": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz", + "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", + "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-2.1.0.tgz", + "integrity": "sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.18.0" + } + } + } +} diff --git a/src/react-native-app/package.json b/src/react-native-app/package.json new file mode 100644 index 0000000000..0309320c65 --- /dev/null +++ b/src/react-native-app/package.json @@ -0,0 +1,76 @@ +{ + "name": "reactnativeapp", + "main": "expo-router/entry", + "version": "1.0.0", + "scripts": { + "start": "ENVFILE=.env expo start", + "reset-project": "node ./scripts/reset-project.js", + "android": "expo run:android", + "ios": "expo run:ios", + "web": "expo start --web", + "test": "jest --watchAll", + "lint": "expo lint" + }, + "jest": { + "preset": "jest-expo" + }, + "dependencies": { + "@expo/metro-config": "^0.19.4", + "@expo/vector-icons": "^14.0.0", + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/core": "^1.28.0", + "@opentelemetry/exporter-trace-otlp-http": "^0.52.0", + "@opentelemetry/instrumentation": "^0.55.0", + "@opentelemetry/instrumentation-fetch": "^0.55.0", + "@opentelemetry/instrumentation-xml-http-request": "^0.55.0", + "@opentelemetry/resources": "^1.28.0", + "@opentelemetry/sdk-trace-base": "^1.28.0", + "@opentelemetry/sdk-trace-web": "^1.28.0", + "@opentelemetry/semantic-conventions": "^1.28.0", + "@react-native-async-storage/async-storage": "^2.0.0", + "@react-navigation/native": "^6.0.2", + "@tanstack/react-query": "4.36.1", + "@types/react-native-get-random-values": "^1.8.2", + "@types/uuid": "^10.0.0", + "expo": "~51.0.14", + "expo-constants": "~16.0.2", + "expo-font": "~12.0.7", + "expo-linking": "~6.3.1", + "expo-router": "~3.5.16", + "expo-splash-screen": "~0.27.5", + "expo-status-bar": "~1.12.1", + "expo-system-ui": "~3.0.6", + "expo-web-browser": "~13.0.3", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-hook-form": "^7.53.2", + "react-native": "0.74.2", + "react-native-device-info": "^11.1.0", + "react-native-gesture-handler": "~2.16.1", + "react-native-get-random-values": "^1.11.0", + "react-native-reanimated": "~3.10.1", + "react-native-root-toast": "^3.6.0", + "react-native-safe-area-context": "4.10.1", + "react-native-screens": "3.31.1", + "react-native-toast-message": "^2.2.1", + "react-native-web": "~0.19.10", + "uuid": "^10.0.0" + }, + "devDependencies": { + "@babel/core": "^7.20.0", + "@types/jest": "^29.5.12", + "@types/react": "~18.2.45", + "@types/react-test-renderer": "^18.0.7", + "eslint": "^8.57.0", + "eslint-config-expo": "~7.1.2", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "jest": "^29.2.1", + "jest-expo": "~51.0.1", + "prettier": "^3.3.3", + "react-test-renderer": "18.2.0", + "ts-proto": "1.181.1", + "typescript": "~5.3.3" + }, + "private": true +} diff --git a/src/react-native-app/protos/demo.ts b/src/react-native-app/protos/demo.ts new file mode 100644 index 0000000000..c0a2c506b3 --- /dev/null +++ b/src/react-native-app/protos/demo.ts @@ -0,0 +1,4027 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +// Code generated by protoc-gen-ts_proto. DO NOT EDIT. +// versions: +// protoc-gen-ts_proto v1.181.1 +// protoc v5.28.3 +// source: demo.proto + +/* eslint-disable */ +import { + type CallOptions, + ChannelCredentials, + Client, + type ClientOptions, + type ClientUnaryCall, + type handleUnaryCall, + makeGenericClientConstructor, + Metadata, + type ServiceError, + type UntypedServiceImplementation, +} from "@grpc/grpc-js"; +import Long from "long"; +import _m0 from "protobufjs/minimal"; + +export const protobufPackage = "oteldemo"; + +export interface CartItem { + productId: string; + quantity: number; +} + +export interface AddItemRequest { + userId: string; + item: CartItem | undefined; +} + +export interface EmptyCartRequest { + userId: string; +} + +export interface GetCartRequest { + userId: string; +} + +export interface Cart { + userId: string; + items: CartItem[]; +} + +export interface Empty { +} + +export interface ListRecommendationsRequest { + userId: string; + productIds: string[]; +} + +export interface ListRecommendationsResponse { + productIds: string[]; +} + +export interface Product { + id: string; + name: string; + description: string; + picture: string; + priceUsd: + | Money + | undefined; + /** + * Categories such as "clothing" or "kitchen" that can be used to look up + * other related products. + */ + categories: string[]; +} + +export interface ListProductsResponse { + products: Product[]; +} + +export interface GetProductRequest { + id: string; +} + +export interface SearchProductsRequest { + query: string; +} + +export interface SearchProductsResponse { + results: Product[]; +} + +export interface GetQuoteRequest { + address: Address | undefined; + items: CartItem[]; +} + +export interface GetQuoteResponse { + costUsd: Money | undefined; +} + +export interface ShipOrderRequest { + address: Address | undefined; + items: CartItem[]; +} + +export interface ShipOrderResponse { + trackingId: string; +} + +export interface Address { + streetAddress: string; + city: string; + state: string; + country: string; + zipCode: string; +} + +/** Represents an amount of money with its currency type. */ +export interface Money { + /** The 3-letter currency code defined in ISO 4217. */ + currencyCode: string; + /** + * The whole units of the amount. + * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. + */ + units: number; + /** + * Number of nano (10^-9) units of the amount. + * The value must be between -999,999,999 and +999,999,999 inclusive. + * If `units` is positive, `nanos` must be positive or zero. + * If `units` is zero, `nanos` can be positive, zero, or negative. + * If `units` is negative, `nanos` must be negative or zero. + * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. + */ + nanos: number; +} + +export interface GetSupportedCurrenciesResponse { + /** The 3-letter currency code defined in ISO 4217. */ + currencyCodes: string[]; +} + +export interface CurrencyConversionRequest { + from: + | Money + | undefined; + /** The 3-letter currency code defined in ISO 4217. */ + toCode: string; +} + +export interface CreditCardInfo { + creditCardNumber: string; + creditCardCvv: number; + creditCardExpirationYear: number; + creditCardExpirationMonth: number; +} + +export interface ChargeRequest { + amount: Money | undefined; + creditCard: CreditCardInfo | undefined; +} + +export interface ChargeResponse { + transactionId: string; +} + +export interface OrderItem { + item: CartItem | undefined; + cost: Money | undefined; +} + +export interface OrderResult { + orderId: string; + shippingTrackingId: string; + shippingCost: Money | undefined; + shippingAddress: Address | undefined; + items: OrderItem[]; +} + +export interface SendOrderConfirmationRequest { + email: string; + order: OrderResult | undefined; +} + +export interface PlaceOrderRequest { + userId: string; + userCurrency: string; + address: Address | undefined; + email: string; + creditCard: CreditCardInfo | undefined; +} + +export interface PlaceOrderResponse { + order: OrderResult | undefined; +} + +export interface AdRequest { + /** List of important key words from the current page describing the context. */ + contextKeys: string[]; +} + +export interface AdResponse { + ads: Ad[]; +} + +export interface Ad { + /** url to redirect to when an ad is clicked. */ + redirectUrl: string; + /** short advertisement text to display. */ + text: string; +} + +export interface Flag { + name: string; + description: string; + enabled: boolean; +} + +export interface GetFlagRequest { + name: string; +} + +export interface GetFlagResponse { + flag: Flag | undefined; +} + +export interface CreateFlagRequest { + name: string; + description: string; + enabled: boolean; +} + +export interface CreateFlagResponse { + flag: Flag | undefined; +} + +export interface UpdateFlagRequest { + name: string; + enabled: boolean; +} + +export interface UpdateFlagResponse { +} + +export interface ListFlagsRequest { +} + +export interface ListFlagsResponse { + flag: Flag[]; +} + +export interface DeleteFlagRequest { + name: string; +} + +export interface DeleteFlagResponse { +} + +function createBaseCartItem(): CartItem { + return { productId: "", quantity: 0 }; +} + +export const CartItem = { + encode(message: CartItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.productId !== "") { + writer.uint32(10).string(message.productId); + } + if (message.quantity !== 0) { + writer.uint32(16).int32(message.quantity); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CartItem { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCartItem(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.productId = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.quantity = reader.int32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): CartItem { + return { + productId: isSet(object.productId) ? globalThis.String(object.productId) : "", + quantity: isSet(object.quantity) ? globalThis.Number(object.quantity) : 0, + }; + }, + + toJSON(message: CartItem): unknown { + const obj: any = {}; + if (message.productId !== "") { + obj.productId = message.productId; + } + if (message.quantity !== 0) { + obj.quantity = Math.round(message.quantity); + } + return obj; + }, + + create, I>>(base?: I): CartItem { + return CartItem.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): CartItem { + const message = createBaseCartItem(); + message.productId = object.productId ?? ""; + message.quantity = object.quantity ?? 0; + return message; + }, +}; + +function createBaseAddItemRequest(): AddItemRequest { + return { userId: "", item: undefined }; +} + +export const AddItemRequest = { + encode(message: AddItemRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + if (message.item !== undefined) { + CartItem.encode(message.item, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AddItemRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAddItemRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.item = CartItem.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): AddItemRequest { + return { + userId: isSet(object.userId) ? globalThis.String(object.userId) : "", + item: isSet(object.item) ? CartItem.fromJSON(object.item) : undefined, + }; + }, + + toJSON(message: AddItemRequest): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + if (message.item !== undefined) { + obj.item = CartItem.toJSON(message.item); + } + return obj; + }, + + create, I>>(base?: I): AddItemRequest { + return AddItemRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): AddItemRequest { + const message = createBaseAddItemRequest(); + message.userId = object.userId ?? ""; + message.item = (object.item !== undefined && object.item !== null) ? CartItem.fromPartial(object.item) : undefined; + return message; + }, +}; + +function createBaseEmptyCartRequest(): EmptyCartRequest { + return { userId: "" }; +} + +export const EmptyCartRequest = { + encode(message: EmptyCartRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): EmptyCartRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEmptyCartRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): EmptyCartRequest { + return { userId: isSet(object.userId) ? globalThis.String(object.userId) : "" }; + }, + + toJSON(message: EmptyCartRequest): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + return obj; + }, + + create, I>>(base?: I): EmptyCartRequest { + return EmptyCartRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): EmptyCartRequest { + const message = createBaseEmptyCartRequest(); + message.userId = object.userId ?? ""; + return message; + }, +}; + +function createBaseGetCartRequest(): GetCartRequest { + return { userId: "" }; +} + +export const GetCartRequest = { + encode(message: GetCartRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetCartRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetCartRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetCartRequest { + return { userId: isSet(object.userId) ? globalThis.String(object.userId) : "" }; + }, + + toJSON(message: GetCartRequest): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + return obj; + }, + + create, I>>(base?: I): GetCartRequest { + return GetCartRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetCartRequest { + const message = createBaseGetCartRequest(); + message.userId = object.userId ?? ""; + return message; + }, +}; + +function createBaseCart(): Cart { + return { userId: "", items: [] }; +} + +export const Cart = { + encode(message: Cart, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + for (const v of message.items) { + CartItem.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Cart { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCart(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.items.push(CartItem.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Cart { + return { + userId: isSet(object.userId) ? globalThis.String(object.userId) : "", + items: globalThis.Array.isArray(object?.items) ? object.items.map((e: any) => CartItem.fromJSON(e)) : [], + }; + }, + + toJSON(message: Cart): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + if (message.items?.length) { + obj.items = message.items.map((e) => CartItem.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): Cart { + return Cart.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Cart { + const message = createBaseCart(); + message.userId = object.userId ?? ""; + message.items = object.items?.map((e) => CartItem.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseEmpty(): Empty { + return {}; +} + +export const Empty = { + encode(_: Empty, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Empty { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEmpty(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(_: any): Empty { + return {}; + }, + + toJSON(_: Empty): unknown { + const obj: any = {}; + return obj; + }, + + create, I>>(base?: I): Empty { + return Empty.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(_: I): Empty { + const message = createBaseEmpty(); + return message; + }, +}; + +function createBaseListRecommendationsRequest(): ListRecommendationsRequest { + return { userId: "", productIds: [] }; +} + +export const ListRecommendationsRequest = { + encode(message: ListRecommendationsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + for (const v of message.productIds) { + writer.uint32(18).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ListRecommendationsRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseListRecommendationsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.productIds.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ListRecommendationsRequest { + return { + userId: isSet(object.userId) ? globalThis.String(object.userId) : "", + productIds: globalThis.Array.isArray(object?.productIds) + ? object.productIds.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: ListRecommendationsRequest): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + if (message.productIds?.length) { + obj.productIds = message.productIds; + } + return obj; + }, + + create, I>>(base?: I): ListRecommendationsRequest { + return ListRecommendationsRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ListRecommendationsRequest { + const message = createBaseListRecommendationsRequest(); + message.userId = object.userId ?? ""; + message.productIds = object.productIds?.map((e) => e) || []; + return message; + }, +}; + +function createBaseListRecommendationsResponse(): ListRecommendationsResponse { + return { productIds: [] }; +} + +export const ListRecommendationsResponse = { + encode(message: ListRecommendationsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.productIds) { + writer.uint32(10).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ListRecommendationsResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseListRecommendationsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.productIds.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ListRecommendationsResponse { + return { + productIds: globalThis.Array.isArray(object?.productIds) + ? object.productIds.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: ListRecommendationsResponse): unknown { + const obj: any = {}; + if (message.productIds?.length) { + obj.productIds = message.productIds; + } + return obj; + }, + + create, I>>(base?: I): ListRecommendationsResponse { + return ListRecommendationsResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ListRecommendationsResponse { + const message = createBaseListRecommendationsResponse(); + message.productIds = object.productIds?.map((e) => e) || []; + return message; + }, +}; + +function createBaseProduct(): Product { + return { id: "", name: "", description: "", picture: "", priceUsd: undefined, categories: [] }; +} + +export const Product = { + encode(message: Product, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.id !== "") { + writer.uint32(10).string(message.id); + } + if (message.name !== "") { + writer.uint32(18).string(message.name); + } + if (message.description !== "") { + writer.uint32(26).string(message.description); + } + if (message.picture !== "") { + writer.uint32(34).string(message.picture); + } + if (message.priceUsd !== undefined) { + Money.encode(message.priceUsd, writer.uint32(42).fork()).ldelim(); + } + for (const v of message.categories) { + writer.uint32(50).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Product { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProduct(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.id = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.name = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.description = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.picture = reader.string(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.priceUsd = Money.decode(reader, reader.uint32()); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.categories.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Product { + return { + id: isSet(object.id) ? globalThis.String(object.id) : "", + name: isSet(object.name) ? globalThis.String(object.name) : "", + description: isSet(object.description) ? globalThis.String(object.description) : "", + picture: isSet(object.picture) ? globalThis.String(object.picture) : "", + priceUsd: isSet(object.priceUsd) ? Money.fromJSON(object.priceUsd) : undefined, + categories: globalThis.Array.isArray(object?.categories) + ? object.categories.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: Product): unknown { + const obj: any = {}; + if (message.id !== "") { + obj.id = message.id; + } + if (message.name !== "") { + obj.name = message.name; + } + if (message.description !== "") { + obj.description = message.description; + } + if (message.picture !== "") { + obj.picture = message.picture; + } + if (message.priceUsd !== undefined) { + obj.priceUsd = Money.toJSON(message.priceUsd); + } + if (message.categories?.length) { + obj.categories = message.categories; + } + return obj; + }, + + create, I>>(base?: I): Product { + return Product.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Product { + const message = createBaseProduct(); + message.id = object.id ?? ""; + message.name = object.name ?? ""; + message.description = object.description ?? ""; + message.picture = object.picture ?? ""; + message.priceUsd = (object.priceUsd !== undefined && object.priceUsd !== null) + ? Money.fromPartial(object.priceUsd) + : undefined; + message.categories = object.categories?.map((e) => e) || []; + return message; + }, +}; + +function createBaseListProductsResponse(): ListProductsResponse { + return { products: [] }; +} + +export const ListProductsResponse = { + encode(message: ListProductsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.products) { + Product.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ListProductsResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseListProductsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.products.push(Product.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ListProductsResponse { + return { + products: globalThis.Array.isArray(object?.products) ? object.products.map((e: any) => Product.fromJSON(e)) : [], + }; + }, + + toJSON(message: ListProductsResponse): unknown { + const obj: any = {}; + if (message.products?.length) { + obj.products = message.products.map((e) => Product.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): ListProductsResponse { + return ListProductsResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ListProductsResponse { + const message = createBaseListProductsResponse(); + message.products = object.products?.map((e) => Product.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetProductRequest(): GetProductRequest { + return { id: "" }; +} + +export const GetProductRequest = { + encode(message: GetProductRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.id !== "") { + writer.uint32(10).string(message.id); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetProductRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetProductRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.id = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetProductRequest { + return { id: isSet(object.id) ? globalThis.String(object.id) : "" }; + }, + + toJSON(message: GetProductRequest): unknown { + const obj: any = {}; + if (message.id !== "") { + obj.id = message.id; + } + return obj; + }, + + create, I>>(base?: I): GetProductRequest { + return GetProductRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetProductRequest { + const message = createBaseGetProductRequest(); + message.id = object.id ?? ""; + return message; + }, +}; + +function createBaseSearchProductsRequest(): SearchProductsRequest { + return { query: "" }; +} + +export const SearchProductsRequest = { + encode(message: SearchProductsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.query !== "") { + writer.uint32(10).string(message.query); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SearchProductsRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSearchProductsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.query = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): SearchProductsRequest { + return { query: isSet(object.query) ? globalThis.String(object.query) : "" }; + }, + + toJSON(message: SearchProductsRequest): unknown { + const obj: any = {}; + if (message.query !== "") { + obj.query = message.query; + } + return obj; + }, + + create, I>>(base?: I): SearchProductsRequest { + return SearchProductsRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): SearchProductsRequest { + const message = createBaseSearchProductsRequest(); + message.query = object.query ?? ""; + return message; + }, +}; + +function createBaseSearchProductsResponse(): SearchProductsResponse { + return { results: [] }; +} + +export const SearchProductsResponse = { + encode(message: SearchProductsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.results) { + Product.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SearchProductsResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSearchProductsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.results.push(Product.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): SearchProductsResponse { + return { + results: globalThis.Array.isArray(object?.results) ? object.results.map((e: any) => Product.fromJSON(e)) : [], + }; + }, + + toJSON(message: SearchProductsResponse): unknown { + const obj: any = {}; + if (message.results?.length) { + obj.results = message.results.map((e) => Product.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): SearchProductsResponse { + return SearchProductsResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): SearchProductsResponse { + const message = createBaseSearchProductsResponse(); + message.results = object.results?.map((e) => Product.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetQuoteRequest(): GetQuoteRequest { + return { address: undefined, items: [] }; +} + +export const GetQuoteRequest = { + encode(message: GetQuoteRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined) { + Address.encode(message.address, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.items) { + CartItem.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetQuoteRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetQuoteRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = Address.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.items.push(CartItem.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetQuoteRequest { + return { + address: isSet(object.address) ? Address.fromJSON(object.address) : undefined, + items: globalThis.Array.isArray(object?.items) ? object.items.map((e: any) => CartItem.fromJSON(e)) : [], + }; + }, + + toJSON(message: GetQuoteRequest): unknown { + const obj: any = {}; + if (message.address !== undefined) { + obj.address = Address.toJSON(message.address); + } + if (message.items?.length) { + obj.items = message.items.map((e) => CartItem.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): GetQuoteRequest { + return GetQuoteRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetQuoteRequest { + const message = createBaseGetQuoteRequest(); + message.address = (object.address !== undefined && object.address !== null) + ? Address.fromPartial(object.address) + : undefined; + message.items = object.items?.map((e) => CartItem.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetQuoteResponse(): GetQuoteResponse { + return { costUsd: undefined }; +} + +export const GetQuoteResponse = { + encode(message: GetQuoteResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.costUsd !== undefined) { + Money.encode(message.costUsd, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetQuoteResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetQuoteResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.costUsd = Money.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetQuoteResponse { + return { costUsd: isSet(object.costUsd) ? Money.fromJSON(object.costUsd) : undefined }; + }, + + toJSON(message: GetQuoteResponse): unknown { + const obj: any = {}; + if (message.costUsd !== undefined) { + obj.costUsd = Money.toJSON(message.costUsd); + } + return obj; + }, + + create, I>>(base?: I): GetQuoteResponse { + return GetQuoteResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetQuoteResponse { + const message = createBaseGetQuoteResponse(); + message.costUsd = (object.costUsd !== undefined && object.costUsd !== null) + ? Money.fromPartial(object.costUsd) + : undefined; + return message; + }, +}; + +function createBaseShipOrderRequest(): ShipOrderRequest { + return { address: undefined, items: [] }; +} + +export const ShipOrderRequest = { + encode(message: ShipOrderRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined) { + Address.encode(message.address, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.items) { + CartItem.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ShipOrderRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseShipOrderRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = Address.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.items.push(CartItem.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ShipOrderRequest { + return { + address: isSet(object.address) ? Address.fromJSON(object.address) : undefined, + items: globalThis.Array.isArray(object?.items) ? object.items.map((e: any) => CartItem.fromJSON(e)) : [], + }; + }, + + toJSON(message: ShipOrderRequest): unknown { + const obj: any = {}; + if (message.address !== undefined) { + obj.address = Address.toJSON(message.address); + } + if (message.items?.length) { + obj.items = message.items.map((e) => CartItem.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): ShipOrderRequest { + return ShipOrderRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ShipOrderRequest { + const message = createBaseShipOrderRequest(); + message.address = (object.address !== undefined && object.address !== null) + ? Address.fromPartial(object.address) + : undefined; + message.items = object.items?.map((e) => CartItem.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseShipOrderResponse(): ShipOrderResponse { + return { trackingId: "" }; +} + +export const ShipOrderResponse = { + encode(message: ShipOrderResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.trackingId !== "") { + writer.uint32(10).string(message.trackingId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ShipOrderResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseShipOrderResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.trackingId = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ShipOrderResponse { + return { trackingId: isSet(object.trackingId) ? globalThis.String(object.trackingId) : "" }; + }, + + toJSON(message: ShipOrderResponse): unknown { + const obj: any = {}; + if (message.trackingId !== "") { + obj.trackingId = message.trackingId; + } + return obj; + }, + + create, I>>(base?: I): ShipOrderResponse { + return ShipOrderResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ShipOrderResponse { + const message = createBaseShipOrderResponse(); + message.trackingId = object.trackingId ?? ""; + return message; + }, +}; + +function createBaseAddress(): Address { + return { streetAddress: "", city: "", state: "", country: "", zipCode: "" }; +} + +export const Address = { + encode(message: Address, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.streetAddress !== "") { + writer.uint32(10).string(message.streetAddress); + } + if (message.city !== "") { + writer.uint32(18).string(message.city); + } + if (message.state !== "") { + writer.uint32(26).string(message.state); + } + if (message.country !== "") { + writer.uint32(34).string(message.country); + } + if (message.zipCode !== "") { + writer.uint32(42).string(message.zipCode); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Address { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAddress(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.streetAddress = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.city = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.state = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.country = reader.string(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.zipCode = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Address { + return { + streetAddress: isSet(object.streetAddress) ? globalThis.String(object.streetAddress) : "", + city: isSet(object.city) ? globalThis.String(object.city) : "", + state: isSet(object.state) ? globalThis.String(object.state) : "", + country: isSet(object.country) ? globalThis.String(object.country) : "", + zipCode: isSet(object.zipCode) ? globalThis.String(object.zipCode) : "", + }; + }, + + toJSON(message: Address): unknown { + const obj: any = {}; + if (message.streetAddress !== "") { + obj.streetAddress = message.streetAddress; + } + if (message.city !== "") { + obj.city = message.city; + } + if (message.state !== "") { + obj.state = message.state; + } + if (message.country !== "") { + obj.country = message.country; + } + if (message.zipCode !== "") { + obj.zipCode = message.zipCode; + } + return obj; + }, + + create, I>>(base?: I): Address { + return Address.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Address { + const message = createBaseAddress(); + message.streetAddress = object.streetAddress ?? ""; + message.city = object.city ?? ""; + message.state = object.state ?? ""; + message.country = object.country ?? ""; + message.zipCode = object.zipCode ?? ""; + return message; + }, +}; + +function createBaseMoney(): Money { + return { currencyCode: "", units: 0, nanos: 0 }; +} + +export const Money = { + encode(message: Money, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.currencyCode !== "") { + writer.uint32(10).string(message.currencyCode); + } + if (message.units !== 0) { + writer.uint32(16).int64(message.units); + } + if (message.nanos !== 0) { + writer.uint32(24).int32(message.nanos); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Money { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoney(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.currencyCode = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.units = longToNumber(reader.int64() as Long); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.nanos = reader.int32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Money { + return { + currencyCode: isSet(object.currencyCode) ? globalThis.String(object.currencyCode) : "", + units: isSet(object.units) ? globalThis.Number(object.units) : 0, + nanos: isSet(object.nanos) ? globalThis.Number(object.nanos) : 0, + }; + }, + + toJSON(message: Money): unknown { + const obj: any = {}; + if (message.currencyCode !== "") { + obj.currencyCode = message.currencyCode; + } + if (message.units !== 0) { + obj.units = Math.round(message.units); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } + return obj; + }, + + create, I>>(base?: I): Money { + return Money.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Money { + const message = createBaseMoney(); + message.currencyCode = object.currencyCode ?? ""; + message.units = object.units ?? 0; + message.nanos = object.nanos ?? 0; + return message; + }, +}; + +function createBaseGetSupportedCurrenciesResponse(): GetSupportedCurrenciesResponse { + return { currencyCodes: [] }; +} + +export const GetSupportedCurrenciesResponse = { + encode(message: GetSupportedCurrenciesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.currencyCodes) { + writer.uint32(10).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetSupportedCurrenciesResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetSupportedCurrenciesResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.currencyCodes.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetSupportedCurrenciesResponse { + return { + currencyCodes: globalThis.Array.isArray(object?.currencyCodes) + ? object.currencyCodes.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: GetSupportedCurrenciesResponse): unknown { + const obj: any = {}; + if (message.currencyCodes?.length) { + obj.currencyCodes = message.currencyCodes; + } + return obj; + }, + + create, I>>(base?: I): GetSupportedCurrenciesResponse { + return GetSupportedCurrenciesResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>( + object: I, + ): GetSupportedCurrenciesResponse { + const message = createBaseGetSupportedCurrenciesResponse(); + message.currencyCodes = object.currencyCodes?.map((e) => e) || []; + return message; + }, +}; + +function createBaseCurrencyConversionRequest(): CurrencyConversionRequest { + return { from: undefined, toCode: "" }; +} + +export const CurrencyConversionRequest = { + encode(message: CurrencyConversionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.from !== undefined) { + Money.encode(message.from, writer.uint32(10).fork()).ldelim(); + } + if (message.toCode !== "") { + writer.uint32(18).string(message.toCode); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CurrencyConversionRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCurrencyConversionRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.from = Money.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.toCode = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): CurrencyConversionRequest { + return { + from: isSet(object.from) ? Money.fromJSON(object.from) : undefined, + toCode: isSet(object.toCode) ? globalThis.String(object.toCode) : "", + }; + }, + + toJSON(message: CurrencyConversionRequest): unknown { + const obj: any = {}; + if (message.from !== undefined) { + obj.from = Money.toJSON(message.from); + } + if (message.toCode !== "") { + obj.toCode = message.toCode; + } + return obj; + }, + + create, I>>(base?: I): CurrencyConversionRequest { + return CurrencyConversionRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): CurrencyConversionRequest { + const message = createBaseCurrencyConversionRequest(); + message.from = (object.from !== undefined && object.from !== null) ? Money.fromPartial(object.from) : undefined; + message.toCode = object.toCode ?? ""; + return message; + }, +}; + +function createBaseCreditCardInfo(): CreditCardInfo { + return { creditCardNumber: "", creditCardCvv: 0, creditCardExpirationYear: 0, creditCardExpirationMonth: 0 }; +} + +export const CreditCardInfo = { + encode(message: CreditCardInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.creditCardNumber !== "") { + writer.uint32(10).string(message.creditCardNumber); + } + if (message.creditCardCvv !== 0) { + writer.uint32(16).int32(message.creditCardCvv); + } + if (message.creditCardExpirationYear !== 0) { + writer.uint32(24).int32(message.creditCardExpirationYear); + } + if (message.creditCardExpirationMonth !== 0) { + writer.uint32(32).int32(message.creditCardExpirationMonth); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreditCardInfo { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreditCardInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.creditCardNumber = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.creditCardCvv = reader.int32(); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.creditCardExpirationYear = reader.int32(); + continue; + case 4: + if (tag !== 32) { + break; + } + + message.creditCardExpirationMonth = reader.int32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): CreditCardInfo { + return { + creditCardNumber: isSet(object.creditCardNumber) ? globalThis.String(object.creditCardNumber) : "", + creditCardCvv: isSet(object.creditCardCvv) ? globalThis.Number(object.creditCardCvv) : 0, + creditCardExpirationYear: isSet(object.creditCardExpirationYear) + ? globalThis.Number(object.creditCardExpirationYear) + : 0, + creditCardExpirationMonth: isSet(object.creditCardExpirationMonth) + ? globalThis.Number(object.creditCardExpirationMonth) + : 0, + }; + }, + + toJSON(message: CreditCardInfo): unknown { + const obj: any = {}; + if (message.creditCardNumber !== "") { + obj.creditCardNumber = message.creditCardNumber; + } + if (message.creditCardCvv !== 0) { + obj.creditCardCvv = Math.round(message.creditCardCvv); + } + if (message.creditCardExpirationYear !== 0) { + obj.creditCardExpirationYear = Math.round(message.creditCardExpirationYear); + } + if (message.creditCardExpirationMonth !== 0) { + obj.creditCardExpirationMonth = Math.round(message.creditCardExpirationMonth); + } + return obj; + }, + + create, I>>(base?: I): CreditCardInfo { + return CreditCardInfo.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): CreditCardInfo { + const message = createBaseCreditCardInfo(); + message.creditCardNumber = object.creditCardNumber ?? ""; + message.creditCardCvv = object.creditCardCvv ?? 0; + message.creditCardExpirationYear = object.creditCardExpirationYear ?? 0; + message.creditCardExpirationMonth = object.creditCardExpirationMonth ?? 0; + return message; + }, +}; + +function createBaseChargeRequest(): ChargeRequest { + return { amount: undefined, creditCard: undefined }; +} + +export const ChargeRequest = { + encode(message: ChargeRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.amount !== undefined) { + Money.encode(message.amount, writer.uint32(10).fork()).ldelim(); + } + if (message.creditCard !== undefined) { + CreditCardInfo.encode(message.creditCard, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ChargeRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseChargeRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.amount = Money.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.creditCard = CreditCardInfo.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ChargeRequest { + return { + amount: isSet(object.amount) ? Money.fromJSON(object.amount) : undefined, + creditCard: isSet(object.creditCard) ? CreditCardInfo.fromJSON(object.creditCard) : undefined, + }; + }, + + toJSON(message: ChargeRequest): unknown { + const obj: any = {}; + if (message.amount !== undefined) { + obj.amount = Money.toJSON(message.amount); + } + if (message.creditCard !== undefined) { + obj.creditCard = CreditCardInfo.toJSON(message.creditCard); + } + return obj; + }, + + create, I>>(base?: I): ChargeRequest { + return ChargeRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ChargeRequest { + const message = createBaseChargeRequest(); + message.amount = (object.amount !== undefined && object.amount !== null) + ? Money.fromPartial(object.amount) + : undefined; + message.creditCard = (object.creditCard !== undefined && object.creditCard !== null) + ? CreditCardInfo.fromPartial(object.creditCard) + : undefined; + return message; + }, +}; + +function createBaseChargeResponse(): ChargeResponse { + return { transactionId: "" }; +} + +export const ChargeResponse = { + encode(message: ChargeResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.transactionId !== "") { + writer.uint32(10).string(message.transactionId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ChargeResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseChargeResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.transactionId = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ChargeResponse { + return { transactionId: isSet(object.transactionId) ? globalThis.String(object.transactionId) : "" }; + }, + + toJSON(message: ChargeResponse): unknown { + const obj: any = {}; + if (message.transactionId !== "") { + obj.transactionId = message.transactionId; + } + return obj; + }, + + create, I>>(base?: I): ChargeResponse { + return ChargeResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ChargeResponse { + const message = createBaseChargeResponse(); + message.transactionId = object.transactionId ?? ""; + return message; + }, +}; + +function createBaseOrderItem(): OrderItem { + return { item: undefined, cost: undefined }; +} + +export const OrderItem = { + encode(message: OrderItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.item !== undefined) { + CartItem.encode(message.item, writer.uint32(10).fork()).ldelim(); + } + if (message.cost !== undefined) { + Money.encode(message.cost, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): OrderItem { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseOrderItem(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.item = CartItem.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.cost = Money.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): OrderItem { + return { + item: isSet(object.item) ? CartItem.fromJSON(object.item) : undefined, + cost: isSet(object.cost) ? Money.fromJSON(object.cost) : undefined, + }; + }, + + toJSON(message: OrderItem): unknown { + const obj: any = {}; + if (message.item !== undefined) { + obj.item = CartItem.toJSON(message.item); + } + if (message.cost !== undefined) { + obj.cost = Money.toJSON(message.cost); + } + return obj; + }, + + create, I>>(base?: I): OrderItem { + return OrderItem.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): OrderItem { + const message = createBaseOrderItem(); + message.item = (object.item !== undefined && object.item !== null) ? CartItem.fromPartial(object.item) : undefined; + message.cost = (object.cost !== undefined && object.cost !== null) ? Money.fromPartial(object.cost) : undefined; + return message; + }, +}; + +function createBaseOrderResult(): OrderResult { + return { orderId: "", shippingTrackingId: "", shippingCost: undefined, shippingAddress: undefined, items: [] }; +} + +export const OrderResult = { + encode(message: OrderResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.orderId !== "") { + writer.uint32(10).string(message.orderId); + } + if (message.shippingTrackingId !== "") { + writer.uint32(18).string(message.shippingTrackingId); + } + if (message.shippingCost !== undefined) { + Money.encode(message.shippingCost, writer.uint32(26).fork()).ldelim(); + } + if (message.shippingAddress !== undefined) { + Address.encode(message.shippingAddress, writer.uint32(34).fork()).ldelim(); + } + for (const v of message.items) { + OrderItem.encode(v!, writer.uint32(42).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): OrderResult { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseOrderResult(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.orderId = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.shippingTrackingId = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.shippingCost = Money.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.shippingAddress = Address.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.items.push(OrderItem.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): OrderResult { + return { + orderId: isSet(object.orderId) ? globalThis.String(object.orderId) : "", + shippingTrackingId: isSet(object.shippingTrackingId) ? globalThis.String(object.shippingTrackingId) : "", + shippingCost: isSet(object.shippingCost) ? Money.fromJSON(object.shippingCost) : undefined, + shippingAddress: isSet(object.shippingAddress) ? Address.fromJSON(object.shippingAddress) : undefined, + items: globalThis.Array.isArray(object?.items) ? object.items.map((e: any) => OrderItem.fromJSON(e)) : [], + }; + }, + + toJSON(message: OrderResult): unknown { + const obj: any = {}; + if (message.orderId !== "") { + obj.orderId = message.orderId; + } + if (message.shippingTrackingId !== "") { + obj.shippingTrackingId = message.shippingTrackingId; + } + if (message.shippingCost !== undefined) { + obj.shippingCost = Money.toJSON(message.shippingCost); + } + if (message.shippingAddress !== undefined) { + obj.shippingAddress = Address.toJSON(message.shippingAddress); + } + if (message.items?.length) { + obj.items = message.items.map((e) => OrderItem.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): OrderResult { + return OrderResult.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): OrderResult { + const message = createBaseOrderResult(); + message.orderId = object.orderId ?? ""; + message.shippingTrackingId = object.shippingTrackingId ?? ""; + message.shippingCost = (object.shippingCost !== undefined && object.shippingCost !== null) + ? Money.fromPartial(object.shippingCost) + : undefined; + message.shippingAddress = (object.shippingAddress !== undefined && object.shippingAddress !== null) + ? Address.fromPartial(object.shippingAddress) + : undefined; + message.items = object.items?.map((e) => OrderItem.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseSendOrderConfirmationRequest(): SendOrderConfirmationRequest { + return { email: "", order: undefined }; +} + +export const SendOrderConfirmationRequest = { + encode(message: SendOrderConfirmationRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.email !== "") { + writer.uint32(10).string(message.email); + } + if (message.order !== undefined) { + OrderResult.encode(message.order, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SendOrderConfirmationRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSendOrderConfirmationRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.email = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.order = OrderResult.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): SendOrderConfirmationRequest { + return { + email: isSet(object.email) ? globalThis.String(object.email) : "", + order: isSet(object.order) ? OrderResult.fromJSON(object.order) : undefined, + }; + }, + + toJSON(message: SendOrderConfirmationRequest): unknown { + const obj: any = {}; + if (message.email !== "") { + obj.email = message.email; + } + if (message.order !== undefined) { + obj.order = OrderResult.toJSON(message.order); + } + return obj; + }, + + create, I>>(base?: I): SendOrderConfirmationRequest { + return SendOrderConfirmationRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): SendOrderConfirmationRequest { + const message = createBaseSendOrderConfirmationRequest(); + message.email = object.email ?? ""; + message.order = (object.order !== undefined && object.order !== null) + ? OrderResult.fromPartial(object.order) + : undefined; + return message; + }, +}; + +function createBasePlaceOrderRequest(): PlaceOrderRequest { + return { userId: "", userCurrency: "", address: undefined, email: "", creditCard: undefined }; +} + +export const PlaceOrderRequest = { + encode(message: PlaceOrderRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + if (message.userCurrency !== "") { + writer.uint32(18).string(message.userCurrency); + } + if (message.address !== undefined) { + Address.encode(message.address, writer.uint32(26).fork()).ldelim(); + } + if (message.email !== "") { + writer.uint32(42).string(message.email); + } + if (message.creditCard !== undefined) { + CreditCardInfo.encode(message.creditCard, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): PlaceOrderRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePlaceOrderRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.userCurrency = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.address = Address.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.email = reader.string(); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.creditCard = CreditCardInfo.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): PlaceOrderRequest { + return { + userId: isSet(object.userId) ? globalThis.String(object.userId) : "", + userCurrency: isSet(object.userCurrency) ? globalThis.String(object.userCurrency) : "", + address: isSet(object.address) ? Address.fromJSON(object.address) : undefined, + email: isSet(object.email) ? globalThis.String(object.email) : "", + creditCard: isSet(object.creditCard) ? CreditCardInfo.fromJSON(object.creditCard) : undefined, + }; + }, + + toJSON(message: PlaceOrderRequest): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + if (message.userCurrency !== "") { + obj.userCurrency = message.userCurrency; + } + if (message.address !== undefined) { + obj.address = Address.toJSON(message.address); + } + if (message.email !== "") { + obj.email = message.email; + } + if (message.creditCard !== undefined) { + obj.creditCard = CreditCardInfo.toJSON(message.creditCard); + } + return obj; + }, + + create, I>>(base?: I): PlaceOrderRequest { + return PlaceOrderRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): PlaceOrderRequest { + const message = createBasePlaceOrderRequest(); + message.userId = object.userId ?? ""; + message.userCurrency = object.userCurrency ?? ""; + message.address = (object.address !== undefined && object.address !== null) + ? Address.fromPartial(object.address) + : undefined; + message.email = object.email ?? ""; + message.creditCard = (object.creditCard !== undefined && object.creditCard !== null) + ? CreditCardInfo.fromPartial(object.creditCard) + : undefined; + return message; + }, +}; + +function createBasePlaceOrderResponse(): PlaceOrderResponse { + return { order: undefined }; +} + +export const PlaceOrderResponse = { + encode(message: PlaceOrderResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.order !== undefined) { + OrderResult.encode(message.order, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): PlaceOrderResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePlaceOrderResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.order = OrderResult.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): PlaceOrderResponse { + return { order: isSet(object.order) ? OrderResult.fromJSON(object.order) : undefined }; + }, + + toJSON(message: PlaceOrderResponse): unknown { + const obj: any = {}; + if (message.order !== undefined) { + obj.order = OrderResult.toJSON(message.order); + } + return obj; + }, + + create, I>>(base?: I): PlaceOrderResponse { + return PlaceOrderResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): PlaceOrderResponse { + const message = createBasePlaceOrderResponse(); + message.order = (object.order !== undefined && object.order !== null) + ? OrderResult.fromPartial(object.order) + : undefined; + return message; + }, +}; + +function createBaseAdRequest(): AdRequest { + return { contextKeys: [] }; +} + +export const AdRequest = { + encode(message: AdRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.contextKeys) { + writer.uint32(10).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AdRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAdRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.contextKeys.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): AdRequest { + return { + contextKeys: globalThis.Array.isArray(object?.contextKeys) + ? object.contextKeys.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: AdRequest): unknown { + const obj: any = {}; + if (message.contextKeys?.length) { + obj.contextKeys = message.contextKeys; + } + return obj; + }, + + create, I>>(base?: I): AdRequest { + return AdRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): AdRequest { + const message = createBaseAdRequest(); + message.contextKeys = object.contextKeys?.map((e) => e) || []; + return message; + }, +}; + +function createBaseAdResponse(): AdResponse { + return { ads: [] }; +} + +export const AdResponse = { + encode(message: AdResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.ads) { + Ad.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AdResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAdResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.ads.push(Ad.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): AdResponse { + return { ads: globalThis.Array.isArray(object?.ads) ? object.ads.map((e: any) => Ad.fromJSON(e)) : [] }; + }, + + toJSON(message: AdResponse): unknown { + const obj: any = {}; + if (message.ads?.length) { + obj.ads = message.ads.map((e) => Ad.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): AdResponse { + return AdResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): AdResponse { + const message = createBaseAdResponse(); + message.ads = object.ads?.map((e) => Ad.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseAd(): Ad { + return { redirectUrl: "", text: "" }; +} + +export const Ad = { + encode(message: Ad, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.redirectUrl !== "") { + writer.uint32(10).string(message.redirectUrl); + } + if (message.text !== "") { + writer.uint32(18).string(message.text); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Ad { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAd(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.redirectUrl = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.text = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Ad { + return { + redirectUrl: isSet(object.redirectUrl) ? globalThis.String(object.redirectUrl) : "", + text: isSet(object.text) ? globalThis.String(object.text) : "", + }; + }, + + toJSON(message: Ad): unknown { + const obj: any = {}; + if (message.redirectUrl !== "") { + obj.redirectUrl = message.redirectUrl; + } + if (message.text !== "") { + obj.text = message.text; + } + return obj; + }, + + create, I>>(base?: I): Ad { + return Ad.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Ad { + const message = createBaseAd(); + message.redirectUrl = object.redirectUrl ?? ""; + message.text = object.text ?? ""; + return message; + }, +}; + +function createBaseFlag(): Flag { + return { name: "", description: "", enabled: false }; +} + +export const Flag = { + encode(message: Flag, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.description !== "") { + writer.uint32(18).string(message.description); + } + if (message.enabled !== false) { + writer.uint32(24).bool(message.enabled); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Flag { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseFlag(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.description = reader.string(); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.enabled = reader.bool(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Flag { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + description: isSet(object.description) ? globalThis.String(object.description) : "", + enabled: isSet(object.enabled) ? globalThis.Boolean(object.enabled) : false, + }; + }, + + toJSON(message: Flag): unknown { + const obj: any = {}; + if (message.name !== "") { + obj.name = message.name; + } + if (message.description !== "") { + obj.description = message.description; + } + if (message.enabled !== false) { + obj.enabled = message.enabled; + } + return obj; + }, + + create, I>>(base?: I): Flag { + return Flag.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Flag { + const message = createBaseFlag(); + message.name = object.name ?? ""; + message.description = object.description ?? ""; + message.enabled = object.enabled ?? false; + return message; + }, +}; + +function createBaseGetFlagRequest(): GetFlagRequest { + return { name: "" }; +} + +export const GetFlagRequest = { + encode(message: GetFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetFlagRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetFlagRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetFlagRequest { + return { name: isSet(object.name) ? globalThis.String(object.name) : "" }; + }, + + toJSON(message: GetFlagRequest): unknown { + const obj: any = {}; + if (message.name !== "") { + obj.name = message.name; + } + return obj; + }, + + create, I>>(base?: I): GetFlagRequest { + return GetFlagRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetFlagRequest { + const message = createBaseGetFlagRequest(); + message.name = object.name ?? ""; + return message; + }, +}; + +function createBaseGetFlagResponse(): GetFlagResponse { + return { flag: undefined }; +} + +export const GetFlagResponse = { + encode(message: GetFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.flag !== undefined) { + Flag.encode(message.flag, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetFlagResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetFlagResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.flag = Flag.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetFlagResponse { + return { flag: isSet(object.flag) ? Flag.fromJSON(object.flag) : undefined }; + }, + + toJSON(message: GetFlagResponse): unknown { + const obj: any = {}; + if (message.flag !== undefined) { + obj.flag = Flag.toJSON(message.flag); + } + return obj; + }, + + create, I>>(base?: I): GetFlagResponse { + return GetFlagResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetFlagResponse { + const message = createBaseGetFlagResponse(); + message.flag = (object.flag !== undefined && object.flag !== null) ? Flag.fromPartial(object.flag) : undefined; + return message; + }, +}; + +function createBaseCreateFlagRequest(): CreateFlagRequest { + return { name: "", description: "", enabled: false }; +} + +export const CreateFlagRequest = { + encode(message: CreateFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.description !== "") { + writer.uint32(18).string(message.description); + } + if (message.enabled !== false) { + writer.uint32(24).bool(message.enabled); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateFlagRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateFlagRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.description = reader.string(); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.enabled = reader.bool(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): CreateFlagRequest { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + description: isSet(object.description) ? globalThis.String(object.description) : "", + enabled: isSet(object.enabled) ? globalThis.Boolean(object.enabled) : false, + }; + }, + + toJSON(message: CreateFlagRequest): unknown { + const obj: any = {}; + if (message.name !== "") { + obj.name = message.name; + } + if (message.description !== "") { + obj.description = message.description; + } + if (message.enabled !== false) { + obj.enabled = message.enabled; + } + return obj; + }, + + create, I>>(base?: I): CreateFlagRequest { + return CreateFlagRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): CreateFlagRequest { + const message = createBaseCreateFlagRequest(); + message.name = object.name ?? ""; + message.description = object.description ?? ""; + message.enabled = object.enabled ?? false; + return message; + }, +}; + +function createBaseCreateFlagResponse(): CreateFlagResponse { + return { flag: undefined }; +} + +export const CreateFlagResponse = { + encode(message: CreateFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.flag !== undefined) { + Flag.encode(message.flag, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateFlagResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateFlagResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.flag = Flag.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): CreateFlagResponse { + return { flag: isSet(object.flag) ? Flag.fromJSON(object.flag) : undefined }; + }, + + toJSON(message: CreateFlagResponse): unknown { + const obj: any = {}; + if (message.flag !== undefined) { + obj.flag = Flag.toJSON(message.flag); + } + return obj; + }, + + create, I>>(base?: I): CreateFlagResponse { + return CreateFlagResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): CreateFlagResponse { + const message = createBaseCreateFlagResponse(); + message.flag = (object.flag !== undefined && object.flag !== null) ? Flag.fromPartial(object.flag) : undefined; + return message; + }, +}; + +function createBaseUpdateFlagRequest(): UpdateFlagRequest { + return { name: "", enabled: false }; +} + +export const UpdateFlagRequest = { + encode(message: UpdateFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.enabled !== false) { + writer.uint32(16).bool(message.enabled); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateFlagRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateFlagRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.enabled = reader.bool(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): UpdateFlagRequest { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + enabled: isSet(object.enabled) ? globalThis.Boolean(object.enabled) : false, + }; + }, + + toJSON(message: UpdateFlagRequest): unknown { + const obj: any = {}; + if (message.name !== "") { + obj.name = message.name; + } + if (message.enabled !== false) { + obj.enabled = message.enabled; + } + return obj; + }, + + create, I>>(base?: I): UpdateFlagRequest { + return UpdateFlagRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): UpdateFlagRequest { + const message = createBaseUpdateFlagRequest(); + message.name = object.name ?? ""; + message.enabled = object.enabled ?? false; + return message; + }, +}; + +function createBaseUpdateFlagResponse(): UpdateFlagResponse { + return {}; +} + +export const UpdateFlagResponse = { + encode(_: UpdateFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateFlagResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateFlagResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(_: any): UpdateFlagResponse { + return {}; + }, + + toJSON(_: UpdateFlagResponse): unknown { + const obj: any = {}; + return obj; + }, + + create, I>>(base?: I): UpdateFlagResponse { + return UpdateFlagResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(_: I): UpdateFlagResponse { + const message = createBaseUpdateFlagResponse(); + return message; + }, +}; + +function createBaseListFlagsRequest(): ListFlagsRequest { + return {}; +} + +export const ListFlagsRequest = { + encode(_: ListFlagsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ListFlagsRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseListFlagsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(_: any): ListFlagsRequest { + return {}; + }, + + toJSON(_: ListFlagsRequest): unknown { + const obj: any = {}; + return obj; + }, + + create, I>>(base?: I): ListFlagsRequest { + return ListFlagsRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(_: I): ListFlagsRequest { + const message = createBaseListFlagsRequest(); + return message; + }, +}; + +function createBaseListFlagsResponse(): ListFlagsResponse { + return { flag: [] }; +} + +export const ListFlagsResponse = { + encode(message: ListFlagsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.flag) { + Flag.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ListFlagsResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseListFlagsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.flag.push(Flag.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ListFlagsResponse { + return { flag: globalThis.Array.isArray(object?.flag) ? object.flag.map((e: any) => Flag.fromJSON(e)) : [] }; + }, + + toJSON(message: ListFlagsResponse): unknown { + const obj: any = {}; + if (message.flag?.length) { + obj.flag = message.flag.map((e) => Flag.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): ListFlagsResponse { + return ListFlagsResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ListFlagsResponse { + const message = createBaseListFlagsResponse(); + message.flag = object.flag?.map((e) => Flag.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseDeleteFlagRequest(): DeleteFlagRequest { + return { name: "" }; +} + +export const DeleteFlagRequest = { + encode(message: DeleteFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFlagRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteFlagRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): DeleteFlagRequest { + return { name: isSet(object.name) ? globalThis.String(object.name) : "" }; + }, + + toJSON(message: DeleteFlagRequest): unknown { + const obj: any = {}; + if (message.name !== "") { + obj.name = message.name; + } + return obj; + }, + + create, I>>(base?: I): DeleteFlagRequest { + return DeleteFlagRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): DeleteFlagRequest { + const message = createBaseDeleteFlagRequest(); + message.name = object.name ?? ""; + return message; + }, +}; + +function createBaseDeleteFlagResponse(): DeleteFlagResponse { + return {}; +} + +export const DeleteFlagResponse = { + encode(_: DeleteFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFlagResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteFlagResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(_: any): DeleteFlagResponse { + return {}; + }, + + toJSON(_: DeleteFlagResponse): unknown { + const obj: any = {}; + return obj; + }, + + create, I>>(base?: I): DeleteFlagResponse { + return DeleteFlagResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(_: I): DeleteFlagResponse { + const message = createBaseDeleteFlagResponse(); + return message; + }, +}; + +export type CartServiceService = typeof CartServiceService; +export const CartServiceService = { + addItem: { + path: "/oteldemo.CartService/AddItem", + requestStream: false, + responseStream: false, + requestSerialize: (value: AddItemRequest) => Buffer.from(AddItemRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => AddItemRequest.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + getCart: { + path: "/oteldemo.CartService/GetCart", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetCartRequest) => Buffer.from(GetCartRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetCartRequest.decode(value), + responseSerialize: (value: Cart) => Buffer.from(Cart.encode(value).finish()), + responseDeserialize: (value: Buffer) => Cart.decode(value), + }, + emptyCart: { + path: "/oteldemo.CartService/EmptyCart", + requestStream: false, + responseStream: false, + requestSerialize: (value: EmptyCartRequest) => Buffer.from(EmptyCartRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => EmptyCartRequest.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface CartServiceServer extends UntypedServiceImplementation { + addItem: handleUnaryCall; + getCart: handleUnaryCall; + emptyCart: handleUnaryCall; +} + +export interface CartServiceClient extends Client { + addItem(request: AddItemRequest, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall; + addItem( + request: AddItemRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + addItem( + request: AddItemRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + getCart(request: GetCartRequest, callback: (error: ServiceError | null, response: Cart) => void): ClientUnaryCall; + getCart( + request: GetCartRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Cart) => void, + ): ClientUnaryCall; + getCart( + request: GetCartRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Cart) => void, + ): ClientUnaryCall; + emptyCart( + request: EmptyCartRequest, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + emptyCart( + request: EmptyCartRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + emptyCart( + request: EmptyCartRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; +} + +export const CartServiceClient = makeGenericClientConstructor( + CartServiceService, + "oteldemo.CartService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): CartServiceClient; + service: typeof CartServiceService; + serviceName: string; +}; + +export type RecommendationServiceService = typeof RecommendationServiceService; +export const RecommendationServiceService = { + listRecommendations: { + path: "/oteldemo.RecommendationService/ListRecommendations", + requestStream: false, + responseStream: false, + requestSerialize: (value: ListRecommendationsRequest) => + Buffer.from(ListRecommendationsRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => ListRecommendationsRequest.decode(value), + responseSerialize: (value: ListRecommendationsResponse) => + Buffer.from(ListRecommendationsResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => ListRecommendationsResponse.decode(value), + }, +} as const; + +export interface RecommendationServiceServer extends UntypedServiceImplementation { + listRecommendations: handleUnaryCall; +} + +export interface RecommendationServiceClient extends Client { + listRecommendations( + request: ListRecommendationsRequest, + callback: (error: ServiceError | null, response: ListRecommendationsResponse) => void, + ): ClientUnaryCall; + listRecommendations( + request: ListRecommendationsRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: ListRecommendationsResponse) => void, + ): ClientUnaryCall; + listRecommendations( + request: ListRecommendationsRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: ListRecommendationsResponse) => void, + ): ClientUnaryCall; +} + +export const RecommendationServiceClient = makeGenericClientConstructor( + RecommendationServiceService, + "oteldemo.RecommendationService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): RecommendationServiceClient; + service: typeof RecommendationServiceService; + serviceName: string; +}; + +export type ProductCatalogServiceService = typeof ProductCatalogServiceService; +export const ProductCatalogServiceService = { + listProducts: { + path: "/oteldemo.ProductCatalogService/ListProducts", + requestStream: false, + responseStream: false, + requestSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + requestDeserialize: (value: Buffer) => Empty.decode(value), + responseSerialize: (value: ListProductsResponse) => Buffer.from(ListProductsResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => ListProductsResponse.decode(value), + }, + getProduct: { + path: "/oteldemo.ProductCatalogService/GetProduct", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetProductRequest) => Buffer.from(GetProductRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetProductRequest.decode(value), + responseSerialize: (value: Product) => Buffer.from(Product.encode(value).finish()), + responseDeserialize: (value: Buffer) => Product.decode(value), + }, + searchProducts: { + path: "/oteldemo.ProductCatalogService/SearchProducts", + requestStream: false, + responseStream: false, + requestSerialize: (value: SearchProductsRequest) => Buffer.from(SearchProductsRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => SearchProductsRequest.decode(value), + responseSerialize: (value: SearchProductsResponse) => Buffer.from(SearchProductsResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => SearchProductsResponse.decode(value), + }, +} as const; + +export interface ProductCatalogServiceServer extends UntypedServiceImplementation { + listProducts: handleUnaryCall; + getProduct: handleUnaryCall; + searchProducts: handleUnaryCall; +} + +export interface ProductCatalogServiceClient extends Client { + listProducts( + request: Empty, + callback: (error: ServiceError | null, response: ListProductsResponse) => void, + ): ClientUnaryCall; + listProducts( + request: Empty, + metadata: Metadata, + callback: (error: ServiceError | null, response: ListProductsResponse) => void, + ): ClientUnaryCall; + listProducts( + request: Empty, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: ListProductsResponse) => void, + ): ClientUnaryCall; + getProduct( + request: GetProductRequest, + callback: (error: ServiceError | null, response: Product) => void, + ): ClientUnaryCall; + getProduct( + request: GetProductRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Product) => void, + ): ClientUnaryCall; + getProduct( + request: GetProductRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Product) => void, + ): ClientUnaryCall; + searchProducts( + request: SearchProductsRequest, + callback: (error: ServiceError | null, response: SearchProductsResponse) => void, + ): ClientUnaryCall; + searchProducts( + request: SearchProductsRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: SearchProductsResponse) => void, + ): ClientUnaryCall; + searchProducts( + request: SearchProductsRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: SearchProductsResponse) => void, + ): ClientUnaryCall; +} + +export const ProductCatalogServiceClient = makeGenericClientConstructor( + ProductCatalogServiceService, + "oteldemo.ProductCatalogService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): ProductCatalogServiceClient; + service: typeof ProductCatalogServiceService; + serviceName: string; +}; + +export type ShippingServiceService = typeof ShippingServiceService; +export const ShippingServiceService = { + getQuote: { + path: "/oteldemo.ShippingService/GetQuote", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetQuoteRequest) => Buffer.from(GetQuoteRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetQuoteRequest.decode(value), + responseSerialize: (value: GetQuoteResponse) => Buffer.from(GetQuoteResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => GetQuoteResponse.decode(value), + }, + shipOrder: { + path: "/oteldemo.ShippingService/ShipOrder", + requestStream: false, + responseStream: false, + requestSerialize: (value: ShipOrderRequest) => Buffer.from(ShipOrderRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => ShipOrderRequest.decode(value), + responseSerialize: (value: ShipOrderResponse) => Buffer.from(ShipOrderResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => ShipOrderResponse.decode(value), + }, +} as const; + +export interface ShippingServiceServer extends UntypedServiceImplementation { + getQuote: handleUnaryCall; + shipOrder: handleUnaryCall; +} + +export interface ShippingServiceClient extends Client { + getQuote( + request: GetQuoteRequest, + callback: (error: ServiceError | null, response: GetQuoteResponse) => void, + ): ClientUnaryCall; + getQuote( + request: GetQuoteRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: GetQuoteResponse) => void, + ): ClientUnaryCall; + getQuote( + request: GetQuoteRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: GetQuoteResponse) => void, + ): ClientUnaryCall; + shipOrder( + request: ShipOrderRequest, + callback: (error: ServiceError | null, response: ShipOrderResponse) => void, + ): ClientUnaryCall; + shipOrder( + request: ShipOrderRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: ShipOrderResponse) => void, + ): ClientUnaryCall; + shipOrder( + request: ShipOrderRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: ShipOrderResponse) => void, + ): ClientUnaryCall; +} + +export const ShippingServiceClient = makeGenericClientConstructor( + ShippingServiceService, + "oteldemo.ShippingService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): ShippingServiceClient; + service: typeof ShippingServiceService; + serviceName: string; +}; + +export type CurrencyServiceService = typeof CurrencyServiceService; +export const CurrencyServiceService = { + getSupportedCurrencies: { + path: "/oteldemo.CurrencyService/GetSupportedCurrencies", + requestStream: false, + responseStream: false, + requestSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + requestDeserialize: (value: Buffer) => Empty.decode(value), + responseSerialize: (value: GetSupportedCurrenciesResponse) => + Buffer.from(GetSupportedCurrenciesResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => GetSupportedCurrenciesResponse.decode(value), + }, + convert: { + path: "/oteldemo.CurrencyService/Convert", + requestStream: false, + responseStream: false, + requestSerialize: (value: CurrencyConversionRequest) => + Buffer.from(CurrencyConversionRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => CurrencyConversionRequest.decode(value), + responseSerialize: (value: Money) => Buffer.from(Money.encode(value).finish()), + responseDeserialize: (value: Buffer) => Money.decode(value), + }, +} as const; + +export interface CurrencyServiceServer extends UntypedServiceImplementation { + getSupportedCurrencies: handleUnaryCall; + convert: handleUnaryCall; +} + +export interface CurrencyServiceClient extends Client { + getSupportedCurrencies( + request: Empty, + callback: (error: ServiceError | null, response: GetSupportedCurrenciesResponse) => void, + ): ClientUnaryCall; + getSupportedCurrencies( + request: Empty, + metadata: Metadata, + callback: (error: ServiceError | null, response: GetSupportedCurrenciesResponse) => void, + ): ClientUnaryCall; + getSupportedCurrencies( + request: Empty, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: GetSupportedCurrenciesResponse) => void, + ): ClientUnaryCall; + convert( + request: CurrencyConversionRequest, + callback: (error: ServiceError | null, response: Money) => void, + ): ClientUnaryCall; + convert( + request: CurrencyConversionRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Money) => void, + ): ClientUnaryCall; + convert( + request: CurrencyConversionRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Money) => void, + ): ClientUnaryCall; +} + +export const CurrencyServiceClient = makeGenericClientConstructor( + CurrencyServiceService, + "oteldemo.CurrencyService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): CurrencyServiceClient; + service: typeof CurrencyServiceService; + serviceName: string; +}; + +export type PaymentServiceService = typeof PaymentServiceService; +export const PaymentServiceService = { + charge: { + path: "/oteldemo.PaymentService/Charge", + requestStream: false, + responseStream: false, + requestSerialize: (value: ChargeRequest) => Buffer.from(ChargeRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => ChargeRequest.decode(value), + responseSerialize: (value: ChargeResponse) => Buffer.from(ChargeResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => ChargeResponse.decode(value), + }, +} as const; + +export interface PaymentServiceServer extends UntypedServiceImplementation { + charge: handleUnaryCall; +} + +export interface PaymentServiceClient extends Client { + charge( + request: ChargeRequest, + callback: (error: ServiceError | null, response: ChargeResponse) => void, + ): ClientUnaryCall; + charge( + request: ChargeRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: ChargeResponse) => void, + ): ClientUnaryCall; + charge( + request: ChargeRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: ChargeResponse) => void, + ): ClientUnaryCall; +} + +export const PaymentServiceClient = makeGenericClientConstructor( + PaymentServiceService, + "oteldemo.PaymentService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): PaymentServiceClient; + service: typeof PaymentServiceService; + serviceName: string; +}; + +export type EmailServiceService = typeof EmailServiceService; +export const EmailServiceService = { + sendOrderConfirmation: { + path: "/oteldemo.EmailService/SendOrderConfirmation", + requestStream: false, + responseStream: false, + requestSerialize: (value: SendOrderConfirmationRequest) => + Buffer.from(SendOrderConfirmationRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => SendOrderConfirmationRequest.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface EmailServiceServer extends UntypedServiceImplementation { + sendOrderConfirmation: handleUnaryCall; +} + +export interface EmailServiceClient extends Client { + sendOrderConfirmation( + request: SendOrderConfirmationRequest, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + sendOrderConfirmation( + request: SendOrderConfirmationRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + sendOrderConfirmation( + request: SendOrderConfirmationRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; +} + +export const EmailServiceClient = makeGenericClientConstructor( + EmailServiceService, + "oteldemo.EmailService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): EmailServiceClient; + service: typeof EmailServiceService; + serviceName: string; +}; + +export type CheckoutServiceService = typeof CheckoutServiceService; +export const CheckoutServiceService = { + placeOrder: { + path: "/oteldemo.CheckoutService/PlaceOrder", + requestStream: false, + responseStream: false, + requestSerialize: (value: PlaceOrderRequest) => Buffer.from(PlaceOrderRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => PlaceOrderRequest.decode(value), + responseSerialize: (value: PlaceOrderResponse) => Buffer.from(PlaceOrderResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => PlaceOrderResponse.decode(value), + }, +} as const; + +export interface CheckoutServiceServer extends UntypedServiceImplementation { + placeOrder: handleUnaryCall; +} + +export interface CheckoutServiceClient extends Client { + placeOrder( + request: PlaceOrderRequest, + callback: (error: ServiceError | null, response: PlaceOrderResponse) => void, + ): ClientUnaryCall; + placeOrder( + request: PlaceOrderRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: PlaceOrderResponse) => void, + ): ClientUnaryCall; + placeOrder( + request: PlaceOrderRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: PlaceOrderResponse) => void, + ): ClientUnaryCall; +} + +export const CheckoutServiceClient = makeGenericClientConstructor( + CheckoutServiceService, + "oteldemo.CheckoutService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): CheckoutServiceClient; + service: typeof CheckoutServiceService; + serviceName: string; +}; + +export type AdServiceService = typeof AdServiceService; +export const AdServiceService = { + getAds: { + path: "/oteldemo.AdService/GetAds", + requestStream: false, + responseStream: false, + requestSerialize: (value: AdRequest) => Buffer.from(AdRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => AdRequest.decode(value), + responseSerialize: (value: AdResponse) => Buffer.from(AdResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => AdResponse.decode(value), + }, +} as const; + +export interface AdServiceServer extends UntypedServiceImplementation { + getAds: handleUnaryCall; +} + +export interface AdServiceClient extends Client { + getAds(request: AdRequest, callback: (error: ServiceError | null, response: AdResponse) => void): ClientUnaryCall; + getAds( + request: AdRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: AdResponse) => void, + ): ClientUnaryCall; + getAds( + request: AdRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: AdResponse) => void, + ): ClientUnaryCall; +} + +export const AdServiceClient = makeGenericClientConstructor(AdServiceService, "oteldemo.AdService") as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): AdServiceClient; + service: typeof AdServiceService; + serviceName: string; +}; + +export type FeatureFlagServiceService = typeof FeatureFlagServiceService; +export const FeatureFlagServiceService = { + getFlag: { + path: "/oteldemo.FeatureFlagService/GetFlag", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetFlagRequest) => Buffer.from(GetFlagRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetFlagRequest.decode(value), + responseSerialize: (value: GetFlagResponse) => Buffer.from(GetFlagResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => GetFlagResponse.decode(value), + }, + createFlag: { + path: "/oteldemo.FeatureFlagService/CreateFlag", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreateFlagRequest) => Buffer.from(CreateFlagRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreateFlagRequest.decode(value), + responseSerialize: (value: CreateFlagResponse) => Buffer.from(CreateFlagResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateFlagResponse.decode(value), + }, + updateFlag: { + path: "/oteldemo.FeatureFlagService/UpdateFlag", + requestStream: false, + responseStream: false, + requestSerialize: (value: UpdateFlagRequest) => Buffer.from(UpdateFlagRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => UpdateFlagRequest.decode(value), + responseSerialize: (value: UpdateFlagResponse) => Buffer.from(UpdateFlagResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => UpdateFlagResponse.decode(value), + }, + listFlags: { + path: "/oteldemo.FeatureFlagService/ListFlags", + requestStream: false, + responseStream: false, + requestSerialize: (value: ListFlagsRequest) => Buffer.from(ListFlagsRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => ListFlagsRequest.decode(value), + responseSerialize: (value: ListFlagsResponse) => Buffer.from(ListFlagsResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => ListFlagsResponse.decode(value), + }, + deleteFlag: { + path: "/oteldemo.FeatureFlagService/DeleteFlag", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeleteFlagRequest) => Buffer.from(DeleteFlagRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeleteFlagRequest.decode(value), + responseSerialize: (value: DeleteFlagResponse) => Buffer.from(DeleteFlagResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => DeleteFlagResponse.decode(value), + }, +} as const; + +export interface FeatureFlagServiceServer extends UntypedServiceImplementation { + getFlag: handleUnaryCall; + createFlag: handleUnaryCall; + updateFlag: handleUnaryCall; + listFlags: handleUnaryCall; + deleteFlag: handleUnaryCall; +} + +export interface FeatureFlagServiceClient extends Client { + getFlag( + request: GetFlagRequest, + callback: (error: ServiceError | null, response: GetFlagResponse) => void, + ): ClientUnaryCall; + getFlag( + request: GetFlagRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: GetFlagResponse) => void, + ): ClientUnaryCall; + getFlag( + request: GetFlagRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: GetFlagResponse) => void, + ): ClientUnaryCall; + createFlag( + request: CreateFlagRequest, + callback: (error: ServiceError | null, response: CreateFlagResponse) => void, + ): ClientUnaryCall; + createFlag( + request: CreateFlagRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: CreateFlagResponse) => void, + ): ClientUnaryCall; + createFlag( + request: CreateFlagRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: CreateFlagResponse) => void, + ): ClientUnaryCall; + updateFlag( + request: UpdateFlagRequest, + callback: (error: ServiceError | null, response: UpdateFlagResponse) => void, + ): ClientUnaryCall; + updateFlag( + request: UpdateFlagRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: UpdateFlagResponse) => void, + ): ClientUnaryCall; + updateFlag( + request: UpdateFlagRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: UpdateFlagResponse) => void, + ): ClientUnaryCall; + listFlags( + request: ListFlagsRequest, + callback: (error: ServiceError | null, response: ListFlagsResponse) => void, + ): ClientUnaryCall; + listFlags( + request: ListFlagsRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: ListFlagsResponse) => void, + ): ClientUnaryCall; + listFlags( + request: ListFlagsRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: ListFlagsResponse) => void, + ): ClientUnaryCall; + deleteFlag( + request: DeleteFlagRequest, + callback: (error: ServiceError | null, response: DeleteFlagResponse) => void, + ): ClientUnaryCall; + deleteFlag( + request: DeleteFlagRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: DeleteFlagResponse) => void, + ): ClientUnaryCall; + deleteFlag( + request: DeleteFlagRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: DeleteFlagResponse) => void, + ): ClientUnaryCall; +} + +export const FeatureFlagServiceClient = makeGenericClientConstructor( + FeatureFlagServiceService, + "oteldemo.FeatureFlagService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): FeatureFlagServiceClient; + service: typeof FeatureFlagServiceService; + serviceName: string; +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; + +export type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; +export type Exact = P extends Builtin ? P + : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; + +function longToNumber(long: Long): number { + if (long.gt(globalThis.Number.MAX_SAFE_INTEGER)) { + throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER"); + } + if (long.lt(globalThis.Number.MIN_SAFE_INTEGER)) { + throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER"); + } + return long.toNumber(); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/src/react-native-app/providers/Cart.provider.tsx b/src/react-native-app/providers/Cart.provider.tsx new file mode 100644 index 0000000000..d7212fb165 --- /dev/null +++ b/src/react-native-app/providers/Cart.provider.tsx @@ -0,0 +1,82 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Copied with modification from src/frontend/providers/Cart.provider.tsx + */ +import React, { createContext, useCallback, useContext, useMemo } from "react"; +import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import ApiGateway from "@/gateways/Api.gateway"; +import { CartItem, OrderResult, PlaceOrderRequest } from "@/protos/demo"; +import { IProductCart } from "@/types/Cart"; + +interface IContext { + cart: IProductCart; + addItem(item: CartItem): void; + emptyCart(): void; + placeOrder(order: PlaceOrderRequest): Promise; +} + +export const Context = createContext({ + cart: { userId: "", items: [] }, + addItem: () => {}, + emptyCart: () => {}, + placeOrder: () => Promise.resolve({} as OrderResult), +}); + +interface IProps { + children: React.ReactNode; +} + +export const useCart = () => useContext(Context); + +const CartProvider = ({ children }: IProps) => { + // TODO simplify react native demo for now by hard-coding the selected currency + const selectedCurrency = "USD"; + const queryClient = useQueryClient(); + const mutationOptions = useMemo( + () => ({ + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: ["cart"] }); + }, + }), + [queryClient], + ); + + const { data: cart = { userId: "", items: [] } } = useQuery( + ["cart", selectedCurrency], + () => ApiGateway.getCart(selectedCurrency), + ); + const addCartMutation = useMutation(ApiGateway.addCartItem, mutationOptions); + const emptyCartMutation = useMutation(ApiGateway.emptyCart, mutationOptions); + const placeOrderMutation = useMutation( + ApiGateway.placeOrder, + mutationOptions, + ); + + const addItem = useCallback( + (item: CartItem) => + addCartMutation.mutateAsync({ ...item, currencyCode: selectedCurrency }), + [addCartMutation, selectedCurrency], + ); + const emptyCart = useCallback( + () => emptyCartMutation.mutateAsync(), + [emptyCartMutation], + ); + const placeOrder = useCallback( + (order: PlaceOrderRequest) => + placeOrderMutation.mutateAsync({ + ...order, + currencyCode: selectedCurrency, + }), + [placeOrderMutation, selectedCurrency], + ); + + const value = useMemo( + () => ({ cart, addItem, emptyCart, placeOrder }), + [cart, addItem, emptyCart, placeOrder], + ); + + return {children}; +}; + +export default CartProvider; diff --git a/src/react-native-app/tsconfig.json b/src/react-native-app/tsconfig.json new file mode 100644 index 0000000000..909e901086 --- /dev/null +++ b/src/react-native-app/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "expo/tsconfig.base", + "compilerOptions": { + "strict": true, + "paths": { + "@/*": [ + "./*" + ] + } + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ".expo/types/**/*.ts", + "expo-env.d.ts" + ] +} diff --git a/src/react-native-app/types/Cart.ts b/src/react-native-app/types/Cart.ts new file mode 100644 index 0000000000..8baeacc467 --- /dev/null +++ b/src/react-native-app/types/Cart.ts @@ -0,0 +1,25 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Copied with modification from src/frontend/types/Cart.ts + */ +import { Address, Cart, OrderItem, OrderResult, Product } from "@/protos/demo"; + +export interface IProductCartItem { + productId: string; + quantity: number; + product: Product; +} + +export interface IProductCheckoutItem extends OrderItem { + item: IProductCartItem; +} + +export interface IProductCheckout extends OrderResult { + items: IProductCheckoutItem[]; + shippingAddress: Address; +} + +export interface IProductCart extends Cart { + items: IProductCartItem[]; +} diff --git a/src/react-native-app/utils/Localhost.ts b/src/react-native-app/utils/Localhost.ts new file mode 100644 index 0000000000..8b3eaef178 --- /dev/null +++ b/src/react-native-app/utils/Localhost.ts @@ -0,0 +1,14 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +import DeviceInfo from "react-native-device-info"; +import { Platform } from "react-native"; + +const getLocalhost = async (): Promise => { + const isEmulator = await DeviceInfo.isEmulator(); + + // The Android emulator has a special loopback for localhost + // https://developer.android.com/studio/run/emulator-networking#networkaddresses + return Platform.OS === "android" && isEmulator ? "10.0.2.2" : "localhost"; +}; + +export default getLocalhost; diff --git a/src/react-native-app/utils/Request.ts b/src/react-native-app/utils/Request.ts new file mode 100644 index 0000000000..3f22faa272 --- /dev/null +++ b/src/react-native-app/utils/Request.ts @@ -0,0 +1,42 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Copied with modification from src/frontend/utils/Request.ts + */ +import getLocalhost from "@/utils/Localhost"; + +interface IRequestParams { + url: string; + body?: object; + method?: "GET" | "POST" | "PUT" | "DELETE"; + queryParams?: Record; + headers?: Record; +} + +const request = async ({ + url = "", + method = "GET", + body, + queryParams = {}, + headers = { + "content-type": "application/json", + }, +}: IRequestParams): Promise => { + const localhost = await getLocalhost(); + const API_URL = `http://${localhost}:${process.env.EXPO_PUBLIC_FRONTEND_PROXY_PORT}`; + const requestURL = `${API_URL}${url}?${new URLSearchParams(queryParams).toString()}`; + const requestBody = body ? JSON.stringify(body) : undefined; + const response = await fetch(requestURL, { + method, + body: requestBody, + headers, + }); + + const responseText = await response.text(); + + if (!!responseText) return JSON.parse(responseText); + + return undefined as unknown as T; +}; + +export default request; diff --git a/src/react-native-app/utils/SessionIdProcessor.ts b/src/react-native-app/utils/SessionIdProcessor.ts new file mode 100644 index 0000000000..217ff42fa2 --- /dev/null +++ b/src/react-native-app/utils/SessionIdProcessor.ts @@ -0,0 +1,32 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 +/** + * Copied with modification from src/frontend/utils/telemetry/SessionIdProcessor.ts + */ +import { Context } from "@opentelemetry/api"; +import { + ReadableSpan, + Span, + SpanProcessor, +} from "@opentelemetry/sdk-trace-web"; +import SessionGateway from "@/gateways/Session.gateway"; + +export class SessionIdProcessor implements SpanProcessor { + forceFlush(): Promise { + return Promise.resolve(); + } + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + onStart(span: Span, parentContext: Context): void { + SessionGateway.getSession().then(({ userId }) => { + span.setAttribute("session.id", userId); + }); + } + + // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function + onEnd(span: ReadableSpan): void {} + + shutdown(): Promise { + return Promise.resolve(); + } +} From d2caef6694e4909f28f4fccf42d92f1332833772 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Sat, 21 Dec 2024 06:10:12 -0500 Subject: [PATCH 043/178] [chore] - update demo dependencies (#1855) --- .env | 16 ++++++++-------- CHANGELOG.md | 2 ++ docker-compose.minimal.yml | 2 +- docker-compose.yml | 2 +- src/prometheus/prometheus-config.yaml | 25 +++++++++++++++++++------ 5 files changed, 31 insertions(+), 16 deletions(-) diff --git a/.env b/.env index f55b2216d8..8dfa5e35ce 100644 --- a/.env +++ b/.env @@ -7,18 +7,18 @@ DEMO_VERSION=latest # Build Args TRACETEST_IMAGE_VERSION=v1.7.1 -OTEL_JAVA_AGENT_VERSION=2.9.0 -OPENTELEMETRY_CPP_VERSION=1.17.0 +OTEL_JAVA_AGENT_VERSION=2.10.0 +OPENTELEMETRY_CPP_VERSION=1.18.0 # Dependent images -COLLECTOR_CONTRIB_IMAGE=otel/opentelemetry-collector-contrib:0.113.0 -FLAGD_IMAGE=ghcr.io/open-feature/flagd:v0.11.4 -GRAFANA_IMAGE=grafana/grafana:11.3.0 -JAEGERTRACING_IMAGE=jaegertracing/all-in-one:1.62.0 +COLLECTOR_CONTRIB_IMAGE=ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.116.1 +FLAGD_IMAGE=ghcr.io/open-feature/flagd:v0.11.5 +GRAFANA_IMAGE=grafana/grafana:11.4.0 +JAEGERTRACING_IMAGE=jaegertracing/all-in-one:1.64.0 # must also update version field in src/grafana/provisioning/datasources/opensearch.yaml OPENSEARCH_IMAGE=opensearchproject/opensearch:2.18.0 -POSTGRES_IMAGE=postgres:17.0 -PROMETHEUS_IMAGE=quay.io/prometheus/prometheus:v2.55.1 +POSTGRES_IMAGE=postgres:17.2 +PROMETHEUS_IMAGE=quay.io/prometheus/prometheus:v3.0.1 VALKEY_IMAGE=valkey/valkey:8.0-alpine TRACETEST_IMAGE=kubeshop/tracetest:${TRACETEST_IMAGE_VERSION} diff --git a/CHANGELOG.md b/CHANGELOG.md index fb2d647ffc..d294214c67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,6 +48,8 @@ the release. ([#1842](https://github.com/open-telemetry/opentelemetry-demo/pull/1842)) * [react-native-app] Add React Native example app ([#1781](https://github.com/open-telemetry/opentelemetry-demo/pull/1781)) +* [chore] Update demo Dependencies (Collector, Grafana, FlagD, Jaeger, Prometheus) + ([#1855](https://github.com/open-telemetry/opentelemetry-demo/pull/1855)) ## 1.12.0 diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 01ef2d74f6..44f40f1a65 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -624,8 +624,8 @@ services: - --storage.tsdb.path=/prometheus - --web.enable-lifecycle - --web.route-prefix=/ + - --web.enable-otlp-receiver - --enable-feature=exemplar-storage - - --enable-feature=otlp-write-receiver volumes: - ./src/prometheus/prometheus-config.yaml:/etc/prometheus/prometheus-config.yaml deploy: diff --git a/docker-compose.yml b/docker-compose.yml index 1c6614936c..b79744eadf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -768,8 +768,8 @@ services: - --storage.tsdb.path=/prometheus - --web.enable-lifecycle - --web.route-prefix=/ + - --web.enable-otlp-receiver - --enable-feature=exemplar-storage - - --enable-feature=otlp-write-receiver volumes: - ./src/prometheus/prometheus-config.yaml:/etc/prometheus/prometheus-config.yaml deploy: diff --git a/src/prometheus/prometheus-config.yaml b/src/prometheus/prometheus-config.yaml index ecc0d1090c..736212af42 100644 --- a/src/prometheus/prometheus-config.yaml +++ b/src/prometheus/prometheus-config.yaml @@ -2,13 +2,26 @@ # SPDX-License-Identifier: Apache-2.0 global: - evaluation_interval: 30s scrape_interval: 5s + scrape_timeout: 3s + evaluation_interval: 30s + +otlp: + promote_resource_attributes: + - service.instance.id + - service.name + - service.namespace + - cloud.availability_zone + - cloud.region + - container.name + - deployment.environment.name + +scrape_configs: + - job_name: otel-collector + static_configs: + - targets: + - 'otel-collector:8888' + storage: tsdb: out_of_order_time_window: 30m -scrape_configs: -- job_name: otel-collector - static_configs: - - targets: - - 'otel-collector:8888' From d75a68d2142fa2a33603c4c398f90d4c2eb3e048 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Sun, 22 Dec 2024 07:07:56 -0500 Subject: [PATCH 044/178] [load-generator] rename loadgenerator to load-generator (#1856) * rename loadgenerator to load-generator * rename loadgenerator to load-generator --------- Co-authored-by: Juliano Costa --- .env | 4 ++-- .github/workflows/component-build-images.yml | 4 ++-- CHANGELOG.md | 14 ++++++++------ docker-compose.minimal.yml | 10 +++++----- docker-compose.yml | 10 +++++----- renovate.json5 | 4 ++-- src/flagd/demo.flagd.json | 2 +- src/{loadgenerator => load-generator}/Dockerfile | 6 +++--- src/{loadgenerator => load-generator}/README.md | 0 .../locustfile.py | 4 ++-- src/{loadgenerator => load-generator}/people.json | 0 .../requirements.txt | 0 12 files changed, 30 insertions(+), 28 deletions(-) rename src/{loadgenerator => load-generator}/Dockerfile (80%) rename src/{loadgenerator => load-generator}/README.md (100%) rename src/{loadgenerator => load-generator}/locustfile.py (98%) rename src/{loadgenerator => load-generator}/people.json (100%) rename src/{loadgenerator => load-generator}/requirements.txt (100%) diff --git a/.env b/.env index 8dfa5e35ce..c906d51b7c 100644 --- a/.env +++ b/.env @@ -96,10 +96,10 @@ IMAGE_PROVIDER_DOCKERFILE=./src/imageprovider/Dockerfile LOCUST_WEB_PORT=8089 LOCUST_USERS=5 LOCUST_HOST=http://${FRONTEND_PROXY_ADDR} -LOCUST_WEB_HOST=loadgenerator +LOCUST_WEB_HOST=load-generator LOCUST_AUTOSTART=true LOCUST_HEADLESS=false -LOAD_GENERATOR_DOCKERFILE=./src/loadgenerator/Dockerfile +LOAD_GENERATOR_DOCKERFILE=./src/load-generator/Dockerfile # Payment Service PAYMENT_SERVICE_PORT=50051 diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index a36b8fbbac..3681a71eea 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -99,8 +99,8 @@ jobs: tag_suffix: kafka context: ./ setup-qemu: true - - file: ./src/loadgenerator/Dockerfile - tag_suffix: loadgenerator + - file: ./src/load-generator/Dockerfile + tag_suffix: load-generator context: ./ setup-qemu: true - file: ./src/paymentservice/Dockerfile diff --git a/CHANGELOG.md b/CHANGELOG.md index d294214c67..394d549146 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,10 +17,12 @@ the release. ([#1779](https://github.com/open-telemetry/opentelemetry-demo/pull/1779)) * [accountingservice] bump OpenTelemetry .NET Automatic Instrumentation to 1.9.0 ([#1780](https://github.com/open-telemetry/opentelemetry-demo/pull/1780)) -* [chore] update memory limits for flagd, flagdui, and loadgenerator - ([#1786](https://github.com/open-telemetry/opentelemetry-demo/pull/1786)) +* [react-native-app] Add React Native example app + ([#1781](https://github.com/open-telemetry/opentelemetry-demo/pull/1781)) * [chore] Add multi-platform build support ([#1785](https://github.com/open-telemetry/opentelemetry-demo/pull/1785)) +* [chore] update memory limits for flagd, flagdui, and loadgenerator + ([#1786](https://github.com/open-telemetry/opentelemetry-demo/pull/1786)) * [chore] Generate protobuf code for Go and Python services ([#1794](https://github.com/open-telemetry/opentelemetry-demo/pull/1784)) * [paymentservice] Add nodejs instrumentation for runtime metrics @@ -38,18 +40,18 @@ the release. ([#1836](https://github.com/open-telemetry/opentelemetry-demo/pull/1836)) * [quote] rename quoteservice to quote ([#1838](https://github.com/open-telemetry/opentelemetry-demo/pull/1838)) +* [cart] rename cartservice to cart + ([#1839](https://github.com/open-telemetry/opentelemetry-demo/pull/1839)) * [flagd-ui] rename flagdui to flagd-ui ([#1840](https://github.com/open-telemetry/opentelemetry-demo/pull/1840)) * [otel-collector] rename otelcol to otel-collector ([#1841](https://github.com/open-telemetry/opentelemetry-demo/pull/1841)) -* [cart] rename cartservice to cart - ([#1839](https://github.com/open-telemetry/opentelemetry-demo/pull/1839)) * [shipping] rename shippingservice to shipping ([#1842](https://github.com/open-telemetry/opentelemetry-demo/pull/1842)) -* [react-native-app] Add React Native example app - ([#1781](https://github.com/open-telemetry/opentelemetry-demo/pull/1781)) * [chore] Update demo Dependencies (Collector, Grafana, FlagD, Jaeger, Prometheus) ([#1855](https://github.com/open-telemetry/opentelemetry-demo/pull/1855)) +* [load-generator] rename loadgenerator to load-generator + ([#1856](https://github.com/open-telemetry/opentelemetry-demo/pull/1856)) ## 1.12.0 diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 44f40f1a65..168fbf6c53 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -278,7 +278,7 @@ services: depends_on: frontend: condition: service_started - loadgenerator: + load-generator: condition: service_started jaeger: condition: service_started @@ -313,14 +313,14 @@ services: logging: *logging # Load Generator - loadgenerator: - image: ${IMAGE_NAME}:${DEMO_VERSION}-loadgenerator + load-generator: + image: ${IMAGE_NAME}:${DEMO_VERSION}-load-generator container_name: load-generator build: context: ./ dockerfile: ${LOAD_GENERATOR_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-loadgenerator + - ${IMAGE_NAME}:${IMAGE_VERSION}-load-generator deploy: resources: limits: @@ -338,7 +338,7 @@ services: - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=loadgenerator + - OTEL_SERVICE_NAME=load-generator - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python - LOCUST_WEB_HOST=0.0.0.0 - FLAGD_HOST diff --git a/docker-compose.yml b/docker-compose.yml index b79744eadf..c46cc86e4a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -352,7 +352,7 @@ services: depends_on: frontend: condition: service_started - loadgenerator: + load-generator: condition: service_started jaeger: condition: service_started @@ -389,14 +389,14 @@ services: logging: *logging # Load Generator - loadgenerator: - image: ${IMAGE_NAME}:${DEMO_VERSION}-loadgenerator + load-generator: + image: ${IMAGE_NAME}:${DEMO_VERSION}-load-generator container_name: load-generator build: context: ./ dockerfile: ${LOAD_GENERATOR_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-loadgenerator + - ${IMAGE_NAME}:${IMAGE_VERSION}-load-generator deploy: resources: limits: @@ -414,7 +414,7 @@ services: - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=loadgenerator + - OTEL_SERVICE_NAME=load-generator - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python - LOCUST_WEB_HOST=0.0.0.0 - FLAGD_HOST diff --git a/renovate.json5 b/renovate.json5 index e261118a44..09e30fd03e 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -63,8 +63,8 @@ "groupName": "kafka", }, { - "matchFileNames": ["src/loadgenerator/**"], - "groupName": "loadgenerator", + "matchFileNames": ["src/load-generator/**"], + "groupName": "load-generator", }, { "matchFileNames": ["src/otel-collector/**"], diff --git a/src/flagd/demo.flagd.json b/src/flagd/demo.flagd.json index 452e334418..74fb5fcf1d 100644 --- a/src/flagd/demo.flagd.json +++ b/src/flagd/demo.flagd.json @@ -87,7 +87,7 @@ }, "defaultVariant": "off" }, - "loadgeneratorFloodHomepage": { + "loadGeneratorFloodHomepage": { "description": "Flood the frontend with a large amount of requests.", "state": "ENABLED", "variants": { diff --git a/src/loadgenerator/Dockerfile b/src/load-generator/Dockerfile similarity index 80% rename from src/loadgenerator/Dockerfile rename to src/load-generator/Dockerfile index 92d09977b8..5a7ff9fa70 100644 --- a/src/loadgenerator/Dockerfile +++ b/src/load-generator/Dockerfile @@ -9,14 +9,14 @@ RUN apt-get -qq update \ && apt-get install -y --no-install-recommends g++ \ && rm -rf /var/lib/apt/lists/* -COPY ./src/loadgenerator/requirements.txt . +COPY ./src/load-generator/requirements.txt . RUN pip install --prefix="/reqs" -r requirements.txt FROM base WORKDIR /usr/src/app/ COPY --from=builder /reqs /usr/local -COPY ./src/loadgenerator/locustfile.py . -COPY ./src/loadgenerator/people.json . +COPY ./src/load-generator/locustfile.py . +COPY ./src/load-generator/people.json . ENV LOCUST_PLAYWRIGHT=1 ENV PLAYWRIGHT_BROWSERS_PATH=/opt/pw-browsers RUN playwright install --with-deps chromium diff --git a/src/loadgenerator/README.md b/src/load-generator/README.md similarity index 100% rename from src/loadgenerator/README.md rename to src/load-generator/README.md diff --git a/src/loadgenerator/locustfile.py b/src/load-generator/locustfile.py similarity index 98% rename from src/loadgenerator/locustfile.py rename to src/load-generator/locustfile.py index 64abe8f8c2..387ae5d152 100644 --- a/src/loadgenerator/locustfile.py +++ b/src/load-generator/locustfile.py @@ -41,7 +41,7 @@ logger_provider = LoggerProvider(resource=Resource.create( { - "service.name": "loadgenerator", + "service.name": "load-generator", } ),) set_logger_provider(logger_provider) @@ -168,7 +168,7 @@ def checkout_multi(self): @task(5) def flood_home(self): - for _ in range(0, get_flagd_value("loadgeneratorFloodHomepage")): + for _ in range(0, get_flagd_value("loadGeneratorFloodHomepage")): self.client.get("/") def on_start(self): diff --git a/src/loadgenerator/people.json b/src/load-generator/people.json similarity index 100% rename from src/loadgenerator/people.json rename to src/load-generator/people.json diff --git a/src/loadgenerator/requirements.txt b/src/load-generator/requirements.txt similarity index 100% rename from src/loadgenerator/requirements.txt rename to src/load-generator/requirements.txt From d5c0efecec0de0e3dc2827e88b6082a9652883a3 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Sun, 22 Dec 2024 07:18:09 -0500 Subject: [PATCH 045/178] [image-provider] rename imageprovider to image-provider (#1857) * rename imageprovider to image-provider * rename imageprovider to image-provider --------- Co-authored-by: Juliano Costa --- .env | 4 ++-- .github/workflows/component-build-images.yml | 4 ++-- CHANGELOG.md | 2 ++ docker-compose.minimal.yml | 14 +++++++------- docker-compose.yml | 14 +++++++------- src/frontend/utils/imageLoader.js | 4 ++-- src/frontendproxy/envoy.tmpl.yaml | 6 +++--- src/{imageprovider => image-provider}/Dockerfile | 4 ++-- .../nginx.conf.template | 2 +- .../static/Banner.png | Bin .../static/opentelemetry-demo-logo.png | Bin .../EclipsmartTravelRefractorTelescope.jpg | Bin .../static/products/LensCleaningKit.jpg | Bin .../NationalParkFoundationExplorascope.jpg | Bin .../static/products/OpticalTubeAssembly.jpg | Bin .../static/products/RedFlashlight.jpg | Bin .../static/products/RoofBinoculars.jpg | Bin .../static/products/SolarFilter.jpg | Bin .../static/products/SolarSystemColorImager.jpg | Bin .../static/products/StarsenseExplorer.jpg | Bin .../static/products/TheCometBook.jpg | Bin 21 files changed, 28 insertions(+), 26 deletions(-) rename src/{imageprovider => image-provider}/Dockerfile (89%) rename src/{imageprovider => image-provider}/nginx.conf.template (94%) rename src/{imageprovider => image-provider}/static/Banner.png (100%) rename src/{imageprovider => image-provider}/static/opentelemetry-demo-logo.png (100%) rename src/{imageprovider => image-provider}/static/products/EclipsmartTravelRefractorTelescope.jpg (100%) rename src/{imageprovider => image-provider}/static/products/LensCleaningKit.jpg (100%) rename src/{imageprovider => image-provider}/static/products/NationalParkFoundationExplorascope.jpg (100%) rename src/{imageprovider => image-provider}/static/products/OpticalTubeAssembly.jpg (100%) rename src/{imageprovider => image-provider}/static/products/RedFlashlight.jpg (100%) rename src/{imageprovider => image-provider}/static/products/RoofBinoculars.jpg (100%) rename src/{imageprovider => image-provider}/static/products/SolarFilter.jpg (100%) rename src/{imageprovider => image-provider}/static/products/SolarSystemColorImager.jpg (100%) rename src/{imageprovider => image-provider}/static/products/StarsenseExplorer.jpg (100%) rename src/{imageprovider => image-provider}/static/products/TheCometBook.jpg (100%) diff --git a/.env b/.env index c906d51b7c..5ca58172e7 100644 --- a/.env +++ b/.env @@ -88,9 +88,9 @@ FRONTEND_PROXY_ADDR=frontend-proxy:${ENVOY_PORT} FRONTEND_PROXY_DOCKERFILE=./src/frontendproxy/Dockerfile # Image Provider -IMAGE_PROVIDER_HOST=imageprovider +IMAGE_PROVIDER_HOST=image-provider IMAGE_PROVIDER_PORT=8081 -IMAGE_PROVIDER_DOCKERFILE=./src/imageprovider/Dockerfile +IMAGE_PROVIDER_DOCKERFILE=./src/image-provider/Dockerfile # Load Generator LOCUST_WEB_PORT=8089 diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 3681a71eea..e0cbb1a9f5 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -91,8 +91,8 @@ jobs: tag_suffix: frontend-tests context: ./ setup-qemu: true - - file: ./src/imageprovider/Dockerfile - tag_suffix: imageprovider + - file: ./src/image-provider/Dockerfile + tag_suffix: image-provider context: ./ setup-qemu: true - file: ./src/kafka/Dockerfile diff --git a/CHANGELOG.md b/CHANGELOG.md index 394d549146..2220bf9197 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,6 +52,8 @@ the release. ([#1855](https://github.com/open-telemetry/opentelemetry-demo/pull/1855)) * [load-generator] rename loadgenerator to load-generator ([#1856](https://github.com/open-telemetry/opentelemetry-demo/pull/1856)) +* [image-provider] rename imageprovider to image-provider + ([#1857](https://github.com/open-telemetry/opentelemetry-demo/pull/1857)) ## 1.12.0 diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 168fbf6c53..663de96c17 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -235,7 +235,7 @@ services: condition: service_started otel-collector: condition: service_started - imageprovider: + image-provider: condition: service_started logging: *logging @@ -285,15 +285,15 @@ services: grafana: condition: service_started - # Imageprovider - imageprovider: - image: ${IMAGE_NAME}:${DEMO_VERSION}-imageprovider - container_name: imageprovider + # image-provider + image-provider: + image: ${IMAGE_NAME}:${DEMO_VERSION}-image-provider + container_name: image-provider build: context: ./ dockerfile: ${IMAGE_PROVIDER_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-imageprovider + - ${IMAGE_NAME}:${IMAGE_VERSION}-image-provider deploy: resources: limits: @@ -305,7 +305,7 @@ services: - IMAGE_PROVIDER_PORT - OTEL_COLLECTOR_HOST - OTEL_COLLECTOR_PORT_GRPC - - OTEL_SERVICE_NAME=imageprovider + - OTEL_SERVICE_NAME=image-provider - OTEL_RESOURCE_ATTRIBUTES depends_on: otel-collector: diff --git a/docker-compose.yml b/docker-compose.yml index c46cc86e4a..1b40749026 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -307,7 +307,7 @@ services: condition: service_started otel-collector: condition: service_started - imageprovider: + image-provider: condition: service_started flagd: condition: service_started @@ -361,15 +361,15 @@ services: flagd-ui: condition: service_started - # Imageprovider - imageprovider: - image: ${IMAGE_NAME}:${DEMO_VERSION}-imageprovider - container_name: imageprovider + # image-provider + image-provider: + image: ${IMAGE_NAME}:${DEMO_VERSION}-image-provider + container_name: image-provider build: context: ./ dockerfile: ${IMAGE_PROVIDER_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-imageprovider + - ${IMAGE_NAME}:${IMAGE_VERSION}-image-provider deploy: resources: limits: @@ -381,7 +381,7 @@ services: - IMAGE_PROVIDER_PORT - OTEL_COLLECTOR_HOST - OTEL_COLLECTOR_PORT_GRPC - - OTEL_SERVICE_NAME=imageprovider + - OTEL_SERVICE_NAME=image-provider - OTEL_RESOURCE_ATTRIBUTES depends_on: otel-collector: diff --git a/src/frontend/utils/imageLoader.js b/src/frontend/utils/imageLoader.js index c6d2bf0f51..3718b0a667 100644 --- a/src/frontend/utils/imageLoader.js +++ b/src/frontend/utils/imageLoader.js @@ -1,7 +1,7 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 /* - * We connect to imageprovider through the envoy proxy, straight from the browser, for this we need to know the current hostname and port. + * We connect to image-provider through the envoy proxy, straight from the browser, for this we need to know the current hostname and port. * During building and serverside rendering, these are undefined so we use some conditionals and default values. */ let hostname = "localhost"; @@ -15,6 +15,6 @@ if (typeof window !== "undefined" && window.location) { } export default function imageLoader({ src, width, quality }) { - // We pass down the optimisation request to the imageprovider service here, without this, nextJs would try to use internal optimiser which is not working with the external imageprovider. + // We pass down the optimisation request to the image-provider service here, without this, nextJs would try to use internal optimiser which is not working with the external image-provider. return `${protocol}://${hostname}:${port}/${src}?w=${width}&q=${quality || 75}` } diff --git a/src/frontendproxy/envoy.tmpl.yaml b/src/frontendproxy/envoy.tmpl.yaml index 9666396818..dbb539fc68 100644 --- a/src/frontendproxy/envoy.tmpl.yaml +++ b/src/frontendproxy/envoy.tmpl.yaml @@ -46,7 +46,7 @@ static_resources: - match: { prefix: "/grafana" } route: { cluster: grafana } - match: { prefix: "/images/" } - route: { cluster: imageprovider, prefix_rewrite: "/" } + route: { cluster: image-provider, prefix_rewrite: "/" } - match: { prefix: "/flagservice/" } route: { cluster: flagservice, prefix_rewrite: "/", timeout: 0s } - match: { prefix: "/feature" } @@ -200,11 +200,11 @@ static_resources: socket_address: address: ${FRONTEND_HOST} port_value: ${FRONTEND_PORT} - - name: imageprovider + - name: image-provider type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: - cluster_name: imageprovider + cluster_name: image-provider endpoints: - lb_endpoints: - endpoint: diff --git a/src/imageprovider/Dockerfile b/src/image-provider/Dockerfile similarity index 89% rename from src/imageprovider/Dockerfile rename to src/image-provider/Dockerfile index 914a0ba6c5..6d6cd15185 100644 --- a/src/imageprovider/Dockerfile +++ b/src/image-provider/Dockerfile @@ -11,13 +11,13 @@ RUN echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://n RUN apt-get update ; apt-get install nginx-module-otel --no-install-recommends --no-install-suggests -y RUN mkdir /static -COPY src/imageprovider/static /static +COPY src/image-provider/static /static EXPOSE ${IMAGE_PROVIDER_PORT} STOPSIGNAL SIGQUIT -COPY src/imageprovider/nginx.conf.template /nginx.conf.template +COPY src/image-provider/nginx.conf.template /nginx.conf.template # Start nginx CMD ["/bin/sh" , "-c" , "envsubst '$OTEL_COLLECTOR_HOST $IMAGE_PROVIDER_PORT $OTEL_COLLECTOR_PORT_GRPC $OTEL_SERVICE_NAME' < /nginx.conf.template > /etc/nginx/nginx.conf && cat /etc/nginx/nginx.conf && exec nginx -g 'daemon off;'"] diff --git a/src/imageprovider/nginx.conf.template b/src/image-provider/nginx.conf.template similarity index 94% rename from src/imageprovider/nginx.conf.template rename to src/image-provider/nginx.conf.template index 775b44a8c8..144acb8210 100644 --- a/src/imageprovider/nginx.conf.template +++ b/src/image-provider/nginx.conf.template @@ -11,7 +11,7 @@ http { otel_trace on; otel_trace_context propagate; otel_service_name ${OTEL_SERVICE_NAME}; - otel_span_name imageprovider; + otel_span_name image-provider; include mime.types; diff --git a/src/imageprovider/static/Banner.png b/src/image-provider/static/Banner.png similarity index 100% rename from src/imageprovider/static/Banner.png rename to src/image-provider/static/Banner.png diff --git a/src/imageprovider/static/opentelemetry-demo-logo.png b/src/image-provider/static/opentelemetry-demo-logo.png similarity index 100% rename from src/imageprovider/static/opentelemetry-demo-logo.png rename to src/image-provider/static/opentelemetry-demo-logo.png diff --git a/src/imageprovider/static/products/EclipsmartTravelRefractorTelescope.jpg b/src/image-provider/static/products/EclipsmartTravelRefractorTelescope.jpg similarity index 100% rename from src/imageprovider/static/products/EclipsmartTravelRefractorTelescope.jpg rename to src/image-provider/static/products/EclipsmartTravelRefractorTelescope.jpg diff --git a/src/imageprovider/static/products/LensCleaningKit.jpg b/src/image-provider/static/products/LensCleaningKit.jpg similarity index 100% rename from src/imageprovider/static/products/LensCleaningKit.jpg rename to src/image-provider/static/products/LensCleaningKit.jpg diff --git a/src/imageprovider/static/products/NationalParkFoundationExplorascope.jpg b/src/image-provider/static/products/NationalParkFoundationExplorascope.jpg similarity index 100% rename from src/imageprovider/static/products/NationalParkFoundationExplorascope.jpg rename to src/image-provider/static/products/NationalParkFoundationExplorascope.jpg diff --git a/src/imageprovider/static/products/OpticalTubeAssembly.jpg b/src/image-provider/static/products/OpticalTubeAssembly.jpg similarity index 100% rename from src/imageprovider/static/products/OpticalTubeAssembly.jpg rename to src/image-provider/static/products/OpticalTubeAssembly.jpg diff --git a/src/imageprovider/static/products/RedFlashlight.jpg b/src/image-provider/static/products/RedFlashlight.jpg similarity index 100% rename from src/imageprovider/static/products/RedFlashlight.jpg rename to src/image-provider/static/products/RedFlashlight.jpg diff --git a/src/imageprovider/static/products/RoofBinoculars.jpg b/src/image-provider/static/products/RoofBinoculars.jpg similarity index 100% rename from src/imageprovider/static/products/RoofBinoculars.jpg rename to src/image-provider/static/products/RoofBinoculars.jpg diff --git a/src/imageprovider/static/products/SolarFilter.jpg b/src/image-provider/static/products/SolarFilter.jpg similarity index 100% rename from src/imageprovider/static/products/SolarFilter.jpg rename to src/image-provider/static/products/SolarFilter.jpg diff --git a/src/imageprovider/static/products/SolarSystemColorImager.jpg b/src/image-provider/static/products/SolarSystemColorImager.jpg similarity index 100% rename from src/imageprovider/static/products/SolarSystemColorImager.jpg rename to src/image-provider/static/products/SolarSystemColorImager.jpg diff --git a/src/imageprovider/static/products/StarsenseExplorer.jpg b/src/image-provider/static/products/StarsenseExplorer.jpg similarity index 100% rename from src/imageprovider/static/products/StarsenseExplorer.jpg rename to src/image-provider/static/products/StarsenseExplorer.jpg diff --git a/src/imageprovider/static/products/TheCometBook.jpg b/src/image-provider/static/products/TheCometBook.jpg similarity index 100% rename from src/imageprovider/static/products/TheCometBook.jpg rename to src/image-provider/static/products/TheCometBook.jpg From e3548c621744514f48e71d7ada96632edd345545 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Sun, 22 Dec 2024 08:49:02 -0500 Subject: [PATCH 046/178] [currency] Rename currencyservice to currency (#1858) --- .dockerignore | 6 ++--- .env | 6 ++--- .github/workflows/component-build-images.yml | 4 ++-- .gitignore | 2 +- CHANGELOG.md | 2 ++ docker-compose-tests.yml | 4 ++-- docker-compose.minimal.yml | 22 +++++++++---------- docker-compose.yml | 22 +++++++++---------- docker-gen-proto.sh | 2 +- ide-gen-proto.sh | 2 +- renovate.json5 | 4 ++-- src/checkoutservice/main.go | 2 +- .../.dockerignore | 0 .../CMakeLists.txt | 8 +++---- src/{currencyservice => currency}/Dockerfile | 10 ++++----- src/{currencyservice => currency}/README.md | 6 ++--- .../data/currency_conversion.json | 0 .../proto/grpc/health/v1/health.proto | 0 .../src/logger_common.h | 0 .../src/meter_common.h | 0 .../src/server.cpp | 16 +++++++------- .../src/tracer_common.h | 0 src/frontend/gateways/rpc/Currency.gateway.ts | 4 ++-- src/frontend/next.config.js | 4 ++-- .../{currencyservice => currency}/all.yaml | 0 .../convert.yaml | 4 ++-- .../supported.yaml | 8 +++---- test/tracetesting/run.bash | 6 ++--- 28 files changed, 73 insertions(+), 71 deletions(-) rename src/{currencyservice => currency}/.dockerignore (100%) rename src/{currencyservice => currency}/CMakeLists.txt (93%) rename src/{currencyservice => currency}/Dockerfile (86%) rename src/{currencyservice => currency}/README.md (81%) rename src/{currencyservice => currency}/data/currency_conversion.json (100%) rename src/{currencyservice => currency}/proto/grpc/health/v1/health.proto (100%) rename src/{currencyservice => currency}/src/logger_common.h (100%) rename src/{currencyservice => currency}/src/meter_common.h (100%) rename src/{currencyservice => currency}/src/server.cpp (94%) rename src/{currencyservice => currency}/src/tracer_common.h (100%) rename test/tracetesting/{currencyservice => currency}/all.yaml (100%) rename test/tracetesting/{currencyservice => currency}/convert.yaml (87%) rename test/tracetesting/{currencyservice => currency}/supported.yaml (73%) diff --git a/.dockerignore b/.dockerignore index 95710cb92a..5610276644 100644 --- a/.dockerignore +++ b/.dockerignore @@ -8,9 +8,9 @@ src/*/Dockerfile src/*/*/Dockerfile ################################### -# currencyservice -./src/currencyservice/client.js -./src/currencyservice/node_modules/ +# currency +./src/currency/client.js +./src/currency/node_modules/ ################################### ################################### diff --git a/.env b/.env index 5ca58172e7..b011c764dc 100644 --- a/.env +++ b/.env @@ -64,9 +64,9 @@ CHECKOUT_SERVICE_ADDR=checkoutservice:${CHECKOUT_SERVICE_PORT} CHECKOUT_SERVICE_DOCKERFILE=./src/checkoutservice/Dockerfile # Currency Service -CURRENCY_SERVICE_PORT=7001 -CURRENCY_SERVICE_ADDR=currencyservice:${CURRENCY_SERVICE_PORT} -CURRENCY_SERVICE_DOCKERFILE=./src/currencyservice/Dockerfile +CURRENCY_PORT=7001 +CURRENCY_ADDR=currency:${CURRENCY_PORT} +CURRENCY_DOCKERFILE=./src/currency/Dockerfile # Email Service EMAIL_SERVICE_PORT=6060 diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index e0cbb1a9f5..1ebd177346 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -67,8 +67,8 @@ jobs: tag_suffix: checkoutservice context: ./ setup-qemu: true - - file: ./src/currencyservice/Dockerfile - tag_suffix: currencyservice + - file: ./src/currency/Dockerfile + tag_suffix: currency context: ./ setup-qemu: true - file: ./src/emailservice/Dockerfile diff --git a/.gitignore b/.gitignore index ce60ae8696..0e791dd5dd 100644 --- a/.gitignore +++ b/.gitignore @@ -54,7 +54,7 @@ test/tracetesting/tracetesting-vars.yaml /src/frontend/protos/ /src/paymentservice/demo.proto /src/shipping/proto/ -/src/currencyservice/proto +/src/currency/proto # Android *.apk diff --git a/CHANGELOG.md b/CHANGELOG.md index 2220bf9197..886de03eea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,6 +54,8 @@ the release. ([#1856](https://github.com/open-telemetry/opentelemetry-demo/pull/1856)) * [image-provider] rename imageprovider to image-provider ([#1857](https://github.com/open-telemetry/opentelemetry-demo/pull/1857)) +* [currency] rename currencyservice to currency + ([#1858](https://github.com/open-telemetry/opentelemetry-demo/pull/1858)) ## 1.12.0 diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index ef1269a2c1..31fd9a80ab 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -40,7 +40,7 @@ services: - AD_ADDR - CART_ADDR - CHECKOUT_SERVICE_ADDR - - CURRENCY_SERVICE_ADDR + - CURRENCY_ADDR - EMAIL_SERVICE_ADDR - FRONTEND_ADDR - PAYMENT_SERVICE_ADDR @@ -65,7 +65,7 @@ services: condition: service_started checkoutservice: condition: service_started - currencyservice: + currency: condition: service_started emailservice: condition: service_started diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 663de96c17..0c0b868462 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -99,7 +99,7 @@ services: environment: - CHECKOUT_SERVICE_PORT - CART_ADDR - - CURRENCY_SERVICE_ADDR + - CURRENCY_ADDR - EMAIL_SERVICE_ADDR - FLAGD_HOST - PAYMENT_SERVICE_ADDR @@ -112,7 +112,7 @@ services: depends_on: cart: condition: service_started - currencyservice: + currency: condition: service_started emailservice: condition: service_started @@ -127,14 +127,14 @@ services: logging: *logging # Currency service - currencyservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-currencyservice + currency: + image: ${IMAGE_NAME}:${DEMO_VERSION}-currency container_name: currency-service build: context: ./ - dockerfile: ${CURRENCY_SERVICE_DOCKERFILE} + dockerfile: ${CURRENCY_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-currencyservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-currency args: OPENTELEMETRY_CPP_VERSION: ${OPENTELEMETRY_CPP_VERSION} deploy: @@ -143,12 +143,12 @@ services: memory: 20M restart: unless-stopped ports: - - "${CURRENCY_SERVICE_PORT}" + - "${CURRENCY_PORT}" environment: - - CURRENCY_SERVICE_PORT + - CURRENCY_PORT - VERSION=${IMAGE_VERSION} - OTEL_EXPORTER_OTLP_ENDPOINT - - OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES},service.name=currencyservice # The C++ SDK does not support OTEL_SERVICE_NAME + - OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES},service.name=currency # The C++ SDK does not support OTEL_SERVICE_NAME depends_on: otel-collector: condition: service_started @@ -202,7 +202,7 @@ services: - AD_ADDR - CART_ADDR - CHECKOUT_SERVICE_ADDR - - CURRENCY_SERVICE_ADDR + - CURRENCY_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - RECOMMENDATION_SERVICE_ADDR - SHIPPING_ADDR @@ -223,7 +223,7 @@ services: condition: service_started checkoutservice: condition: service_started - currencyservice: + currency: condition: service_started productcatalogservice: condition: service_started diff --git a/docker-compose.yml b/docker-compose.yml index 1b40749026..722afe90dc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -133,7 +133,7 @@ services: - FLAGD_PORT - CHECKOUT_SERVICE_PORT - CART_ADDR - - CURRENCY_SERVICE_ADDR + - CURRENCY_ADDR - EMAIL_SERVICE_ADDR - PAYMENT_SERVICE_ADDR - PRODUCT_CATALOG_SERVICE_ADDR @@ -146,7 +146,7 @@ services: depends_on: cart: condition: service_started - currencyservice: + currency: condition: service_started emailservice: condition: service_started @@ -165,14 +165,14 @@ services: logging: *logging # Currency service - currencyservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-currencyservice + currency: + image: ${IMAGE_NAME}:${DEMO_VERSION}-currency container_name: currency-service build: context: ./ - dockerfile: ${CURRENCY_SERVICE_DOCKERFILE} + dockerfile: ${CURRENCY_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-currencyservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-currency args: OPENTELEMETRY_CPP_VERSION: ${OPENTELEMETRY_CPP_VERSION} deploy: @@ -181,12 +181,12 @@ services: memory: 20M restart: unless-stopped ports: - - "${CURRENCY_SERVICE_PORT}" + - "${CURRENCY_PORT}" environment: - - CURRENCY_SERVICE_PORT + - CURRENCY_PORT - VERSION=${IMAGE_VERSION} - OTEL_EXPORTER_OTLP_ENDPOINT - - OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES},service.name=currencyservice # The C++ SDK does not support OTEL_SERVICE_NAME + - OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES},service.name=currency # The C++ SDK does not support OTEL_SERVICE_NAME depends_on: otel-collector: condition: service_started @@ -274,7 +274,7 @@ services: - AD_ADDR - CART_ADDR - CHECKOUT_SERVICE_ADDR - - CURRENCY_SERVICE_ADDR + - CURRENCY_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - RECOMMENDATION_SERVICE_ADDR - SHIPPING_ADDR @@ -295,7 +295,7 @@ services: condition: service_started checkoutservice: condition: service_started - currencyservice: + currency: condition: service_started productcatalogservice: condition: service_started diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index a1600f71e4..80fa1f8634 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -25,7 +25,7 @@ gen_proto_python() { #gen_proto_java ad #gen_proto_dotnet cart gen_proto_go checkoutservice -#gen_proto_cpp currencyservice +#gen_proto_cpp currency #gen_proto_ruby emailservice #gen_proto_ts frontend #gen_proto_js paymentservice diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index 52fa222f4b..14649b8517 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -69,7 +69,7 @@ gen_proto_dotnet accounting # gen_proto_java ad gen_proto_dotnet cart gen_proto_go checkoutservice -# gen_proto_cpp currencyservice +# gen_proto_cpp currency # gen_proto_ruby emailservice gen_proto_ts frontend gen_proto_ts react-native-app diff --git a/renovate.json5 b/renovate.json5 index 09e30fd03e..de6ac5c52a 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -31,8 +31,8 @@ "groupName": "checkoutservice", }, { - "matchFileNames": ["src/currencyservice/**"], - "groupName": "currencyservice", + "matchFileNames": ["src/currency/**"], + "groupName": "currency", }, { "matchFileNames": ["src/emailservice/**"], diff --git a/src/checkoutservice/main.go b/src/checkoutservice/main.go index b3f84cacac..d4c7bfadc9 100644 --- a/src/checkoutservice/main.go +++ b/src/checkoutservice/main.go @@ -182,7 +182,7 @@ func main() { svc.cartSvcClient = pb.NewCartServiceClient(c) defer c.Close() - mustMapEnv(&svc.currencySvcAddr, "CURRENCY_SERVICE_ADDR") + mustMapEnv(&svc.currencySvcAddr, "CURRENCY_ADDR") c = mustCreateClient(svc.currencySvcAddr) svc.currencySvcClient = pb.NewCurrencyServiceClient(c) defer c.Close() diff --git a/src/currencyservice/.dockerignore b/src/currency/.dockerignore similarity index 100% rename from src/currencyservice/.dockerignore rename to src/currency/.dockerignore diff --git a/src/currencyservice/CMakeLists.txt b/src/currency/CMakeLists.txt similarity index 93% rename from src/currencyservice/CMakeLists.txt rename to src/currency/CMakeLists.txt index 5b672559f8..7b249e80f0 100644 --- a/src/currencyservice/CMakeLists.txt +++ b/src/currency/CMakeLists.txt @@ -59,13 +59,13 @@ add_library(demo-proto ${DEMO_PB_H_FILE} target_link_libraries(demo-proto gRPC::grpc++ protobuf::libprotobuf) include_directories("${GENERATED_PROTOBUF_PATH}" "${OPENTELEMETRY_CPP_INCLUDE_DIRS}") -add_executable(currencyservice src/server.cpp) -add_dependencies(currencyservice demo-proto) +add_executable(currency src/server.cpp) +add_dependencies(currency demo-proto) target_link_libraries( - currencyservice demo-proto protobuf::libprotobuf + currency demo-proto protobuf::libprotobuf ${OPENTELEMETRY_CPP_LIBRARIES} opentelemetry_trace opentelemetry_common opentelemetry_exporter_otlp_grpc opentelemetry_exporter_otlp_grpc_client opentelemetry_proto opentelemetry_otlp_recordable opentelemetry_resources opentelemetry_metrics opentelemetry_exporter_otlp_grpc_metrics gRPC::grpc++) -install(TARGETS currencyservice DESTINATION bin) +install(TARGETS currency DESTINATION bin) diff --git a/src/currencyservice/Dockerfile b/src/currency/Dockerfile similarity index 86% rename from src/currencyservice/Dockerfile rename to src/currency/Dockerfile index e84057f3d1..5a5da589c7 100644 --- a/src/currencyservice/Dockerfile +++ b/src/currency/Dockerfile @@ -30,10 +30,10 @@ RUN git clone https://github.com/open-telemetry/opentelemetry-cpp \ -DWITH_EXAMPLES=OFF -DWITH_OTLP_GRPC=ON -DWITH_ABSEIL=ON \ && make -j$(nproc || sysctl -n hw.ncpu || echo 1) install && cd ../.. -COPY ./src/currencyservice /currencyservice -COPY ./pb/demo.proto /currencyservice/proto/demo.proto +COPY ./src/currency /currency +COPY ./pb/demo.proto /currency/proto/demo.proto -RUN cd /currencyservice \ +RUN cd /currency \ && mkdir -p build && cd build \ && cmake .. \ && make -j$(nproc || sysctl -n hw.ncpu || echo 1) install @@ -44,5 +44,5 @@ FROM alpine:3.18 AS release RUN apk update && apk add grpc-dev protobuf-dev COPY --from=builder /usr/local /usr/local -EXPOSE ${CURRENCY_SERVICE_PORT} -ENTRYPOINT ["sh", "-c", "./usr/local/bin/currencyservice ${CURRENCY_SERVICE_PORT}"] +EXPOSE ${CURRENCY_PORT} +ENTRYPOINT ["sh", "-c", "./usr/local/bin/currency ${CURRENCY_PORT}"] diff --git a/src/currencyservice/README.md b/src/currency/README.md similarity index 81% rename from src/currencyservice/README.md rename to src/currency/README.md index 27a23f397f..e8ab7453ac 100644 --- a/src/currencyservice/README.md +++ b/src/currency/README.md @@ -9,7 +9,7 @@ To build the currency service, run the following from root directory of opentelemetry-demo ```sh -docker-compose build currencyservice +docker-compose build currency ``` ## Run the service @@ -17,7 +17,7 @@ docker-compose build currencyservice Execute the below command to run the service. ```sh -docker-compose up currencyservice +docker-compose up currency ``` ## Run the client @@ -29,4 +29,4 @@ service. To run the client, execute the below command. docker exec -it currencyclient 7000 ``` -'7000' is port where currencyservice listens to. +'7000' is port where currency listens to. diff --git a/src/currencyservice/data/currency_conversion.json b/src/currency/data/currency_conversion.json similarity index 100% rename from src/currencyservice/data/currency_conversion.json rename to src/currency/data/currency_conversion.json diff --git a/src/currencyservice/proto/grpc/health/v1/health.proto b/src/currency/proto/grpc/health/v1/health.proto similarity index 100% rename from src/currencyservice/proto/grpc/health/v1/health.proto rename to src/currency/proto/grpc/health/v1/health.proto diff --git a/src/currencyservice/src/logger_common.h b/src/currency/src/logger_common.h similarity index 100% rename from src/currencyservice/src/logger_common.h rename to src/currency/src/logger_common.h diff --git a/src/currencyservice/src/meter_common.h b/src/currency/src/meter_common.h similarity index 100% rename from src/currencyservice/src/meter_common.h rename to src/currency/src/meter_common.h diff --git a/src/currencyservice/src/server.cpp b/src/currency/src/server.cpp similarity index 94% rename from src/currencyservice/src/server.cpp rename to src/currency/src/server.cpp index ff194edd77..26d17b8c72 100644 --- a/src/currencyservice/src/server.cpp +++ b/src/currency/src/server.cpp @@ -83,7 +83,7 @@ namespace }; std::string version = std::getenv("VERSION"); - std::string name{ "currencyservice" }; + std::string name{ "currency" }; nostd::unique_ptr> currency_counter; nostd::shared_ptr logger; @@ -115,15 +115,15 @@ class CurrencyService final : public oteldemo::CurrencyService::Service auto new_context = prop->Extract(carrier, current_ctx); options.parent = GetSpan(new_context)->GetContext(); - std::string span_name = "CurrencyService/GetSupportedCurrencies"; + std::string span_name = "Currency/GetSupportedCurrencies"; auto span = - get_tracer("currencyservice")->StartSpan(span_name, + get_tracer("currency")->StartSpan(span_name, {{SemanticConventions::kRpcSystem, "grpc"}, {SemanticConventions::kRpcService, "oteldemo.CurrencyService"}, {SemanticConventions::kRpcMethod, "GetSupportedCurrencies"}, {SemanticConventions::kRpcGrpcStatusCode, 0}}, options); - auto scope = get_tracer("currencyservice")->WithActiveSpan(span); + auto scope = get_tracer("currency")->WithActiveSpan(span); span->AddEvent("Processing supported currencies request"); @@ -176,15 +176,15 @@ class CurrencyService final : public oteldemo::CurrencyService::Service auto new_context = prop->Extract(carrier, current_ctx); options.parent = GetSpan(new_context)->GetContext(); - std::string span_name = "CurrencyService/Convert"; + std::string span_name = "Currency/Convert"; auto span = - get_tracer("currencyservice")->StartSpan(span_name, + get_tracer("currency")->StartSpan(span_name, {{SemanticConventions::kRpcSystem, "grpc"}, {SemanticConventions::kRpcService, "oteldemo.CurrencyService"}, {SemanticConventions::kRpcMethod, "Convert"}, {SemanticConventions::kRpcGrpcStatusCode, 0}}, options); - auto scope = get_tracer("currencyservice")->WithActiveSpan(span); + auto scope = get_tracer("currency")->WithActiveSpan(span); span->AddEvent("Processing currency conversion request"); @@ -257,7 +257,7 @@ void RunServer(uint16_t port) int main(int argc, char **argv) { if (argc < 2) { - std::cout << "Usage: currencyservice "; + std::cout << "Usage: currency "; return 0; } diff --git a/src/currencyservice/src/tracer_common.h b/src/currency/src/tracer_common.h similarity index 100% rename from src/currencyservice/src/tracer_common.h rename to src/currency/src/tracer_common.h diff --git a/src/frontend/gateways/rpc/Currency.gateway.ts b/src/frontend/gateways/rpc/Currency.gateway.ts index e41d67c8a1..ac25719d5e 100644 --- a/src/frontend/gateways/rpc/Currency.gateway.ts +++ b/src/frontend/gateways/rpc/Currency.gateway.ts @@ -4,9 +4,9 @@ import { ChannelCredentials } from '@grpc/grpc-js'; import { GetSupportedCurrenciesResponse, CurrencyServiceClient, Money } from '../../protos/demo'; -const { CURRENCY_SERVICE_ADDR = '' } = process.env; +const { CURRENCY_ADDR = '' } = process.env; -const client = new CurrencyServiceClient(CURRENCY_SERVICE_ADDR, ChannelCredentials.createInsecure()); +const client = new CurrencyServiceClient(CURRENCY_ADDR, ChannelCredentials.createInsecure()); const CurrencyGateway = () => ({ convert(from: Money, toCode: string) { diff --git a/src/frontend/next.config.js b/src/frontend/next.config.js index 4c680c1fe3..eac4615be9 100755 --- a/src/frontend/next.config.js +++ b/src/frontend/next.config.js @@ -16,7 +16,7 @@ const { AD_ADDR = '', CART_ADDR = '', CHECKOUT_SERVICE_ADDR = '', - CURRENCY_SERVICE_ADDR = '', + CURRENCY_ADDR = '', PRODUCT_CATALOG_SERVICE_ADDR = '', RECOMMENDATION_SERVICE_ADDR = '', SHIPPING_ADDR = '', @@ -48,7 +48,7 @@ const nextConfig = { AD_ADDR, CART_ADDR, CHECKOUT_SERVICE_ADDR, - CURRENCY_SERVICE_ADDR, + CURRENCY_ADDR, PRODUCT_CATALOG_SERVICE_ADDR, RECOMMENDATION_SERVICE_ADDR, SHIPPING_ADDR, diff --git a/test/tracetesting/currencyservice/all.yaml b/test/tracetesting/currency/all.yaml similarity index 100% rename from test/tracetesting/currencyservice/all.yaml rename to test/tracetesting/currency/all.yaml diff --git a/test/tracetesting/currencyservice/convert.yaml b/test/tracetesting/currency/convert.yaml similarity index 87% rename from test/tracetesting/currencyservice/convert.yaml rename to test/tracetesting/currency/convert.yaml index 4a4c9756d7..ddae749e36 100644 --- a/test/tracetesting/currencyservice/convert.yaml +++ b/test/tracetesting/currency/convert.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:CURRENCY_SERVICE_ADDR} + address: ${var:CURRENCY_ADDR} method: oteldemo.CurrencyService.Convert request: |- { @@ -23,7 +23,7 @@ spec: } specs: - name: It converts from USD to CAD - selector: span[tracetest.span.type="rpc" name="CurrencyService/Convert" rpc.system="grpc" + selector: span[tracetest.span.type="rpc" name="Currency/Convert" rpc.system="grpc" rpc.method="Convert" rpc.service="oteldemo.CurrencyService"] assertions: - attr:app.currency.conversion.from = "USD" diff --git a/test/tracetesting/currencyservice/supported.yaml b/test/tracetesting/currency/supported.yaml similarity index 73% rename from test/tracetesting/currencyservice/supported.yaml rename to test/tracetesting/currency/supported.yaml index 4bea9ed24b..9959e49679 100644 --- a/test/tracetesting/currencyservice/supported.yaml +++ b/test/tracetesting/currency/supported.yaml @@ -10,14 +10,14 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:CURRENCY_SERVICE_ADDR} + address: ${var:CURRENCY_ADDR} method: oteldemo.CurrencyService.GetSupportedCurrencies specs: - - name: It has a span called "CurrencyService/GetSupportedCurrencies" - selector: span[tracetest.span.type="rpc" name="CurrencyService/GetSupportedCurrencies" + - name: It has a span called "Currency/GetSupportedCurrencies" + selector: span[tracetest.span.type="rpc" name="Currency/GetSupportedCurrencies" rpc.system="grpc" rpc.method="GetSupportedCurrencies" rpc.service="oteldemo.CurrencyService"] assertions: - - attr:name = "CurrencyService/GetSupportedCurrencies" + - attr:name = "Currency/GetSupportedCurrencies" - name: It returns the expected currency codes selector: span[tracetest.span.type="general" name="Tracetest trigger"] assertions: diff --git a/test/tracetesting/run.bash b/test/tracetesting/run.bash index 3e043a86e5..865de274e0 100755 --- a/test/tracetesting/run.bash +++ b/test/tracetesting/run.bash @@ -8,7 +8,7 @@ set -e # Availalble services to test -ALL_SERVICES=("ad" "cart" "currencyservice" "checkoutservice" "frontend" "emailservice" "paymentservice" "productcatalogservice" "recommendationservice" "shipping") +ALL_SERVICES=("ad" "cart" "currency" "checkoutservice" "frontend" "emailservice" "paymentservice" "productcatalogservice" "recommendationservice" "shipping") ## Script variables # Will contain the list of services to test @@ -40,8 +40,8 @@ spec: value: $CART_ADDR - key: CHECKOUT_SERVICE_ADDR value: $CHECKOUT_SERVICE_ADDR - - key: CURRENCY_SERVICE_ADDR - value: $CURRENCY_SERVICE_ADDR + - key: CURRENCY_ADDR + value: $CURRENCY_ADDR - key: EMAIL_SERVICE_ADDR value: $EMAIL_SERVICE_ADDR - key: FRONTEND_ADDR From 969fe3bb0165a6f9e4684a0c69abb7d156fef230 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 23 Dec 2024 08:25:56 -0500 Subject: [PATCH 047/178] [email] rename emailservice to email (#1861) --- .env | 6 +++--- .github/workflows/component-build-images.yml | 4 ++-- CHANGELOG.md | 2 ++ docker-compose-tests.yml | 4 ++-- docker-compose.minimal.yml | 18 +++++++++--------- docker-compose.yml | 18 +++++++++--------- docker-gen-proto.sh | 2 +- ide-gen-proto.sh | 2 +- renovate.json5 | 4 ++-- src/checkoutservice/main.go | 6 +++--- src/{emailservice => email}/.dockerignore | 0 src/{emailservice => email}/.ruby-version | 0 src/{emailservice => email}/Dockerfile | 6 +++--- src/{emailservice => email}/Gemfile | 0 src/{emailservice => email}/Gemfile.lock | 0 src/{emailservice => email}/README.md | 2 +- src/{emailservice => email}/email_server.rb | 4 ++-- .../views/confirmation.erb | 0 .../{emailservice => email}/all.yaml | 6 +++--- .../{emailservice => email}/confirmation.yaml | 2 +- test/tracetesting/run.bash | 6 +++--- 21 files changed, 47 insertions(+), 45 deletions(-) rename src/{emailservice => email}/.dockerignore (100%) rename src/{emailservice => email}/.ruby-version (100%) rename src/{emailservice => email}/Dockerfile (79%) rename src/{emailservice => email}/Gemfile (100%) rename src/{emailservice => email}/Gemfile.lock (100%) rename src/{emailservice => email}/README.md (91%) rename src/{emailservice => email}/email_server.rb (93%) rename src/{emailservice => email}/views/confirmation.erb (100%) rename test/tracetesting/{emailservice => email}/all.yaml (54%) rename test/tracetesting/{emailservice => email}/confirmation.yaml (96%) diff --git a/.env b/.env index b011c764dc..a95b84de56 100644 --- a/.env +++ b/.env @@ -69,9 +69,9 @@ CURRENCY_ADDR=currency:${CURRENCY_PORT} CURRENCY_DOCKERFILE=./src/currency/Dockerfile # Email Service -EMAIL_SERVICE_PORT=6060 -EMAIL_SERVICE_ADDR=http://emailservice:${EMAIL_SERVICE_PORT} -EMAIL_SERVICE_DOCKERFILE=./src/emailservice/Dockerfile +EMAIL_PORT=6060 +EMAIL_ADDR=http://email:${EMAIL_PORT} +EMAIL_DOCKERFILE=./src/email/Dockerfile # Fraud Service FRAUD_SERVICE_DOCKERFILE=./src/frauddetectionservice/Dockerfile diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 1ebd177346..1e159b54fc 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -71,8 +71,8 @@ jobs: tag_suffix: currency context: ./ setup-qemu: true - - file: ./src/emailservice/Dockerfile - tag_suffix: emailservice + - file: ./src/email/Dockerfile + tag_suffix: email context: ./ setup-qemu: true - file: ./src/frauddetectionservice/Dockerfile diff --git a/CHANGELOG.md b/CHANGELOG.md index 886de03eea..9333ed153f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,6 +56,8 @@ the release. ([#1857](https://github.com/open-telemetry/opentelemetry-demo/pull/1857)) * [currency] rename currencyservice to currency ([#1858](https://github.com/open-telemetry/opentelemetry-demo/pull/1858)) +* [email] rename emailservice to email + ([#1861](https://github.com/open-telemetry/opentelemetry-demo/pull/1861)) ## 1.12.0 diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index 31fd9a80ab..4e50b6aead 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -41,7 +41,7 @@ services: - CART_ADDR - CHECKOUT_SERVICE_ADDR - CURRENCY_ADDR - - EMAIL_SERVICE_ADDR + - EMAIL_ADDR - FRONTEND_ADDR - PAYMENT_SERVICE_ADDR - PRODUCT_CATALOG_SERVICE_ADDR @@ -67,7 +67,7 @@ services: condition: service_started currency: condition: service_started - emailservice: + email: condition: service_started frauddetectionservice: condition: service_started diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 0c0b868462..8fe5d0b3c3 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -100,7 +100,7 @@ services: - CHECKOUT_SERVICE_PORT - CART_ADDR - CURRENCY_ADDR - - EMAIL_SERVICE_ADDR + - EMAIL_ADDR - FLAGD_HOST - PAYMENT_SERVICE_ADDR - PRODUCT_CATALOG_SERVICE_ADDR @@ -114,7 +114,7 @@ services: condition: service_started currency: condition: service_started - emailservice: + email: condition: service_started paymentservice: condition: service_started @@ -155,26 +155,26 @@ services: logging: *logging # Email service - emailservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-emailservice + email: + image: ${IMAGE_NAME}:${DEMO_VERSION}-email container_name: email-service build: - context: ./src/emailservice + context: ./src/email cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-emailservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-email deploy: resources: limits: memory: 100M restart: unless-stopped ports: - - "${EMAIL_SERVICE_PORT}" + - "${EMAIL_PORT}" environment: - APP_ENV=production - - EMAIL_SERVICE_PORT + - EMAIL_PORT - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP}/v1/traces - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=emailservice + - OTEL_SERVICE_NAME=email depends_on: otel-collector: condition: service_started diff --git a/docker-compose.yml b/docker-compose.yml index 722afe90dc..bac8491189 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -134,7 +134,7 @@ services: - CHECKOUT_SERVICE_PORT - CART_ADDR - CURRENCY_ADDR - - EMAIL_SERVICE_ADDR + - EMAIL_ADDR - PAYMENT_SERVICE_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - SHIPPING_ADDR @@ -148,7 +148,7 @@ services: condition: service_started currency: condition: service_started - emailservice: + email: condition: service_started paymentservice: condition: service_started @@ -193,27 +193,27 @@ services: logging: *logging # Email service - emailservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-emailservice + email: + image: ${IMAGE_NAME}:${DEMO_VERSION}-email container_name: email-service build: context: ./ - dockerfile: ${EMAIL_SERVICE_DOCKERFILE} + dockerfile: ${EMAIL_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-emailservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-email deploy: resources: limits: memory: 100M restart: unless-stopped ports: - - "${EMAIL_SERVICE_PORT}" + - "${EMAIL_PORT}" environment: - APP_ENV=production - - EMAIL_SERVICE_PORT + - EMAIL_PORT - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP}/v1/traces - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=emailservice + - OTEL_SERVICE_NAME=email depends_on: otel-collector: condition: service_started diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index 80fa1f8634..dfd16526e5 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -26,7 +26,7 @@ gen_proto_python() { #gen_proto_dotnet cart gen_proto_go checkoutservice #gen_proto_cpp currency -#gen_proto_ruby emailservice +#gen_proto_ruby email #gen_proto_ts frontend #gen_proto_js paymentservice gen_proto_go productcatalogservice diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index 14649b8517..76ad0f1980 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -70,7 +70,7 @@ gen_proto_dotnet accounting gen_proto_dotnet cart gen_proto_go checkoutservice # gen_proto_cpp currency -# gen_proto_ruby emailservice +# gen_proto_ruby email gen_proto_ts frontend gen_proto_ts react-native-app gen_proto_js paymentservice diff --git a/renovate.json5 b/renovate.json5 index de6ac5c52a..9524045bde 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -35,8 +35,8 @@ "groupName": "currency", }, { - "matchFileNames": ["src/emailservice/**"], - "groupName": "emailservice", + "matchFileNames": ["src/email/**"], + "groupName": "email", }, { "matchFileNames": ["src/featureflagservice/**"], diff --git a/src/checkoutservice/main.go b/src/checkoutservice/main.go index d4c7bfadc9..5ad3afa8ba 100644 --- a/src/checkoutservice/main.go +++ b/src/checkoutservice/main.go @@ -187,7 +187,7 @@ func main() { svc.currencySvcClient = pb.NewCurrencyServiceClient(c) defer c.Close() - mustMapEnv(&svc.emailSvcAddr, "EMAIL_SERVICE_ADDR") + mustMapEnv(&svc.emailSvcAddr, "EMAIL_ADDR") c = mustCreateClient(svc.emailSvcAddr) svc.emailSvcClient = pb.NewEmailServiceClient(c) defer c.Close() @@ -458,7 +458,7 @@ func (cs *checkoutService) chargeCard(ctx context.Context, amount *pb.Money, pay } func (cs *checkoutService) sendOrderConfirmation(ctx context.Context, email string, order *pb.OrderResult) error { - emailServicePayload, err := json.Marshal(map[string]interface{}{ + emailPayload, err := json.Marshal(map[string]interface{}{ "email": email, "order": order, }) @@ -466,7 +466,7 @@ func (cs *checkoutService) sendOrderConfirmation(ctx context.Context, email stri return fmt.Errorf("failed to marshal order to JSON: %+v", err) } - resp, err := otelhttp.Post(ctx, cs.emailSvcAddr+"/send_order_confirmation", "application/json", bytes.NewBuffer(emailServicePayload)) + resp, err := otelhttp.Post(ctx, cs.emailSvcAddr+"/send_order_confirmation", "application/json", bytes.NewBuffer(emailPayload)) if err != nil { return fmt.Errorf("failed POST to email service: %+v", err) } diff --git a/src/emailservice/.dockerignore b/src/email/.dockerignore similarity index 100% rename from src/emailservice/.dockerignore rename to src/email/.dockerignore diff --git a/src/emailservice/.ruby-version b/src/email/.ruby-version similarity index 100% rename from src/emailservice/.ruby-version rename to src/email/.ruby-version diff --git a/src/emailservice/Dockerfile b/src/email/Dockerfile similarity index 79% rename from src/emailservice/Dockerfile rename to src/email/Dockerfile index d6090905e5..45da417d37 100644 --- a/src/emailservice/Dockerfile +++ b/src/email/Dockerfile @@ -8,7 +8,7 @@ FROM base AS builder WORKDIR /tmp -COPY ./src/emailservice/Gemfile ./src/emailservice/Gemfile.lock ./ +COPY ./src/email/Gemfile ./src/email/Gemfile.lock ./ #RUN apk update && apk add make gcc musl-dev gcompat && bundle install RUN apt-get update && apt-get install build-essential -y && bundle install @@ -16,12 +16,12 @@ FROM base AS release WORKDIR /email_server -COPY ./src/emailservice/ . +COPY ./src/email/ . RUN chmod 666 ./Gemfile.lock COPY --from=builder /usr/local/bundle/ /usr/local/bundle/ -EXPOSE ${EMAIL_SERVICE_PORT} +EXPOSE ${EMAIL_PORT} ENTRYPOINT ["bundle", "exec", "ruby", "email_server.rb"] diff --git a/src/emailservice/Gemfile b/src/email/Gemfile similarity index 100% rename from src/emailservice/Gemfile rename to src/email/Gemfile diff --git a/src/emailservice/Gemfile.lock b/src/email/Gemfile.lock similarity index 100% rename from src/emailservice/Gemfile.lock rename to src/email/Gemfile.lock diff --git a/src/emailservice/README.md b/src/email/README.md similarity index 91% rename from src/emailservice/README.md rename to src/email/README.md index e46b89404a..13533d83ee 100644 --- a/src/emailservice/README.md +++ b/src/email/README.md @@ -20,4 +20,4 @@ You may run this service locally with `bundle exec ruby email_server.rb`. ## Docker Build -From `src/emailservice`, run `docker build .` +From `src/email`, run `docker build .` diff --git a/src/emailservice/email_server.rb b/src/email/email_server.rb similarity index 93% rename from src/emailservice/email_server.rb rename to src/email/email_server.rb index ae0291d466..fcd494a07d 100644 --- a/src/emailservice/email_server.rb +++ b/src/email/email_server.rb @@ -9,7 +9,7 @@ require "opentelemetry/exporter/otlp" require "opentelemetry/instrumentation/sinatra" -set :port, ENV["EMAIL_SERVICE_PORT"] +set :port, ENV["EMAIL_PORT"] OpenTelemetry::SDK.configure do |c| c.use "OpenTelemetry::Instrumentation::Sinatra" @@ -34,7 +34,7 @@ def send_email(data) # create and start a manual span - tracer = OpenTelemetry.tracer_provider.tracer('emailservice') + tracer = OpenTelemetry.tracer_provider.tracer('email') tracer.in_span("send_email") do |span| Pony.mail( to: data.email, diff --git a/src/emailservice/views/confirmation.erb b/src/email/views/confirmation.erb similarity index 100% rename from src/emailservice/views/confirmation.erb rename to src/email/views/confirmation.erb diff --git a/test/tracetesting/emailservice/all.yaml b/test/tracetesting/email/all.yaml similarity index 54% rename from test/tracetesting/emailservice/all.yaml rename to test/tracetesting/email/all.yaml index 0a2f79aaad..517ca65e69 100644 --- a/test/tracetesting/emailservice/all.yaml +++ b/test/tracetesting/email/all.yaml @@ -3,8 +3,8 @@ type: TestSuite spec: - id: email-service-all - name: 'Email Service' - description: Run all Email Service tests enabled in sequence + id: email-all + name: 'Email' + description: Run all Email tests enabled in sequence steps: - ./confirmation.yaml diff --git a/test/tracetesting/emailservice/confirmation.yaml b/test/tracetesting/email/confirmation.yaml similarity index 96% rename from test/tracetesting/emailservice/confirmation.yaml rename to test/tracetesting/email/confirmation.yaml index 6aff590e31..96c561efbc 100644 --- a/test/tracetesting/emailservice/confirmation.yaml +++ b/test/tracetesting/email/confirmation.yaml @@ -9,7 +9,7 @@ spec: trigger: type: http httpRequest: - url: ${var:EMAIL_SERVICE_ADDR}/send_order_confirmation + url: ${var:EMAIL_ADDR}/send_order_confirmation method: POST headers: - key: Content-Type diff --git a/test/tracetesting/run.bash b/test/tracetesting/run.bash index 865de274e0..aba367b86f 100755 --- a/test/tracetesting/run.bash +++ b/test/tracetesting/run.bash @@ -8,7 +8,7 @@ set -e # Availalble services to test -ALL_SERVICES=("ad" "cart" "currency" "checkoutservice" "frontend" "emailservice" "paymentservice" "productcatalogservice" "recommendationservice" "shipping") +ALL_SERVICES=("ad" "cart" "currency" "checkoutservice" "frontend" "email" "paymentservice" "productcatalogservice" "recommendationservice" "shipping") ## Script variables # Will contain the list of services to test @@ -42,8 +42,8 @@ spec: value: $CHECKOUT_SERVICE_ADDR - key: CURRENCY_ADDR value: $CURRENCY_ADDR - - key: EMAIL_SERVICE_ADDR - value: $EMAIL_SERVICE_ADDR + - key: EMAIL_ADDR + value: $EMAIL_ADDR - key: FRONTEND_ADDR value: $FRONTEND_ADDR - key: PAYMENT_SERVICE_ADDR From 3868f0e4c212fbe3f215de020e79322f4d7b6867 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 23 Dec 2024 09:15:54 -0500 Subject: [PATCH 048/178] [fraud-detection] rename frauddetectionservice to fraud-detection (#1862) * rename frauddetectionservice to fraud-detection * rename frauddetectionservice to fraud-detection --------- Co-authored-by: Juliano Costa --- .env | 2 +- .github/workflows/component-build-images.yml | 4 ++-- .gitignore | 2 +- CHANGELOG.md | 2 ++ docker-compose-tests.yml | 2 +- docker-compose.yml | 12 ++++++------ renovate.json5 | 4 ++-- .../.dockerignore | 0 .../Dockerfile | 6 +++--- .../README.md | 2 +- .../build.gradle.kts | 4 ++-- .../gradle.properties | 0 .../gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../gradlew | 0 .../gradlew.bat | 0 src/fraud-detection/settings.gradle.kts | 3 +++ .../src/main/kotlin/frauddetection}/main.kt | 4 ++-- .../src/main/resources/log4j2.xml | 0 src/frauddetectionservice/settings.gradle.kts | 3 --- 20 files changed, 26 insertions(+), 24 deletions(-) rename src/{frauddetectionservice => fraud-detection}/.dockerignore (100%) rename src/{frauddetectionservice => fraud-detection}/Dockerfile (77%) rename src/{frauddetectionservice => fraud-detection}/README.md (85%) rename src/{frauddetectionservice => fraud-detection}/build.gradle.kts (95%) rename src/{frauddetectionservice => fraud-detection}/gradle.properties (100%) rename src/{frauddetectionservice => fraud-detection}/gradle/wrapper/gradle-wrapper.jar (100%) rename src/{frauddetectionservice => fraud-detection}/gradle/wrapper/gradle-wrapper.properties (100%) rename src/{frauddetectionservice => fraud-detection}/gradlew (100%) rename src/{frauddetectionservice => fraud-detection}/gradlew.bat (100%) create mode 100644 src/fraud-detection/settings.gradle.kts rename src/{frauddetectionservice/src/main/kotlin/frauddetectionservice => fraud-detection/src/main/kotlin/frauddetection}/main.kt (97%) rename src/{frauddetectionservice => fraud-detection}/src/main/resources/log4j2.xml (100%) delete mode 100644 src/frauddetectionservice/settings.gradle.kts diff --git a/.env b/.env index a95b84de56..b43ba66093 100644 --- a/.env +++ b/.env @@ -74,7 +74,7 @@ EMAIL_ADDR=http://email:${EMAIL_PORT} EMAIL_DOCKERFILE=./src/email/Dockerfile # Fraud Service -FRAUD_SERVICE_DOCKERFILE=./src/frauddetectionservice/Dockerfile +FRAUD_DOCKERFILE=./src/fraud-detection/Dockerfile # Frontend FRONTEND_PORT=8080 diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 1e159b54fc..76b006908b 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -75,8 +75,8 @@ jobs: tag_suffix: email context: ./ setup-qemu: true - - file: ./src/frauddetectionservice/Dockerfile - tag_suffix: frauddetectionservice + - file: ./src/fraud-detection/Dockerfile + tag_suffix: fraud-detection context: ./ setup-qemu: true - file: ./src/frontend/Dockerfile diff --git a/.gitignore b/.gitignore index 0e791dd5dd..a7c2a831f9 100644 --- a/.gitignore +++ b/.gitignore @@ -49,7 +49,7 @@ test/tracetesting/tracetesting-vars.yaml /src/featureflagservice/src/ffs_demo_pb.erl /src/featureflagservice/src/ffs_service_*.erl /src/featureflagservice/src/oteldemo_*.erl -/src/frauddetectionservice/src/main/proto +/src/fraud-detection/src/main/proto /src/frontend/pb/ /src/frontend/protos/ /src/paymentservice/demo.proto diff --git a/CHANGELOG.md b/CHANGELOG.md index 9333ed153f..627c3de848 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,6 +58,8 @@ the release. ([#1858](https://github.com/open-telemetry/opentelemetry-demo/pull/1858)) * [email] rename emailservice to email ([#1861](https://github.com/open-telemetry/opentelemetry-demo/pull/1861)) +* [fraud-detection] rename frauddetectionservice to fraud-detection + ([#1862](https://github.com/open-telemetry/opentelemetry-demo/pull/1862)) ## 1.12.0 diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index 4e50b6aead..c2a8810adb 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -69,7 +69,7 @@ services: condition: service_started email: condition: service_started - frauddetectionservice: + fraud-detection: condition: service_started frontend: condition: service_started diff --git a/docker-compose.yml b/docker-compose.yml index bac8491189..9d392cc4a8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -220,14 +220,14 @@ services: logging: *logging # Fraud Detection service - frauddetectionservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-frauddetectionservice - container_name: frauddetection-service + fraud-detection: + image: ${IMAGE_NAME}:${DEMO_VERSION}-fraud-detection + container_name: fraud-detection build: context: ./ - dockerfile: ${FRAUD_SERVICE_DOCKERFILE} + dockerfile: ${FRAUD_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-frauddetectionservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-fraud-detection args: OTEL_JAVA_AGENT_VERSION: ${OTEL_JAVA_AGENT_VERSION} deploy: @@ -244,7 +244,7 @@ services: - OTEL_INSTRUMENTATION_KAFKA_EXPERIMENTAL_SPAN_ATTRIBUTES=true - OTEL_INSTRUMENTATION_MESSAGING_EXPERIMENTAL_RECEIVE_TELEMETRY_ENABLED=true - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=frauddetectionservice + - OTEL_SERVICE_NAME=fraud-detection depends_on: otel-collector: condition: service_started diff --git a/renovate.json5 b/renovate.json5 index 9524045bde..38203138f1 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -43,8 +43,8 @@ "groupName": "featureflagservice", }, { - "matchFileNames": ["src/frauddetectionservice/**"], - "groupName": "frauddetectionservice", + "matchFileNames": ["src/fraud-detection/**"], + "groupName": "fraud-detection", }, { "matchFileNames": ["src/frontend/**"], diff --git a/src/frauddetectionservice/.dockerignore b/src/fraud-detection/.dockerignore similarity index 100% rename from src/frauddetectionservice/.dockerignore rename to src/fraud-detection/.dockerignore diff --git a/src/frauddetectionservice/Dockerfile b/src/fraud-detection/Dockerfile similarity index 77% rename from src/frauddetectionservice/Dockerfile rename to src/fraud-detection/Dockerfile index 1d2a9b58da..abf2029459 100644 --- a/src/frauddetectionservice/Dockerfile +++ b/src/fraud-detection/Dockerfile @@ -6,7 +6,7 @@ FROM --platform=${BUILDPLATFORM} gradle:8-jdk17 AS builder WORKDIR /usr/src/app/ -COPY ./src/frauddetectionservice/ ./ +COPY ./src/fraud-detection/ ./ COPY ./pb/ ./src/main/proto/ RUN gradle shadowJar @@ -17,8 +17,8 @@ FROM gcr.io/distroless/java17-debian11 ARG OTEL_JAVA_AGENT_VERSION WORKDIR /usr/src/app/ -COPY --from=builder /usr/src/app/build/libs/frauddetectionservice-1.0-all.jar ./ +COPY --from=builder /usr/src/app/build/libs/fraud-detection-1.0-all.jar ./ ADD --chmod=644 https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v$OTEL_JAVA_AGENT_VERSION/opentelemetry-javaagent.jar /app/opentelemetry-javaagent.jar ENV JAVA_TOOL_OPTIONS=-javaagent:/app/opentelemetry-javaagent.jar -ENTRYPOINT [ "java", "-jar", "frauddetectionservice-1.0-all.jar" ] +ENTRYPOINT [ "java", "-jar", "fraud-detection-1.0-all.jar" ] diff --git a/src/frauddetectionservice/README.md b/src/fraud-detection/README.md similarity index 85% rename from src/frauddetectionservice/README.md rename to src/fraud-detection/README.md index d618203669..c844776c2e 100644 --- a/src/frauddetectionservice/README.md +++ b/src/fraud-detection/README.md @@ -17,5 +17,5 @@ cp -r ../../pb/ src/main/proto/ To build using Docker run from the repo root: ```sh -docker build -f ./src/frauddetectionservice/Dockerfile . +docker build -f ./src/fraud-detection/Dockerfile . ``` diff --git a/src/frauddetectionservice/build.gradle.kts b/src/fraud-detection/build.gradle.kts similarity index 95% rename from src/frauddetectionservice/build.gradle.kts rename to src/fraud-detection/build.gradle.kts index a9495fbd7c..d1dcc07a6b 100644 --- a/src/frauddetectionservice/build.gradle.kts +++ b/src/fraud-detection/build.gradle.kts @@ -90,9 +90,9 @@ protobuf { } application { - mainClass.set("frauddetectionservice.MainKt") + mainClass.set("frauddetection.MainKt") } tasks.jar { - manifest.attributes["Main-Class"] = "frauddetectionservice.MainKt" + manifest.attributes["Main-Class"] = "frauddetection.MainKt" } diff --git a/src/frauddetectionservice/gradle.properties b/src/fraud-detection/gradle.properties similarity index 100% rename from src/frauddetectionservice/gradle.properties rename to src/fraud-detection/gradle.properties diff --git a/src/frauddetectionservice/gradle/wrapper/gradle-wrapper.jar b/src/fraud-detection/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from src/frauddetectionservice/gradle/wrapper/gradle-wrapper.jar rename to src/fraud-detection/gradle/wrapper/gradle-wrapper.jar diff --git a/src/frauddetectionservice/gradle/wrapper/gradle-wrapper.properties b/src/fraud-detection/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from src/frauddetectionservice/gradle/wrapper/gradle-wrapper.properties rename to src/fraud-detection/gradle/wrapper/gradle-wrapper.properties diff --git a/src/frauddetectionservice/gradlew b/src/fraud-detection/gradlew similarity index 100% rename from src/frauddetectionservice/gradlew rename to src/fraud-detection/gradlew diff --git a/src/frauddetectionservice/gradlew.bat b/src/fraud-detection/gradlew.bat similarity index 100% rename from src/frauddetectionservice/gradlew.bat rename to src/fraud-detection/gradlew.bat diff --git a/src/fraud-detection/settings.gradle.kts b/src/fraud-detection/settings.gradle.kts new file mode 100644 index 0000000000..d9c4193dd3 --- /dev/null +++ b/src/fraud-detection/settings.gradle.kts @@ -0,0 +1,3 @@ + +rootProject.name = "fraud-detection" + diff --git a/src/frauddetectionservice/src/main/kotlin/frauddetectionservice/main.kt b/src/fraud-detection/src/main/kotlin/frauddetection/main.kt similarity index 97% rename from src/frauddetectionservice/src/main/kotlin/frauddetectionservice/main.kt rename to src/fraud-detection/src/main/kotlin/frauddetection/main.kt index 8f8223f518..ac36b66d44 100644 --- a/src/frauddetectionservice/src/main/kotlin/frauddetectionservice/main.kt +++ b/src/fraud-detection/src/main/kotlin/frauddetection/main.kt @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package frauddetectionservice +package frauddetection import org.apache.kafka.clients.consumer.ConsumerConfig.* import org.apache.kafka.clients.consumer.KafkaConsumer @@ -24,7 +24,7 @@ import dev.openfeature.sdk.Value import dev.openfeature.sdk.OpenFeatureAPI const val topic = "orders" -const val groupID = "frauddetectionservice" +const val groupID = "fraud-detection" private val logger: Logger = LogManager.getLogger(groupID) diff --git a/src/frauddetectionservice/src/main/resources/log4j2.xml b/src/fraud-detection/src/main/resources/log4j2.xml similarity index 100% rename from src/frauddetectionservice/src/main/resources/log4j2.xml rename to src/fraud-detection/src/main/resources/log4j2.xml diff --git a/src/frauddetectionservice/settings.gradle.kts b/src/frauddetectionservice/settings.gradle.kts deleted file mode 100644 index 1c98d2e2cf..0000000000 --- a/src/frauddetectionservice/settings.gradle.kts +++ /dev/null @@ -1,3 +0,0 @@ - -rootProject.name = "frauddetectionservice" - From 4c8e43f219ae8d2c302fb9d6c78164017c3314bc Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 23 Dec 2024 13:01:46 -0500 Subject: [PATCH 049/178] [payment] rename paymentservice to payment (#1863) * rename paymentservice to payment * rename paymentservice to payment * rename paymentservice to payment --------- Co-authored-by: Juliano Costa --- .env | 6 +++--- .github/workflows/component-build-images.yml | 4 ++-- .gitignore | 2 +- CHANGELOG.md | 2 ++ docker-compose-tests.yml | 4 ++-- docker-compose.minimal.yml | 18 +++++++++--------- docker-compose.yml | 18 +++++++++--------- docker-gen-proto.sh | 2 +- ide-gen-proto.sh | 2 +- renovate.json5 | 4 ++-- src/checkoutservice/main.go | 4 ++-- src/flagd/demo.flagd.json | 4 ++-- src/{paymentservice => payment}/.dockerignore | 0 src/{paymentservice => payment}/Dockerfile | 6 +++--- src/{paymentservice => payment}/README.md | 2 +- src/{paymentservice => payment}/charge.js | 6 +++--- src/{paymentservice => payment}/index.js | 4 ++-- src/{paymentservice => payment}/logger.js | 0 .../opentelemetry.js | 0 .../package-lock.json | 4 ++-- src/{paymentservice => payment}/package.json | 2 +- .../{paymentservice => payment}/all.yaml | 6 +++--- .../amex-credit-card-not-allowed.yaml | 2 +- .../expired-credit-card.yaml | 2 +- .../invalid-credit-card.yaml | 2 +- .../valid-credit-card.yaml | 2 +- test/tracetesting/run.bash | 6 +++--- 27 files changed, 58 insertions(+), 56 deletions(-) rename src/{paymentservice => payment}/.dockerignore (100%) rename src/{paymentservice => payment}/Dockerfile (82%) rename src/{paymentservice => payment}/README.md (87%) rename src/{paymentservice => payment}/charge.js (95%) rename src/{paymentservice => payment}/index.js (88%) rename src/{paymentservice => payment}/logger.js (100%) rename src/{paymentservice => payment}/opentelemetry.js (100%) rename src/{paymentservice => payment}/package-lock.json (99%) rename src/{paymentservice => payment}/package.json (97%) rename test/tracetesting/{paymentservice => payment}/all.yaml (67%) rename test/tracetesting/{paymentservice => payment}/amex-credit-card-not-allowed.yaml (96%) rename test/tracetesting/{paymentservice => payment}/expired-credit-card.yaml (96%) rename test/tracetesting/{paymentservice => payment}/invalid-credit-card.yaml (96%) rename test/tracetesting/{paymentservice => payment}/valid-credit-card.yaml (96%) diff --git a/.env b/.env index b43ba66093..bca65c3578 100644 --- a/.env +++ b/.env @@ -102,9 +102,9 @@ LOCUST_HEADLESS=false LOAD_GENERATOR_DOCKERFILE=./src/load-generator/Dockerfile # Payment Service -PAYMENT_SERVICE_PORT=50051 -PAYMENT_SERVICE_ADDR=paymentservice:${PAYMENT_SERVICE_PORT} -PAYMENT_SERVICE_DOCKERFILE=./src/paymentservice/Dockerfile +PAYMENT_PORT=50051 +PAYMENT_ADDR=payment:${PAYMENT_PORT} +PAYMENT_DOCKERFILE=./src/payment/Dockerfile # Product Catalog Service PRODUCT_CATALOG_SERVICE_PORT=3550 diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 76b006908b..599328f320 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -103,8 +103,8 @@ jobs: tag_suffix: load-generator context: ./ setup-qemu: true - - file: ./src/paymentservice/Dockerfile - tag_suffix: paymentservice + - file: ./src/payment/Dockerfile + tag_suffix: payment context: ./ setup-qemu: true - file: ./src/productcatalogservice/Dockerfile diff --git a/.gitignore b/.gitignore index a7c2a831f9..401292e0ef 100644 --- a/.gitignore +++ b/.gitignore @@ -52,7 +52,7 @@ test/tracetesting/tracetesting-vars.yaml /src/fraud-detection/src/main/proto /src/frontend/pb/ /src/frontend/protos/ -/src/paymentservice/demo.proto +/src/payment/demo.proto /src/shipping/proto/ /src/currency/proto diff --git a/CHANGELOG.md b/CHANGELOG.md index 627c3de848..9cea672f7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,8 @@ the release. ([#1861](https://github.com/open-telemetry/opentelemetry-demo/pull/1861)) * [fraud-detection] rename frauddetectionservice to fraud-detection ([#1862](https://github.com/open-telemetry/opentelemetry-demo/pull/1862)) +* [payment] rename paymentservice to payment + ([#1863](https://github.com/open-telemetry/opentelemetry-demo/pull/1863)) ## 1.12.0 diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index c2a8810adb..363bc2e37a 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -43,7 +43,7 @@ services: - CURRENCY_ADDR - EMAIL_ADDR - FRONTEND_ADDR - - PAYMENT_SERVICE_ADDR + - PAYMENT_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - RECOMMENDATION_SERVICE_ADDR - SHIPPING_ADDR @@ -73,7 +73,7 @@ services: condition: service_started frontend: condition: service_started - paymentservice: + payment: condition: service_started productcatalogservice: condition: service_started diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 8fe5d0b3c3..8fe30aa9ab 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -102,7 +102,7 @@ services: - CURRENCY_ADDR - EMAIL_ADDR - FLAGD_HOST - - PAYMENT_SERVICE_ADDR + - PAYMENT_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - SHIPPING_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT @@ -116,7 +116,7 @@ services: condition: service_started email: condition: service_started - paymentservice: + payment: condition: service_started productcatalogservice: condition: service_started @@ -351,28 +351,28 @@ services: logging: *logging # Payment service - paymentservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-paymentservice + payment: + image: ${IMAGE_NAME}:${DEMO_VERSION}-payment container_name: payment-service build: context: ./ - dockerfile: ${PAYMENT_SERVICE_DOCKERFILE} + dockerfile: ${PAYMENT_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-paymentservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-payment deploy: resources: limits: memory: 120M restart: unless-stopped ports: - - "${PAYMENT_SERVICE_PORT}" + - "${PAYMENT_PORT}" environment: - FLAGD_HOST - - PAYMENT_SERVICE_PORT + - PAYMENT_PORT - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=paymentservice + - OTEL_SERVICE_NAME=payment depends_on: otel-collector: condition: service_started diff --git a/docker-compose.yml b/docker-compose.yml index 9d392cc4a8..0d2d80aeeb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -135,7 +135,7 @@ services: - CART_ADDR - CURRENCY_ADDR - EMAIL_ADDR - - PAYMENT_SERVICE_ADDR + - PAYMENT_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - SHIPPING_ADDR - KAFKA_SERVICE_ADDR @@ -150,7 +150,7 @@ services: condition: service_started email: condition: service_started - paymentservice: + payment: condition: service_started productcatalogservice: condition: service_started @@ -427,29 +427,29 @@ services: logging: *logging # Payment service - paymentservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-paymentservice + payment: + image: ${IMAGE_NAME}:${DEMO_VERSION}-payment container_name: payment-service build: context: ./ - dockerfile: ${PAYMENT_SERVICE_DOCKERFILE} + dockerfile: ${PAYMENT_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-paymentservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-payment deploy: resources: limits: memory: 120M restart: unless-stopped ports: - - "${PAYMENT_SERVICE_PORT}" + - "${PAYMENT_PORT}" environment: - - PAYMENT_SERVICE_PORT + - PAYMENT_PORT - FLAGD_HOST - FLAGD_PORT - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=paymentservice + - OTEL_SERVICE_NAME=payment depends_on: otel-collector: condition: service_started diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index dfd16526e5..cb18f893e8 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -28,7 +28,7 @@ gen_proto_go checkoutservice #gen_proto_cpp currency #gen_proto_ruby email #gen_proto_ts frontend -#gen_proto_js paymentservice +#gen_proto_js payment gen_proto_go productcatalogservice #gen_proto_php quote gen_proto_python recommendationservice diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index 76ad0f1980..6c7f23ea72 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -73,7 +73,7 @@ gen_proto_go checkoutservice # gen_proto_ruby email gen_proto_ts frontend gen_proto_ts react-native-app -gen_proto_js paymentservice +gen_proto_js payment gen_proto_go productcatalogservice # gen_proto_php quote gen_proto_python recommendationservice diff --git a/renovate.json5 b/renovate.json5 index 38203138f1..231e8c68c5 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -71,8 +71,8 @@ "groupName": "otel-collector", }, { - "matchFileNames": ["src/paymentservice/**"], - "groupName": "paymentservice", + "matchFileNames": ["src/payment/**"], + "groupName": "payment", }, { "matchFileNames": ["src/productcatalogservice/**"], diff --git a/src/checkoutservice/main.go b/src/checkoutservice/main.go index 5ad3afa8ba..3f9c169199 100644 --- a/src/checkoutservice/main.go +++ b/src/checkoutservice/main.go @@ -192,7 +192,7 @@ func main() { svc.emailSvcClient = pb.NewEmailServiceClient(c) defer c.Close() - mustMapEnv(&svc.paymentSvcAddr, "PAYMENT_SERVICE_ADDR") + mustMapEnv(&svc.paymentSvcAddr, "PAYMENT_ADDR") c = mustCreateClient(svc.paymentSvcAddr) svc.paymentSvcClient = pb.NewPaymentServiceClient(c) defer c.Close() @@ -442,7 +442,7 @@ func (cs *checkoutService) convertCurrency(ctx context.Context, from *pb.Money, func (cs *checkoutService) chargeCard(ctx context.Context, amount *pb.Money, paymentInfo *pb.CreditCardInfo) (string, error) { paymentService := cs.paymentSvcClient - if cs.isFeatureFlagEnabled(ctx, "paymentServiceUnreachable") { + if cs.isFeatureFlagEnabled(ctx, "paymentUnreachable") { badAddress := "badAddress:50051" c := mustCreateClient(badAddress) paymentService = pb.NewPaymentServiceClient(c) diff --git a/src/flagd/demo.flagd.json b/src/flagd/demo.flagd.json index 74fb5fcf1d..07439ebf89 100644 --- a/src/flagd/demo.flagd.json +++ b/src/flagd/demo.flagd.json @@ -64,7 +64,7 @@ }, "defaultVariant": "off" }, - "paymentServiceFailure": { + "paymentFailure": { "description": "Fail payment service charge requests n%", "state": "ENABLED", "variants": { @@ -78,7 +78,7 @@ }, "defaultVariant": "off" }, - "paymentServiceUnreachable": { + "paymentUnreachable": { "description": "Payment service is unavailable", "state": "ENABLED", "variants": { diff --git a/src/paymentservice/.dockerignore b/src/payment/.dockerignore similarity index 100% rename from src/paymentservice/.dockerignore rename to src/payment/.dockerignore diff --git a/src/paymentservice/Dockerfile b/src/payment/Dockerfile similarity index 82% rename from src/paymentservice/Dockerfile rename to src/payment/Dockerfile index fb78bc3b17..e1f5e03278 100644 --- a/src/paymentservice/Dockerfile +++ b/src/payment/Dockerfile @@ -6,7 +6,7 @@ FROM node:22-alpine AS build WORKDIR /usr/src/app/ -COPY ./src/paymentservice/package*.json ./ +COPY ./src/payment/package*.json ./ RUN apk add --no-cache python3 make g++ && npm ci --omit=dev @@ -19,8 +19,8 @@ WORKDIR /usr/src/app/ ENV NODE_ENV=production COPY --chown=node:node --from=build /usr/src/app/node_modules/ ./node_modules/ -COPY ./src/paymentservice/ ./ +COPY ./src/payment/ ./ COPY ./pb/demo.proto ./ -EXPOSE ${PAYMENT_SERVICE_PORT} +EXPOSE ${PAYMENT_PORT} ENTRYPOINT [ "npm", "run", "start" ] diff --git a/src/paymentservice/README.md b/src/payment/README.md similarity index 87% rename from src/paymentservice/README.md rename to src/payment/README.md index 1f73c2d954..62194705b4 100644 --- a/src/paymentservice/README.md +++ b/src/payment/README.md @@ -12,5 +12,5 @@ Copy the `demo.proto` file to this directory and run `npm ci` From the root directory, run: ```sh -docker compose build paymentservice +docker compose build payment ``` diff --git a/src/paymentservice/charge.js b/src/payment/charge.js similarity index 95% rename from src/paymentservice/charge.js rename to src/payment/charge.js index 4d02ba24e8..588cc0754e 100644 --- a/src/paymentservice/charge.js +++ b/src/payment/charge.js @@ -9,8 +9,8 @@ const { FlagdProvider } = require('@openfeature/flagd-provider'); const flagProvider = new FlagdProvider(); const logger = require('./logger'); -const tracer = trace.getTracer('paymentservice'); -const meter = metrics.getMeter('paymentservice'); +const tracer = trace.getTracer('payment'); +const meter = metrics.getMeter('payment'); const transactionsCounter = meter.createCounter('app.payment.transactions'); const LOYALTY_LEVEL = ['platinum', 'gold', 'silver', 'bronze']; @@ -26,7 +26,7 @@ module.exports.charge = async request => { await OpenFeature.setProviderAndWait(flagProvider); - const numberVariant = await OpenFeature.getClient().getNumberValue("paymentServiceFailure", 0); + const numberVariant = await OpenFeature.getClient().getNumberValue("paymentFailure", 0); if (numberVariant > 0) { // n% chance to fail with app.loyalty.level=gold diff --git a/src/paymentservice/index.js b/src/payment/index.js similarity index 88% rename from src/paymentservice/index.js rename to src/payment/index.js index c068c31082..362059e2a6 100644 --- a/src/paymentservice/index.js +++ b/src/payment/index.js @@ -45,12 +45,12 @@ server.addService(health.service, new health.Implementation({ server.addService(otelDemoPackage.oteldemo.PaymentService.service, { charge: chargeServiceHandler }) -server.bindAsync(`0.0.0.0:${process.env['PAYMENT_SERVICE_PORT']}`, grpc.ServerCredentials.createInsecure(), (err, port) => { +server.bindAsync(`0.0.0.0:${process.env['PAYMENT_PORT']}`, grpc.ServerCredentials.createInsecure(), (err, port) => { if (err) { return logger.error({ err }) } - logger.info(`PaymentService gRPC server started on port ${port}`) + logger.info(`payment gRPC server started on port ${port}`) }) process.once('SIGINT', closeGracefully) diff --git a/src/paymentservice/logger.js b/src/payment/logger.js similarity index 100% rename from src/paymentservice/logger.js rename to src/payment/logger.js diff --git a/src/paymentservice/opentelemetry.js b/src/payment/opentelemetry.js similarity index 100% rename from src/paymentservice/opentelemetry.js rename to src/payment/opentelemetry.js diff --git a/src/paymentservice/package-lock.json b/src/payment/package-lock.json similarity index 99% rename from src/paymentservice/package-lock.json rename to src/payment/package-lock.json index 881fb4216b..8128bed3ab 100644 --- a/src/paymentservice/package-lock.json +++ b/src/payment/package-lock.json @@ -1,11 +1,11 @@ { - "name": "paymentservice", + "name": "payment", "version": "1.12.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "paymentservice", + "name": "payment", "version": "1.12.0", "license": "ISC", "dependencies": { diff --git a/src/paymentservice/package.json b/src/payment/package.json similarity index 97% rename from src/paymentservice/package.json rename to src/payment/package.json index 2c0365b0c1..607dcf02c9 100644 --- a/src/paymentservice/package.json +++ b/src/payment/package.json @@ -1,5 +1,5 @@ { - "name": "paymentservice", + "name": "payment", "description": "Payment Service", "repository": "https://github.com/opentelemetry/opentelemetry-demo", "main": "index.js", diff --git a/test/tracetesting/paymentservice/all.yaml b/test/tracetesting/payment/all.yaml similarity index 67% rename from test/tracetesting/paymentservice/all.yaml rename to test/tracetesting/payment/all.yaml index e295034dce..c7d08d8944 100644 --- a/test/tracetesting/paymentservice/all.yaml +++ b/test/tracetesting/payment/all.yaml @@ -3,9 +3,9 @@ type: TestSuite spec: - id: payment-service-all - name: 'Payment Service' - description: Run all Payment Service tests enabled in sequence + id: payment-all + name: 'Payment' + description: Run all Payment tests enabled in sequence steps: - ./valid-credit-card.yaml - ./invalid-credit-card.yaml diff --git a/test/tracetesting/paymentservice/amex-credit-card-not-allowed.yaml b/test/tracetesting/payment/amex-credit-card-not-allowed.yaml similarity index 96% rename from test/tracetesting/paymentservice/amex-credit-card-not-allowed.yaml rename to test/tracetesting/payment/amex-credit-card-not-allowed.yaml index ab3629df30..6ad88e7885 100644 --- a/test/tracetesting/paymentservice/amex-credit-card-not-allowed.yaml +++ b/test/tracetesting/payment/amex-credit-card-not-allowed.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:PAYMENT_SERVICE_ADDR} + address: ${var:PAYMENT_ADDR} method: oteldemo.PaymentService.Charge request: |- { diff --git a/test/tracetesting/paymentservice/expired-credit-card.yaml b/test/tracetesting/payment/expired-credit-card.yaml similarity index 96% rename from test/tracetesting/paymentservice/expired-credit-card.yaml rename to test/tracetesting/payment/expired-credit-card.yaml index 27963f28d7..c2f9d5d020 100644 --- a/test/tracetesting/paymentservice/expired-credit-card.yaml +++ b/test/tracetesting/payment/expired-credit-card.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:PAYMENT_SERVICE_ADDR} + address: ${var:PAYMENT_ADDR} method: oteldemo.PaymentService.Charge request: |- { diff --git a/test/tracetesting/paymentservice/invalid-credit-card.yaml b/test/tracetesting/payment/invalid-credit-card.yaml similarity index 96% rename from test/tracetesting/paymentservice/invalid-credit-card.yaml rename to test/tracetesting/payment/invalid-credit-card.yaml index a6028f66a2..6ab64de72a 100644 --- a/test/tracetesting/paymentservice/invalid-credit-card.yaml +++ b/test/tracetesting/payment/invalid-credit-card.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:PAYMENT_SERVICE_ADDR} + address: ${var:PAYMENT_ADDR} method: oteldemo.PaymentService.Charge request: |- { diff --git a/test/tracetesting/paymentservice/valid-credit-card.yaml b/test/tracetesting/payment/valid-credit-card.yaml similarity index 96% rename from test/tracetesting/paymentservice/valid-credit-card.yaml rename to test/tracetesting/payment/valid-credit-card.yaml index 32c1001332..3bc7a657cd 100644 --- a/test/tracetesting/paymentservice/valid-credit-card.yaml +++ b/test/tracetesting/payment/valid-credit-card.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:PAYMENT_SERVICE_ADDR} + address: ${var:PAYMENT_ADDR} method: oteldemo.PaymentService.Charge request: |- { diff --git a/test/tracetesting/run.bash b/test/tracetesting/run.bash index aba367b86f..ac92e25dd9 100755 --- a/test/tracetesting/run.bash +++ b/test/tracetesting/run.bash @@ -8,7 +8,7 @@ set -e # Availalble services to test -ALL_SERVICES=("ad" "cart" "currency" "checkoutservice" "frontend" "email" "paymentservice" "productcatalogservice" "recommendationservice" "shipping") +ALL_SERVICES=("ad" "cart" "currency" "checkoutservice" "frontend" "email" "payment" "productcatalogservice" "recommendationservice" "shipping") ## Script variables # Will contain the list of services to test @@ -46,8 +46,8 @@ spec: value: $EMAIL_ADDR - key: FRONTEND_ADDR value: $FRONTEND_ADDR - - key: PAYMENT_SERVICE_ADDR - value: $PAYMENT_SERVICE_ADDR + - key: PAYMENT_ADDR + value: $PAYMENT_ADDR - key: PRODUCT_CATALOG_SERVICE_ADDR value: $PRODUCT_CATALOG_SERVICE_ADDR - key: RECOMMENDATION_SERVICE_ADDR From 2210b5bf48b18a7faf96599234b16027c5284a8a Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 23 Dec 2024 14:10:20 -0500 Subject: [PATCH 050/178] [recommendation] rename recommendationservice to recommendation (#1865) --- .env | 6 +++--- .github/workflows/component-build-images.yml | 4 ++-- .licenserc.json | 4 ++-- CHANGELOG.md | 2 ++ Makefile | 2 +- docker-compose-tests.yml | 4 ++-- docker-compose.minimal.yml | 18 +++++++++--------- docker-compose.yml | 18 +++++++++--------- docker-gen-proto.sh | 2 +- ide-gen-proto.sh | 2 +- renovate.json5 | 4 ++-- src/flagd/demo.flagd.json | 2 +- .../gateways/rpc/Recommendations.gateway.ts | 4 ++-- src/frontend/next.config.js | 4 ++-- .../Dockerfile | 6 +++--- .../README.md | 2 +- .../demo_pb2.py | 0 .../demo_pb2_grpc.py | 0 .../genproto/Dockerfile | 0 .../logger.py | 0 .../metrics.py | 0 .../recommendation_server.py | 6 +++--- .../requirements.txt | 0 .../all.yaml | 0 .../list.yaml | 2 +- test/tracetesting/run.bash | 6 +++--- 26 files changed, 50 insertions(+), 48 deletions(-) rename src/{recommendationservice => recommendation}/Dockerfile (82%) rename src/{recommendationservice => recommendation}/README.md (87%) rename src/{recommendationservice => recommendation}/demo_pb2.py (100%) rename src/{recommendationservice => recommendation}/demo_pb2_grpc.py (100%) rename src/{recommendationservice => recommendation}/genproto/Dockerfile (100%) rename src/{recommendationservice => recommendation}/logger.py (100%) rename src/{recommendationservice => recommendation}/metrics.py (100%) rename src/{recommendationservice => recommendation}/recommendation_server.py (96%) rename src/{recommendationservice => recommendation}/requirements.txt (100%) rename test/tracetesting/{recommendationservice => recommendation}/all.yaml (100%) rename test/tracetesting/{recommendationservice => recommendation}/list.yaml (94%) diff --git a/.env b/.env index bca65c3578..1779f87def 100644 --- a/.env +++ b/.env @@ -117,9 +117,9 @@ QUOTE_ADDR=http://quote:${QUOTE_PORT} QUOTE_DOCKERFILE=./src/quote/Dockerfile # Recommendation Service -RECOMMENDATION_SERVICE_PORT=9001 -RECOMMENDATION_SERVICE_ADDR=recommendationservice:${RECOMMENDATION_SERVICE_PORT} -RECOMMENDATION_SERVICE_DOCKERFILE=./src/recommendationservice/Dockerfile +RECOMMENDATION_PORT=9001 +RECOMMENDATION_ADDR=recommendation:${RECOMMENDATION_PORT} +RECOMMENDATION_DOCKERFILE=./src/recommendation/Dockerfile # Shipping Service SHIPPING_PORT=50050 diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 599328f320..b1e5df9dc6 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -115,8 +115,8 @@ jobs: tag_suffix: quote context: ./ setup-qemu: true - - file: ./src/recommendationservice/Dockerfile - tag_suffix: recommendationservice + - file: ./src/recommendation/Dockerfile + tag_suffix: recommendation context: ./ setup-qemu: true - file: ./src/shipping/Dockerfile diff --git a/.licenserc.json b/.licenserc.json index 6c3d85a679..350f284092 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -51,8 +51,8 @@ "src/react-native-app/android/.gradle/", "src/react-native-app/.expo/", "src/react-native-app/expo-env.d.ts", - "src/recommendationservice/demo_pb2.py", - "src/recommendationservice/demo_pb2_grpc.py", + "src/recommendation/demo_pb2.py", + "src/recommendation/demo_pb2_grpc.py", "internal/tools/" ] } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cea672f7c..2861f1bcc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,8 @@ the release. ([#1862](https://github.com/open-telemetry/opentelemetry-demo/pull/1862)) * [payment] rename paymentservice to payment ([#1863](https://github.com/open-telemetry/opentelemetry-demo/pull/1863)) +* [recommendation] rename recommendationservice to recommendation + ([#1865](https://github.com/open-telemetry/opentelemetry-demo/pull/1865)) ## 1.12.0 diff --git a/Makefile b/Makefile index 7f6e6640b7..7bb2f27153 100644 --- a/Makefile +++ b/Makefile @@ -140,7 +140,7 @@ docker-generate-protobuf: .PHONY: clean clean: rm -rf ./src/{checkoutservice,productcatalogservice}/genproto/oteldemo/ - rm -rf ./src/recommendationservice/{demo_pb2,demo_pb2_grpc}.py + rm -rf ./src/recommendation/{demo_pb2,demo_pb2_grpc}.py .PHONY: check-clean-work-tree check-clean-work-tree: diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index 363bc2e37a..dc2714c84a 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -45,7 +45,7 @@ services: - FRONTEND_ADDR - PAYMENT_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - - RECOMMENDATION_SERVICE_ADDR + - RECOMMENDATION_ADDR - SHIPPING_ADDR - KAFKA_SERVICE_ADDR extra_hosts: @@ -79,7 +79,7 @@ services: condition: service_started quote: condition: service_started - recommendationservice: + recommendation: condition: service_started shipping: condition: service_started diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 8fe30aa9ab..2066c6b2ac 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -204,7 +204,7 @@ services: - CHECKOUT_SERVICE_ADDR - CURRENCY_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - - RECOMMENDATION_SERVICE_ADDR + - RECOMMENDATION_ADDR - SHIPPING_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES} @@ -229,7 +229,7 @@ services: condition: service_started quote: condition: service_started - recommendationservice: + recommendation: condition: service_started shipping: condition: service_started @@ -435,30 +435,30 @@ services: logging: *logging # Recommendation service - recommendationservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-recommendationservice + recommendation: + image: ${IMAGE_NAME}:${DEMO_VERSION}-recommendation container_name: recommendation-service build: context: ./ - dockerfile: ${RECOMMENDATION_SERVICE_DOCKERFILE} + dockerfile: ${RECOMMENDATION_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-recommendationservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-recommendation deploy: resources: limits: memory: 50M restart: unless-stopped ports: - - "${RECOMMENDATION_SERVICE_PORT}" + - "${RECOMMENDATION_PORT}" environment: - FLAGD_HOST - - RECOMMENDATION_SERVICE_PORT + - RECOMMENDATION_PORT - PRODUCT_CATALOG_SERVICE_ADDR - OTEL_PYTHON_LOG_CORRELATION=true - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=recommendationservice + - OTEL_SERVICE_NAME=recommendation - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python depends_on: productcatalogservice: diff --git a/docker-compose.yml b/docker-compose.yml index 0d2d80aeeb..22ee8e86ac 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -276,7 +276,7 @@ services: - CHECKOUT_SERVICE_ADDR - CURRENCY_ADDR - PRODUCT_CATALOG_SERVICE_ADDR - - RECOMMENDATION_SERVICE_ADDR + - RECOMMENDATION_ADDR - SHIPPING_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES} @@ -301,7 +301,7 @@ services: condition: service_started quote: condition: service_started - recommendationservice: + recommendation: condition: service_started shipping: condition: service_started @@ -517,23 +517,23 @@ services: logging: *logging # Recommendation service - recommendationservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-recommendationservice + recommendation: + image: ${IMAGE_NAME}:${DEMO_VERSION}-recommendation container_name: recommendation-service build: context: ./ - dockerfile: ${RECOMMENDATION_SERVICE_DOCKERFILE} + dockerfile: ${RECOMMENDATION_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-recommendationservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-recommendation deploy: resources: limits: memory: 500M # This is high to enable supporting the recommendationCache feature flag use case restart: unless-stopped ports: - - "${RECOMMENDATION_SERVICE_PORT}" + - "${RECOMMENDATION_PORT}" environment: - - RECOMMENDATION_SERVICE_PORT + - RECOMMENDATION_PORT - PRODUCT_CATALOG_SERVICE_ADDR - FLAGD_HOST - FLAGD_PORT @@ -541,7 +541,7 @@ services: - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=recommendationservice + - OTEL_SERVICE_NAME=recommendation - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python depends_on: productcatalogservice: diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index cb18f893e8..f29fdcfcdb 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -31,5 +31,5 @@ gen_proto_go checkoutservice #gen_proto_js payment gen_proto_go productcatalogservice #gen_proto_php quote -gen_proto_python recommendationservice +gen_proto_python recommendation #gen_proto_rust shipping diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index 6c7f23ea72..aabbdf5f38 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -76,5 +76,5 @@ gen_proto_ts react-native-app gen_proto_js payment gen_proto_go productcatalogservice # gen_proto_php quote -gen_proto_python recommendationservice +gen_proto_python recommendation gen_proto_rust shipping diff --git a/renovate.json5 b/renovate.json5 index 231e8c68c5..7155995f2a 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -87,8 +87,8 @@ "groupName": "quote", }, { - "matchFileNames": ["src/recommendationservice/**"], - "groupName": "recommendationservice", + "matchFileNames": ["src/recommendation/**"], + "groupName": "recommendation", }, { "matchFileNames": ["src/shipping/**"], diff --git a/src/flagd/demo.flagd.json b/src/flagd/demo.flagd.json index 07439ebf89..4425e72415 100644 --- a/src/flagd/demo.flagd.json +++ b/src/flagd/demo.flagd.json @@ -10,7 +10,7 @@ }, "defaultVariant": "off" }, - "recommendationServiceCacheFailure": { + "recommendationCacheFailure": { "description": "Fail recommendation service cache", "state": "ENABLED", "variants": { diff --git a/src/frontend/gateways/rpc/Recommendations.gateway.ts b/src/frontend/gateways/rpc/Recommendations.gateway.ts index 62fcd6dd5c..c58a47032b 100644 --- a/src/frontend/gateways/rpc/Recommendations.gateway.ts +++ b/src/frontend/gateways/rpc/Recommendations.gateway.ts @@ -4,9 +4,9 @@ import { ChannelCredentials } from '@grpc/grpc-js'; import { ListRecommendationsResponse, RecommendationServiceClient } from '../../protos/demo'; -const { RECOMMENDATION_SERVICE_ADDR = '' } = process.env; +const { RECOMMENDATION_ADDR = '' } = process.env; -const client = new RecommendationServiceClient(RECOMMENDATION_SERVICE_ADDR, ChannelCredentials.createInsecure()); +const client = new RecommendationServiceClient(RECOMMENDATION_ADDR, ChannelCredentials.createInsecure()); const RecommendationsGateway = () => ({ listRecommendations(userId: string, productIds: string[]) { diff --git a/src/frontend/next.config.js b/src/frontend/next.config.js index eac4615be9..98e3e53f48 100755 --- a/src/frontend/next.config.js +++ b/src/frontend/next.config.js @@ -18,7 +18,7 @@ const { CHECKOUT_SERVICE_ADDR = '', CURRENCY_ADDR = '', PRODUCT_CATALOG_SERVICE_ADDR = '', - RECOMMENDATION_SERVICE_ADDR = '', + RECOMMENDATION_ADDR = '', SHIPPING_ADDR = '', ENV_PLATFORM = '', OTEL_EXPORTER_OTLP_TRACES_ENDPOINT = '', @@ -50,7 +50,7 @@ const nextConfig = { CHECKOUT_SERVICE_ADDR, CURRENCY_ADDR, PRODUCT_CATALOG_SERVICE_ADDR, - RECOMMENDATION_SERVICE_ADDR, + RECOMMENDATION_ADDR, SHIPPING_ADDR, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT, NEXT_PUBLIC_PLATFORM: ENV_PLATFORM, diff --git a/src/recommendationservice/Dockerfile b/src/recommendation/Dockerfile similarity index 82% rename from src/recommendationservice/Dockerfile rename to src/recommendation/Dockerfile index 5a4ee45fc0..8e1d8168f5 100644 --- a/src/recommendationservice/Dockerfile +++ b/src/recommendation/Dockerfile @@ -13,7 +13,7 @@ RUN apt-get -qq update \ && rm -rf /var/lib/apt/lists/* WORKDIR /usr/src/app/ -COPY ./src/recommendationservice/requirements.txt ./ +COPY ./src/recommendation/requirements.txt ./ RUN pip install --upgrade pip RUN pip install --prefix="/reqs" -r requirements.txt @@ -24,9 +24,9 @@ RUN pip install --prefix="/reqs" -r requirements.txt FROM base AS runtime WORKDIR /usr/src/app/ COPY --from=builder /reqs /usr/local -COPY ./src/recommendationservice/ ./ +COPY ./src/recommendation/ ./ RUN opentelemetry-bootstrap -a install -EXPOSE ${RECOMMENDATION_SERVICE_PORT} +EXPOSE ${RECOMMENDATION_PORT} ENTRYPOINT [ "opentelemetry-instrument", "python", "recommendation_server.py" ] diff --git a/src/recommendationservice/README.md b/src/recommendation/README.md similarity index 87% rename from src/recommendationservice/README.md rename to src/recommendation/README.md index cf6e386aaa..ec0df489d6 100644 --- a/src/recommendationservice/README.md +++ b/src/recommendation/README.md @@ -16,5 +16,5 @@ make docker-generate-protobuf From the root directory, run: ```sh -docker compose build recommendationservice +docker compose build recommendation ``` diff --git a/src/recommendationservice/demo_pb2.py b/src/recommendation/demo_pb2.py similarity index 100% rename from src/recommendationservice/demo_pb2.py rename to src/recommendation/demo_pb2.py diff --git a/src/recommendationservice/demo_pb2_grpc.py b/src/recommendation/demo_pb2_grpc.py similarity index 100% rename from src/recommendationservice/demo_pb2_grpc.py rename to src/recommendation/demo_pb2_grpc.py diff --git a/src/recommendationservice/genproto/Dockerfile b/src/recommendation/genproto/Dockerfile similarity index 100% rename from src/recommendationservice/genproto/Dockerfile rename to src/recommendation/genproto/Dockerfile diff --git a/src/recommendationservice/logger.py b/src/recommendation/logger.py similarity index 100% rename from src/recommendationservice/logger.py rename to src/recommendation/logger.py diff --git a/src/recommendationservice/metrics.py b/src/recommendation/metrics.py similarity index 100% rename from src/recommendationservice/metrics.py rename to src/recommendation/metrics.py diff --git a/src/recommendationservice/recommendation_server.py b/src/recommendation/recommendation_server.py similarity index 96% rename from src/recommendationservice/recommendation_server.py rename to src/recommendation/recommendation_server.py index 1a6826d80d..fd25359ea9 100644 --- a/src/recommendationservice/recommendation_server.py +++ b/src/recommendation/recommendation_server.py @@ -75,7 +75,7 @@ def get_product_list(request_product_ids): request_product_ids = request_product_ids_str.split(',') # Feature flag scenario - Cache Leak - if check_feature_flag("recommendationServiceCacheFailure"): + if check_feature_flag("recommendationCacheFailure"): span.set_attribute("app.recommendation.cache_enabled", True) if random.random() < 0.5 or first_run: first_run = False @@ -123,7 +123,7 @@ def must_map_env(key: str): def check_feature_flag(flag_name: str): # Initialize OpenFeature client = api.get_client() - return client.get_boolean_value("recommendationServiceCacheFailure", False) + return client.get_boolean_value("recommendationCacheFailure", False) if __name__ == "__main__": @@ -166,7 +166,7 @@ def check_feature_flag(flag_name: str): health_pb2_grpc.add_HealthServicer_to_server(service, server) # Start server - port = must_map_env('RECOMMENDATION_SERVICE_PORT') + port = must_map_env('RECOMMENDATION_PORT') server.add_insecure_port(f'[::]:{port}') server.start() logger.info(f'Recommendation service started, listening on port {port}') diff --git a/src/recommendationservice/requirements.txt b/src/recommendation/requirements.txt similarity index 100% rename from src/recommendationservice/requirements.txt rename to src/recommendation/requirements.txt diff --git a/test/tracetesting/recommendationservice/all.yaml b/test/tracetesting/recommendation/all.yaml similarity index 100% rename from test/tracetesting/recommendationservice/all.yaml rename to test/tracetesting/recommendation/all.yaml diff --git a/test/tracetesting/recommendationservice/list.yaml b/test/tracetesting/recommendation/list.yaml similarity index 94% rename from test/tracetesting/recommendationservice/list.yaml rename to test/tracetesting/recommendation/list.yaml index 2478bd6dc0..177628ec7e 100644 --- a/test/tracetesting/recommendationservice/list.yaml +++ b/test/tracetesting/recommendation/list.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:RECOMMENDATION_SERVICE_ADDR} + address: ${var:RECOMMENDATION_ADDR} method: oteldemo.RecommendationService.ListRecommendations request: |- { diff --git a/test/tracetesting/run.bash b/test/tracetesting/run.bash index ac92e25dd9..15c15263c2 100755 --- a/test/tracetesting/run.bash +++ b/test/tracetesting/run.bash @@ -8,7 +8,7 @@ set -e # Availalble services to test -ALL_SERVICES=("ad" "cart" "currency" "checkoutservice" "frontend" "email" "payment" "productcatalogservice" "recommendationservice" "shipping") +ALL_SERVICES=("ad" "cart" "currency" "checkoutservice" "frontend" "email" "payment" "productcatalogservice" "recommendation" "shipping") ## Script variables # Will contain the list of services to test @@ -50,8 +50,8 @@ spec: value: $PAYMENT_ADDR - key: PRODUCT_CATALOG_SERVICE_ADDR value: $PRODUCT_CATALOG_SERVICE_ADDR - - key: RECOMMENDATION_SERVICE_ADDR - value: $RECOMMENDATION_SERVICE_ADDR + - key: RECOMMENDATION_ADDR + value: $RECOMMENDATION_ADDR - key: SHIPPING_ADDR value: $SHIPPING_ADDR - key: KAFKA_SERVICE_ADDR From 19cbfeaca81d6c1a728183386721b98c52001b81 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 23 Dec 2024 14:15:34 -0500 Subject: [PATCH 051/178] [react-native-app] cleanup build instructions (#1860) * cleanup build instructions * cleanup build instructions * cleanup build instructions --------- Co-authored-by: Juliano Costa --- src/react-native-app/README.md | 143 +++++++++++++++++---------------- 1 file changed, 74 insertions(+), 69 deletions(-) diff --git a/src/react-native-app/README.md b/src/react-native-app/README.md index 88b2bd3b87..0c9eb2c1dd 100644 --- a/src/react-native-app/README.md +++ b/src/react-native-app/README.md @@ -1,6 +1,7 @@ # Example React Native app -This was created using [`npx create-expo-app@latest`](https://reactnative.dev/docs/environment-setup#start-a-new-react-native-project-with-expo) +This was created using +[`npx create-expo-app@latest`](https://reactnative.dev/docs/environment-setup#start-a-new-react-native-project-with-expo) Content was taken from the web app example in src/frontend and modified to work in a React Native environment. @@ -17,102 +18,122 @@ make start # or start-minimal ## Building the app Unlike the other components under src/ which run within containers this -app must be built and then run on a mobile simulator on your machine or a physical -device. If this is your first time running a React Native app then in order to -execute the steps under "Build on your host machine" you will need to setup your -local environment for Android or iOS development or both following -[this guide](https://reactnative.dev/docs/set-up-your-environment). Alternatively -for Android you can instead follow the steps under "Build within a container" to -leverage a container to build the app's apk for you. +app must be built and then run on a mobile simulator on your machine or a +physical device. If this is your first time running a React Native app then in +order to execute the steps under "Build on your host machine" you will need to +setup your local environment for Android or iOS development or both following +[this guide](https://reactnative.dev/docs/set-up-your-environment). +Alternatively for Android you can instead follow the steps under "Build within a +container" to leverage a container to build the app's apk for you. ### Build on your host machine -Build and run the React Native app for a given platform by navigating to this folder -and running: +Before building the app you will need to install the dependencies for the app. ```bash cd src/react-native-app npm install ``` -To run on Android: +#### Android: Build and run app + +To run on Android, the following command will compile the Android app and deploy +it to a running Android simulator or connected device. It will also start a +a server to provide the JS Bundle required by the app. ```bash npm run android ``` -Note that for the above command a server is also spun up to serve the JS bundle -to the deployed app. +#### iOS: Setup dependencies -To run on iOS you may find it cleanest to build through the XCode IDE. First spin -up the react native dev server with the following (feel free to ignore the output -commands referring to opening an iOS simulator, we'll do that directly through -XCode in a later step): +Before building for iOS you will need to setup the iOS dependency management +using CocoaPods. This command only needs to be run the first time before +building the app for iOS. ```bash -npm run start +cd ios && pod install && cd .. ``` -Then install the pods for the project: +#### iOS: Build and run with XCode -```bash -cd ios -pod install -``` - -Note that the above is the quickest way to get going but you may end up with -slightly different versions of the Pods than what has been committed to this repo, -in order to install the precise versions first setup [rbenv](https://github.com/rbenv/rbenv#installation) -followed by: +To run on iOS you may find it cleanest to build through the XCode IDE. In order +to start a server to provide the JS Bundle, run the following command (feel free +to ignore the output commands referring to opening an iOS simulator, we'll do +that directly through XCode in the next step). ```bash -rbenv install 2.7.6 # the version of ruby we've pinned for this app -bundle install -cd ios -bundle exec pod install +npm run start ``` -Then open XCode, open this as an existing project by opening `src/react-native-app/ios/react-native-app.xcworkspace` -then trigger the build by hitting the Play button or from the menu using Product->Run. +Then open XCode, open this as an existing project by opening +`src/react-native-app/ios/react-native-app.xcworkspace` then trigger the build +by hitting the Play button or from the menu using Product->Run. + +#### iOS: Build and run from the command-line -Or alternatively build and run from the command-line: +You can build and run the app using the command line with the following +command. This will compile the iOS app and deploy it to a running iOS simulator +and start a server to provide the JS Bundle. ```bash npm run ios ``` -Note that for the above command a server is also spun up to serve the JS bundle -to the deployed apps. - ### Build within a container For Android builds you can produce an apk using Docker without requiring the dev -tools to be installed on your host. From the project root run: +tools to be installed on your host. From this repository root run the +following command. ```bash make build-react-native-android ``` -Or directly from this folder using: +Or directly from this folder using. ```bash docker build -f android.Dockerfile --platform=linux/amd64 --output=. . ``` -This will produce `react-native-app.apk` in the directory where you ran the command. -If you have an Android emulator running on your machine then you can simply drag -and drop this file onto the emulator's window in order to install it following -[these steps](https://developer.android.com/studio/run/emulator-install-add-files). - -TODO: For a physical device you can install this by sending the apk file to your -device, giving the "Install unknown apps" permission to the app you will be opening -the file with, and then installing it. However this won't be able to hit the APIs -because they are hard-coded to be localhost, need those to be configurable before -this method would work. +This will create a `react-native-app.apk` file in the directory where you ran +the command. If you have an Android emulator running on your machine then you +can drag and drop this file onto the emulator's window in order to install it. ## Troubleshooting -### iOS build issues +### JS Bundle: build issues + +Try removing the `src/react-native-app/node_modules/` folder and then re-run +`npm install` from inside `src/react-native-app`. + +### Android: build app issues + +Try stopping and cleaning local services (in case there are unknown issues +related to the start of the app). + +```bash +cd src/react-native-app/android +./gradlew --stop // stop daemons +rm -rf ~/.gradle/caches/ +``` + +### iOS: pod install issues + +Note that the above is the quickest way to get going but you may end up with +slightly different versions of the Pods than what has been committed to this +repository, in order to install the precise versions first setup +[rbenv](https://github.com/rbenv/rbenv#installation) followed by the following +commands. + +```bash +rbenv install 2.7.6 # the version of ruby we've pinned for this app +bundle install +cd ios +bundle exec pod install +``` + +### iOS: build app issues If you see a build failure related to pods try forcing a clean install with and then attempt another build after: @@ -126,25 +147,9 @@ then attempt another build after: pod install --repo-update --verbose ``` -If there is an error compiling or running the app try closing any open simulators -and clearing all derived data: +If there is an error compiling or running the app try closing any open +simulators and clearing all derived data: ```bash rm -rf ~/Library/Developer/Xcode/DerivedData ``` - -### Android build issues - -Try stopping and cleaning local services (in case there are unknown issues related -to the start of the app): - -```bash - cd src/react-native-app/android - ./gradlew --stop // stop daemons - rm -rf ~/.gradle/caches/ -``` - -### JS build issues - -Try removing the `src/react-native-app/node_modules/` folder and then re-run -`npm install` from inside `src/react-native-app`. From 7543c595d9e43cda0433bf8461940022152f302f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Dec 2024 15:53:13 +0100 Subject: [PATCH 052/178] build(deps): bump the go-production-dependencies group across 2 directories with 1 update (#1869) --- src/checkoutservice/genproto/oteldemo/demo.pb.go | 2 +- src/checkoutservice/go.mod | 2 +- src/checkoutservice/go.sum | 4 ++-- src/productcatalogservice/genproto/oteldemo/demo.pb.go | 2 +- src/productcatalogservice/go.mod | 2 +- src/productcatalogservice/go.sum | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/checkoutservice/genproto/oteldemo/demo.pb.go b/src/checkoutservice/genproto/oteldemo/demo.pb.go index 3cc8230359..15b777ede0 100644 --- a/src/checkoutservice/genproto/oteldemo/demo.pb.go +++ b/src/checkoutservice/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.0 +// protoc-gen-go v1.36.1 // protoc v4.24.4 // source: demo.proto diff --git a/src/checkoutservice/go.mod b/src/checkoutservice/go.mod index 479cf7812f..66a4f1484c 100644 --- a/src/checkoutservice/go.mod +++ b/src/checkoutservice/go.mod @@ -22,7 +22,7 @@ require ( go.opentelemetry.io/otel/trace v1.33.0 google.golang.org/grpc v1.69.2 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.36.0 + google.golang.org/protobuf v1.36.1 ) require ( diff --git a/src/checkoutservice/go.sum b/src/checkoutservice/go.sum index c599cae4d7..a0ac4dffe3 100644 --- a/src/checkoutservice/go.sum +++ b/src/checkoutservice/go.sum @@ -265,8 +265,8 @@ google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.36.0 h1:mjIs9gYtt56AzC4ZaffQuh88TZurBGhIJMBZGSxNerQ= -google.golang.org/protobuf v1.36.0/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= +google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/src/productcatalogservice/genproto/oteldemo/demo.pb.go b/src/productcatalogservice/genproto/oteldemo/demo.pb.go index 3cc8230359..15b777ede0 100644 --- a/src/productcatalogservice/genproto/oteldemo/demo.pb.go +++ b/src/productcatalogservice/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.0 +// protoc-gen-go v1.36.1 // protoc v4.24.4 // source: demo.proto diff --git a/src/productcatalogservice/go.mod b/src/productcatalogservice/go.mod index 341dfe61e5..334fa165f1 100644 --- a/src/productcatalogservice/go.mod +++ b/src/productcatalogservice/go.mod @@ -19,7 +19,7 @@ require ( go.opentelemetry.io/otel/trace v1.33.0 google.golang.org/grpc v1.69.2 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.36.0 + google.golang.org/protobuf v1.36.1 ) require ( diff --git a/src/productcatalogservice/go.sum b/src/productcatalogservice/go.sum index 47ac9518b2..2c95904b8d 100644 --- a/src/productcatalogservice/go.sum +++ b/src/productcatalogservice/go.sum @@ -193,8 +193,8 @@ google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.36.0 h1:mjIs9gYtt56AzC4ZaffQuh88TZurBGhIJMBZGSxNerQ= -google.golang.org/protobuf v1.36.0/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= +google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 004fdcf2adffd7d1197f6a962a173ad67d0c8922 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Jan 2025 07:20:28 +0100 Subject: [PATCH 053/178] build(deps): bump the go-production-dependencies group across 1 directory with 2 updates (#1877) --- .../genproto/oteldemo/demo.pb.go | 2 +- src/checkoutservice/go.mod | 10 +++++----- src/checkoutservice/go.sum | 20 +++++++++---------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/checkoutservice/genproto/oteldemo/demo.pb.go b/src/checkoutservice/genproto/oteldemo/demo.pb.go index 15b777ede0..ce111c2c17 100644 --- a/src/checkoutservice/genproto/oteldemo/demo.pb.go +++ b/src/checkoutservice/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.2 // protoc v4.24.4 // source: demo.proto diff --git a/src/checkoutservice/go.mod b/src/checkoutservice/go.mod index 66a4f1484c..88275ed180 100644 --- a/src/checkoutservice/go.mod +++ b/src/checkoutservice/go.mod @@ -5,7 +5,7 @@ go 1.22.7 toolchain go1.22.9 require ( - github.com/IBM/sarama v1.43.3 + github.com/IBM/sarama v1.44.0 github.com/google/uuid v1.6.0 github.com/open-feature/go-sdk v1.14.0 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 @@ -22,7 +22,7 @@ require ( go.opentelemetry.io/otel/trace v1.33.0 google.golang.org/grpc v1.69.2 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.36.1 + google.golang.org/protobuf v1.36.2 ) require ( @@ -64,7 +64,7 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 // indirect github.com/open-feature/flagd/core v0.10.4 // indirect - github.com/pierrec/lz4/v4 v4.1.21 // indirect + github.com/pierrec/lz4/v4 v4.1.22 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/x448/float16 v0.8.4 // indirect @@ -78,10 +78,10 @@ require ( go.opentelemetry.io/proto/otlp v1.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.30.0 // indirect + golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.32.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.21.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect diff --git a/src/checkoutservice/go.sum b/src/checkoutservice/go.sum index a0ac4dffe3..f2e942737f 100644 --- a/src/checkoutservice/go.sum +++ b/src/checkoutservice/go.sum @@ -8,8 +8,8 @@ connectrpc.com/connect v1.17.0 h1:W0ZqMhtVzn9Zhn2yATuUokDLO5N+gIuBWMOnsQrfmZk= connectrpc.com/connect v1.17.0/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8= connectrpc.com/otelconnect v0.7.1 h1:scO5pOb0i4yUE66CnNrHeK1x51yq0bE0ehPg6WvzXJY= connectrpc.com/otelconnect v0.7.1/go.mod h1:dh3bFgHBTb2bkqGCeVVOtHJreSns7uu9wwL2Tbz17ms= -github.com/IBM/sarama v1.43.3 h1:Yj6L2IaNvb2mRBop39N7mmJAHBVY3dTPncr3qGVkxPA= -github.com/IBM/sarama v1.43.3/go.mod h1:FVIRaLrhK3Cla/9FfRF5X9Zua2KpS3SYIXxhac1H+FQ= +github.com/IBM/sarama v1.44.0 h1:puNKqcScjSAgVLramjsuovZrS0nJZFVsrvuUymkWqhE= +github.com/IBM/sarama v1.44.0/go.mod h1:MxQ9SvGfvKIorbk077Ff6DUnBlGpidiQOtU2vuBaxVw= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df h1:GSoSVRLoBaFpOOds6QyY1L8AX7uoY+Ln3BHc22W40X0= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df/go.mod h1:hiVxq5OP2bUGBRNS3Z/bt/reCLFNbdcST6gISi1fiOM= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= @@ -118,8 +118,8 @@ github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvI github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 h1:Kzt0WkUtrLeFgJn2wkGhBVJZTOBVFGwXGuGs27uM9KQ= github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3/go.mod h1:lZnG8SjETq2kyHvOInmdqTuofg53GNbY6YupgwP4LTA= -github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= -github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= +github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -200,8 +200,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= -golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -218,8 +218,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= -golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -265,8 +265,8 @@ google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= -google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 43c5175d058e56fb8c3723a17ddf859437812deb Mon Sep 17 00:00:00 2001 From: Charlie Le Date: Wed, 8 Jan 2025 05:29:08 -0800 Subject: [PATCH 054/178] Update dependabot.yml (#1870) * Update dependabot.yml Sets up dependabot for the other languages and ecosystems. * Update dependabot.yml to use wildcard directories * Update dependabot.yml --------- Co-authored-by: Juliano Costa --- .github/dependabot.yml | 61 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 7b52d100f8..f3028b33ff 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -3,17 +3,68 @@ version: 2 updates: - package-ecosystem: "github-actions" - directory: "/" + directories: + - "/" + groups: + actions-production-dependencies: + dependency-type: "production" + schedule: + interval: "daily" + - package-ecosystem: "docker" + directories: + - "/src/**/*" + groups: + docker-production-dependencies: + dependency-type: "production" schedule: interval: "daily" - labels: - - "infra" - package-ecosystem: "gomod" directories: - - "/src/checkoutservice" - - "/src/productcatalogservice" + - "/src/**/*" groups: go-production-dependencies: dependency-type: "production" schedule: interval: "daily" + - package-ecosystem: "gradle" + directories: + - "/src/**/*" + groups: + gradle-production-dependencies: + dependency-type: "production" + schedule: + interval: "daily" + - package-ecosystem: "pip" + directories: + - "/src/**/*" + groups: + pip-production-dependencies: + dependency-type: "production" + schedule: + interval: "daily" + - package-ecosystem: "nuget" + directories: + - "/src/**/*" + groups: + nuget-production-dependencies: + dependency-type: "production" + schedule: + interval: "daily" + - package-ecosystem: "composer" + directories: + - "/src/**/*" + groups: + composer-production-dependencies: + dependency-type: "production" + schedule: + interval: "daily" + - package-ecosystem: "npm" + directories: + - "/src/**/*" + groups: + npm-production-dependencies: + dependency-type: "production" + npm-development-dependencies: + dependency-type: "development" + schedule: + interval: "daily" From 5e8133f58006b308a0775cbcbc99e974b163ec5a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Jan 2025 14:33:44 +0100 Subject: [PATCH 055/178] build(deps): bump docker/build-push-action from 6.10.0 to 6.11.0 (#1878) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.10.0 to 6.11.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v6.10.0...v6.11.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa --- .github/workflows/component-build-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index b1e5df9dc6..13ce94297e 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -189,7 +189,7 @@ jobs: max-parallelism = 2 - name: Matrix Build and push demo images if: steps.check_changes.outputs.skip == 'false' - uses: docker/build-push-action@v6.10.0 + uses: docker/build-push-action@v6.11.0 with: context: ${{ matrix.file_tag.context }} file: ${{ matrix.file_tag.file }} From c217f58282e312928ea93266323b394dadd11483 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Jan 2025 15:11:20 +0100 Subject: [PATCH 056/178] build(deps): bump the go-production-dependencies group across 2 directories with 2 updates (#1879) * build(deps): bump the go-production-dependencies group across 2 directories with 2 updates Bumps the go-production-dependencies group with 1 update in the /src/checkoutservice directory: [github.com/IBM/sarama](https://github.com/IBM/sarama). Bumps the go-production-dependencies group with 1 update in the /src/productcatalogservice directory: google.golang.org/protobuf. Updates `github.com/IBM/sarama` from 1.44.0 to 1.45.0 - [Release notes](https://github.com/IBM/sarama/releases) - [Changelog](https://github.com/IBM/sarama/blob/main/CHANGELOG.md) - [Commits](https://github.com/IBM/sarama/compare/v1.44.0...v1.45.0) Updates `google.golang.org/protobuf` from 1.36.1 to 1.36.2 --- updated-dependencies: - dependency-name: github.com/IBM/sarama dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] * chore: update protobuf Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/checkoutservice/go.mod | 10 +++++----- src/checkoutservice/go.sum | 20 +++++++++---------- .../genproto/oteldemo/demo.pb.go | 2 +- src/productcatalogservice/go.mod | 2 +- src/productcatalogservice/go.sum | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/checkoutservice/go.mod b/src/checkoutservice/go.mod index 88275ed180..1b883a3ba3 100644 --- a/src/checkoutservice/go.mod +++ b/src/checkoutservice/go.mod @@ -5,7 +5,7 @@ go 1.22.7 toolchain go1.22.9 require ( - github.com/IBM/sarama v1.44.0 + github.com/IBM/sarama v1.45.0 github.com/google/uuid v1.6.0 github.com/open-feature/go-sdk v1.14.0 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 @@ -58,7 +58,7 @@ require ( github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.17.9 // indirect + github.com/klauspost/compress v1.17.11 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -78,11 +78,11 @@ require ( go.opentelemetry.io/proto/otlp v1.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.31.0 // indirect + golang.org/x/crypto v0.32.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.33.0 // indirect - golang.org/x/sys v0.28.0 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect diff --git a/src/checkoutservice/go.sum b/src/checkoutservice/go.sum index f2e942737f..84a08b3ace 100644 --- a/src/checkoutservice/go.sum +++ b/src/checkoutservice/go.sum @@ -8,8 +8,8 @@ connectrpc.com/connect v1.17.0 h1:W0ZqMhtVzn9Zhn2yATuUokDLO5N+gIuBWMOnsQrfmZk= connectrpc.com/connect v1.17.0/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8= connectrpc.com/otelconnect v0.7.1 h1:scO5pOb0i4yUE66CnNrHeK1x51yq0bE0ehPg6WvzXJY= connectrpc.com/otelconnect v0.7.1/go.mod h1:dh3bFgHBTb2bkqGCeVVOtHJreSns7uu9wwL2Tbz17ms= -github.com/IBM/sarama v1.44.0 h1:puNKqcScjSAgVLramjsuovZrS0nJZFVsrvuUymkWqhE= -github.com/IBM/sarama v1.44.0/go.mod h1:MxQ9SvGfvKIorbk077Ff6DUnBlGpidiQOtU2vuBaxVw= +github.com/IBM/sarama v1.45.0 h1:IzeBevTn809IJ/dhNKhP5mpxEXTmELuezO2tgHD9G5E= +github.com/IBM/sarama v1.45.0/go.mod h1:EEay63m8EZkeumco9TDXf2JT3uDnZsZqFgV46n4yZdY= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df h1:GSoSVRLoBaFpOOds6QyY1L8AX7uoY+Ln3BHc22W40X0= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df/go.mod h1:hiVxq5OP2bUGBRNS3Z/bt/reCLFNbdcST6gISi1fiOM= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= @@ -91,8 +91,8 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= -github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -200,8 +200,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= -golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -218,8 +218,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= -golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -235,8 +235,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= diff --git a/src/productcatalogservice/genproto/oteldemo/demo.pb.go b/src/productcatalogservice/genproto/oteldemo/demo.pb.go index 15b777ede0..ce111c2c17 100644 --- a/src/productcatalogservice/genproto/oteldemo/demo.pb.go +++ b/src/productcatalogservice/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.2 // protoc v4.24.4 // source: demo.proto diff --git a/src/productcatalogservice/go.mod b/src/productcatalogservice/go.mod index 334fa165f1..93478a1c55 100644 --- a/src/productcatalogservice/go.mod +++ b/src/productcatalogservice/go.mod @@ -19,7 +19,7 @@ require ( go.opentelemetry.io/otel/trace v1.33.0 google.golang.org/grpc v1.69.2 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.36.1 + google.golang.org/protobuf v1.36.2 ) require ( diff --git a/src/productcatalogservice/go.sum b/src/productcatalogservice/go.sum index 2c95904b8d..e0e9554fbd 100644 --- a/src/productcatalogservice/go.sum +++ b/src/productcatalogservice/go.sum @@ -193,8 +193,8 @@ google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= -google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 1efe410e6454c0ad083d16b0f9066d5882567adf Mon Sep 17 00:00:00 2001 From: Charlie Le Date: Wed, 8 Jan 2025 07:22:34 -0800 Subject: [PATCH 057/178] Generate proto for C++ (#1871) * Generate proto for C++ https://github.com/open-telemetry/opentelemetry-demo/issues/1787 Signed-off-by: Charlie Le * build: update .licenserc.json to include currency generated files and load environment variables in docker-gen-proto.sh Signed-off-by: Charlie Le * fix: update script to source environment variables from the correct path Signed-off-by: Charlie Le * build: update Dockerfiles and CMakeLists for currency service, adjust generated files handling Signed-off-by: Charlie Le * refactor: rename currency service project to currency-proto and update related CMake configurations Signed-off-by: Charlie Le * add line break --------- Signed-off-by: Charlie Le Co-authored-by: Juliano Costa Co-authored-by: Juliano Costa --- .gitignore | 4 +- .licenserc.json | 1 + docker-gen-proto.sh | 37 +- src/currency/.dockerignore | 1 - src/currency/CMakeLists.txt | 50 +- src/currency/Dockerfile | 5 +- .../build/generated/proto/demo.grpc.pb.cc | 1055 ++ .../build/generated/proto/demo.grpc.pb.h | 3708 +++++ src/currency/build/generated/proto/demo.pb.cc | 10792 ++++++++++++++ src/currency/build/generated/proto/demo.pb.h | 12001 ++++++++++++++++ .../build/generated/proto/demo_mock.grpc.pb.h | 119 + .../proto/grpc/health/v1/health.grpc.pb.cc | 90 + .../proto/grpc/health/v1/health.grpc.pb.h | 262 + .../proto/grpc/health/v1/health.pb.cc | 540 + .../proto/grpc/health/v1/health.pb.h | 537 + .../grpc/health/v1/health_mock.grpc.pb.h | 30 + src/currency/genproto/CMakeLists.txt | 59 + src/currency/genproto/Dockerfile | 27 + 18 files changed, 29251 insertions(+), 67 deletions(-) create mode 100644 src/currency/build/generated/proto/demo.grpc.pb.cc create mode 100644 src/currency/build/generated/proto/demo.grpc.pb.h create mode 100644 src/currency/build/generated/proto/demo.pb.cc create mode 100644 src/currency/build/generated/proto/demo.pb.h create mode 100644 src/currency/build/generated/proto/demo_mock.grpc.pb.h create mode 100644 src/currency/build/generated/proto/grpc/health/v1/health.grpc.pb.cc create mode 100644 src/currency/build/generated/proto/grpc/health/v1/health.grpc.pb.h create mode 100644 src/currency/build/generated/proto/grpc/health/v1/health.pb.cc create mode 100644 src/currency/build/generated/proto/grpc/health/v1/health.pb.h create mode 100644 src/currency/build/generated/proto/grpc/health/v1/health_mock.grpc.pb.h create mode 100644 src/currency/genproto/CMakeLists.txt create mode 100644 src/currency/genproto/Dockerfile diff --git a/.gitignore b/.gitignore index 401292e0ef..d4bd3ae744 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ - - *~ *.iml *.ipr @@ -58,3 +56,5 @@ test/tracetesting/tracetesting-vars.yaml # Android *.apk + +!src/currency/build diff --git a/.licenserc.json b/.licenserc.json index 350f284092..ce5eb313ba 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -41,6 +41,7 @@ "/src/accounting/src/protos/", "src/cart/src/obj/", "src/cart/tests/obj/", + "src/currency/build/", "src/checkoutservice/genproto/", "src/featureflagservice/assets/vendor/", "src/featureflagservice/priv/", diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index f29fdcfcdb..8a9a7364b7 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -7,6 +7,8 @@ set -x # Print commands and their arguments as they are executed # This script is used to generate protobuf files for all services with Docker. +. ./.env + gen_proto_go() { echo "Generating Go protobuf files for $1" docker build -f "src/$1/genproto/Dockerfile" -t "$1-genproto" . @@ -14,6 +16,13 @@ gen_proto_go() { protoc -I /build/pb /build/pb/demo.proto --go_out="./src/$1/" --go-grpc_out="./src/$1/" } +gen_proto_cpp() { + echo "Generating Cpp protobuf files for $1" + docker build --build-arg OPENTELEMETRY_CPP_VERSION=${OPENTELEMETRY_CPP_VERSION} -f "src/$1/genproto/Dockerfile" -t "$1-genproto" . + docker run --rm -v $(pwd):/build "$1-genproto" \ + cp -r "/$1/build/generated" "/build/src/$1/build/" +} + gen_proto_python() { echo "Generating Python protobuf files for $1" docker build -f "src/$1/genproto/Dockerfile" -t "$1-genproto" . @@ -21,15 +30,19 @@ gen_proto_python() { python -m grpc_tools.protoc -I /build/pb/ --python_out="./src/$1/" --grpc_python_out="./src/$1/" /build/pb/demo.proto } -#gen_proto_dotnet accounting -#gen_proto_java ad -#gen_proto_dotnet cart -gen_proto_go checkoutservice -#gen_proto_cpp currency -#gen_proto_ruby email -#gen_proto_ts frontend -#gen_proto_js payment -gen_proto_go productcatalogservice -#gen_proto_php quote -gen_proto_python recommendation -#gen_proto_rust shipping +if [ -z "$1" ]; then + #gen_proto_dotnet accounting + #gen_proto_java ad + #gen_proto_dotnet cart + gen_proto_go checkoutservice + gen_proto_cpp currency + #gen_proto_ruby email + #gen_proto_ts frontend + #gen_proto_js payment + gen_proto_go productcatalogservice + #gen_proto_php quote + gen_proto_python recommendation + #gen_proto_rust shipping +else + "gen_proto_$1" "$2" +fi diff --git a/src/currency/.dockerignore b/src/currency/.dockerignore index 5957e52fe4..98de4bf9ef 100644 --- a/src/currency/.dockerignore +++ b/src/currency/.dockerignore @@ -1,4 +1,3 @@ client.js node_modules/ -build/ out/ diff --git a/src/currency/CMakeLists.txt b/src/currency/CMakeLists.txt index 7b249e80f0..3bf13c25bc 100644 --- a/src/currency/CMakeLists.txt +++ b/src/currency/CMakeLists.txt @@ -5,58 +5,10 @@ find_package(Protobuf REQUIRED) find_package(gRPC CONFIG REQUIRED) find_package(opentelemetry-cpp CONFIG REQUIRED) -set(PROTO_PATH "${CMAKE_CURRENT_SOURCE_DIR}/proto") set(GENERATED_PROTOBUF_PATH "${CMAKE_BINARY_DIR}/generated/proto") -set(GENERATED_HEALTH_PROTOBUF_PATH "${GENERATED_PROTOBUF_PATH}/grpc/health/v1") -file(MAKE_DIRECTORY "${GENERATED_PROTOBUF_PATH}") +add_subdirectory(genproto) -set(DEMO_PROTO "${PROTO_PATH}/demo.proto") -set(DEMO_PB_CPP_FILE "${GENERATED_PROTOBUF_PATH}/demo.pb.cc") -set(DEMO_PB_H_FILE "${GENERATED_PROTOBUF_PATH}/demo.pb.h") -set(DEMO_GRPC_PB_CPP_FILE "${GENERATED_PROTOBUF_PATH}/demo.grpc.pb.cc") -set(DEMO_GRPC_PB_H_FILE "${GENERATED_PROTOBUF_PATH}/demo.grpc.pb.h") -set(HEALTH_PROTO "${PROTO_PATH}/grpc/health/v1/health.proto") -set(HEALTH_PB_CPP_FILE "${GENERATED_HEALTH_PROTOBUF_PATH}/health.pb.cc") -set(HEALTH_PB_H_FILE "${GENERATED_HEALTH_PROTOBUF_PATH}/health.pb.h") -set(HEALTH_GRPC_PB_CPP_FILE "${GENERATED_HEALTH_PROTOBUF_PATH}/health.grpc.pb.cc") -set(HEALTH_GRPC_PB_H_FILE "${GENERATED_HEALTH_PROTOBUF_PATH}/health.grpc.pb.h") - -foreach(IMPORT_DIR ${PROTOBUF_IMPORT_DIRS}) - list(APPEND PROTOBUF_INCLUDE_FLAGS "-I${IMPORT_DIR}") -endforeach() - -find_program(gRPC_CPP_PLUGIN_EXECUTABLE grpc_cpp_plugin) - -add_custom_command( - OUTPUT ${DEMO_PB_H_FILE} - ${DEMO_PB_CPP_FILE} - ${DEMO_GRPC_PB_CPP_FILE} - ${DEMO_GRPC_PB_H_FILE} - ${HEALTH_PB_H_FILE} - ${HEALTH_PB_CPP_FILE} - ${HEALTH_GRPC_PB_CPP_FILE} - ${HEALTH_GRPC_PB_H_FILE} - - COMMAND - ${PROTOBUF_PROTOC_EXECUTABLE} ARGS "--experimental_allow_proto3_optional" - "--proto_path=${PROTO_PATH}" ${PROTOBUF_INCLUDE_FLAGS} - "--cpp_out=${GENERATED_PROTOBUF_PATH}" - "--grpc_out=generate_mock_code=true:${GENERATED_PROTOBUF_PATH}" - --plugin=protoc-gen-grpc="${gRPC_CPP_PLUGIN_EXECUTABLE}" ${DEMO_PROTO} ${HEALTH_PROTO}) - -message(STATUS "gRPC_CPP_PLUGIN_EXECUTABLE=${gRPC_CPP_PLUGIN_EXECUTABLE}") - -add_library(demo-proto ${DEMO_PB_H_FILE} - ${DEMO_PB_CPP_FILE} - ${DEMO_GRPC_PB_CPP_FILE} - ${DEMO_GRPC_PB_H_FILE} - ${HEALTH_PB_H_FILE} - ${HEALTH_PB_CPP_FILE} - ${HEALTH_GRPC_PB_CPP_FILE} - ${HEALTH_GRPC_PB_H_FILE}) - -target_link_libraries(demo-proto gRPC::grpc++ protobuf::libprotobuf) include_directories("${GENERATED_PROTOBUF_PATH}" "${OPENTELEMETRY_CPP_INCLUDE_DIRS}") add_executable(currency src/server.cpp) diff --git a/src/currency/Dockerfile b/src/currency/Dockerfile index 5a5da589c7..f092bee2a2 100644 --- a/src/currency/Dockerfile +++ b/src/currency/Dockerfile @@ -20,9 +20,8 @@ RUN apk update && apk add git cmake make g++ grpc-dev protobuf-dev linux-headers ARG OPENTELEMETRY_CPP_VERSION -RUN git clone https://github.com/open-telemetry/opentelemetry-cpp \ - && cd opentelemetry-cpp/ \ - && git checkout tags/v${OPENTELEMETRY_CPP_VERSION} -b v${OPENTELEMETRY_CPP_VERSION} \ +RUN git clone --depth 1 --branch v${OPENTELEMETRY_CPP_VERSION} https://github.com/open-telemetry/opentelemetry-cpp \ + && cd opentelemetry-cpp/ \ && mkdir build \ && cd build \ && cmake .. -DCMAKE_CXX_STANDARD=17 -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ diff --git a/src/currency/build/generated/proto/demo.grpc.pb.cc b/src/currency/build/generated/proto/demo.grpc.pb.cc new file mode 100644 index 0000000000..b02a92ab4e --- /dev/null +++ b/src/currency/build/generated/proto/demo.grpc.pb.cc @@ -0,0 +1,1055 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: demo.proto + +#include "demo.pb.h" +#include "demo.grpc.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +namespace oteldemo { + +static const char* CartService_method_names[] = { + "/oteldemo.CartService/AddItem", + "/oteldemo.CartService/GetCart", + "/oteldemo.CartService/EmptyCart", +}; + +std::unique_ptr< CartService::Stub> CartService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< CartService::Stub> stub(new CartService::Stub(channel, options)); + return stub; +} + +CartService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_AddItem_(CartService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetCart_(CartService_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_EmptyCart_(CartService_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status CartService::Stub::AddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::oteldemo::Empty* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::AddItemRequest, ::oteldemo::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_AddItem_, context, request, response); +} + +void CartService::Stub::async::AddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest* request, ::oteldemo::Empty* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::AddItemRequest, ::oteldemo::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_AddItem_, context, request, response, std::move(f)); +} + +void CartService::Stub::async::AddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest* request, ::oteldemo::Empty* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_AddItem_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* CartService::Stub::PrepareAsyncAddItemRaw(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::Empty, ::oteldemo::AddItemRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_AddItem_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* CartService::Stub::AsyncAddItemRaw(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncAddItemRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status CartService::Stub::GetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::oteldemo::Cart* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::GetCartRequest, ::oteldemo::Cart, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetCart_, context, request, response); +} + +void CartService::Stub::async::GetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest* request, ::oteldemo::Cart* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::GetCartRequest, ::oteldemo::Cart, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetCart_, context, request, response, std::move(f)); +} + +void CartService::Stub::async::GetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest* request, ::oteldemo::Cart* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetCart_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Cart>* CartService::Stub::PrepareAsyncGetCartRaw(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::Cart, ::oteldemo::GetCartRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetCart_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Cart>* CartService::Stub::AsyncGetCartRaw(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncGetCartRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status CartService::Stub::EmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::oteldemo::Empty* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::EmptyCartRequest, ::oteldemo::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_EmptyCart_, context, request, response); +} + +void CartService::Stub::async::EmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest* request, ::oteldemo::Empty* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::EmptyCartRequest, ::oteldemo::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_EmptyCart_, context, request, response, std::move(f)); +} + +void CartService::Stub::async::EmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest* request, ::oteldemo::Empty* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_EmptyCart_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* CartService::Stub::PrepareAsyncEmptyCartRaw(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::Empty, ::oteldemo::EmptyCartRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_EmptyCart_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* CartService::Stub::AsyncEmptyCartRaw(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncEmptyCartRaw(context, request, cq); + result->StartCall(); + return result; +} + +CartService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + CartService_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< CartService::Service, ::oteldemo::AddItemRequest, ::oteldemo::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](CartService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::AddItemRequest* req, + ::oteldemo::Empty* resp) { + return service->AddItem(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + CartService_method_names[1], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< CartService::Service, ::oteldemo::GetCartRequest, ::oteldemo::Cart, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](CartService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::GetCartRequest* req, + ::oteldemo::Cart* resp) { + return service->GetCart(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + CartService_method_names[2], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< CartService::Service, ::oteldemo::EmptyCartRequest, ::oteldemo::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](CartService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::EmptyCartRequest* req, + ::oteldemo::Empty* resp) { + return service->EmptyCart(ctx, req, resp); + }, this))); +} + +CartService::Service::~Service() { +} + +::grpc::Status CartService::Service::AddItem(::grpc::ServerContext* context, const ::oteldemo::AddItemRequest* request, ::oteldemo::Empty* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status CartService::Service::GetCart(::grpc::ServerContext* context, const ::oteldemo::GetCartRequest* request, ::oteldemo::Cart* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status CartService::Service::EmptyCart(::grpc::ServerContext* context, const ::oteldemo::EmptyCartRequest* request, ::oteldemo::Empty* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +static const char* RecommendationService_method_names[] = { + "/oteldemo.RecommendationService/ListRecommendations", +}; + +std::unique_ptr< RecommendationService::Stub> RecommendationService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< RecommendationService::Stub> stub(new RecommendationService::Stub(channel, options)); + return stub; +} + +RecommendationService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_ListRecommendations_(RecommendationService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status RecommendationService::Stub::ListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::oteldemo::ListRecommendationsResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::ListRecommendationsRequest, ::oteldemo::ListRecommendationsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ListRecommendations_, context, request, response); +} + +void RecommendationService::Stub::async::ListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest* request, ::oteldemo::ListRecommendationsResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::ListRecommendationsRequest, ::oteldemo::ListRecommendationsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListRecommendations_, context, request, response, std::move(f)); +} + +void RecommendationService::Stub::async::ListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest* request, ::oteldemo::ListRecommendationsResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListRecommendations_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::ListRecommendationsResponse>* RecommendationService::Stub::PrepareAsyncListRecommendationsRaw(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::ListRecommendationsResponse, ::oteldemo::ListRecommendationsRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ListRecommendations_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::ListRecommendationsResponse>* RecommendationService::Stub::AsyncListRecommendationsRaw(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncListRecommendationsRaw(context, request, cq); + result->StartCall(); + return result; +} + +RecommendationService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + RecommendationService_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< RecommendationService::Service, ::oteldemo::ListRecommendationsRequest, ::oteldemo::ListRecommendationsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](RecommendationService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::ListRecommendationsRequest* req, + ::oteldemo::ListRecommendationsResponse* resp) { + return service->ListRecommendations(ctx, req, resp); + }, this))); +} + +RecommendationService::Service::~Service() { +} + +::grpc::Status RecommendationService::Service::ListRecommendations(::grpc::ServerContext* context, const ::oteldemo::ListRecommendationsRequest* request, ::oteldemo::ListRecommendationsResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +static const char* ProductCatalogService_method_names[] = { + "/oteldemo.ProductCatalogService/ListProducts", + "/oteldemo.ProductCatalogService/GetProduct", + "/oteldemo.ProductCatalogService/SearchProducts", +}; + +std::unique_ptr< ProductCatalogService::Stub> ProductCatalogService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< ProductCatalogService::Stub> stub(new ProductCatalogService::Stub(channel, options)); + return stub; +} + +ProductCatalogService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_ListProducts_(ProductCatalogService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetProduct_(ProductCatalogService_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_SearchProducts_(ProductCatalogService_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status ProductCatalogService::Stub::ListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::oteldemo::ListProductsResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::Empty, ::oteldemo::ListProductsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ListProducts_, context, request, response); +} + +void ProductCatalogService::Stub::async::ListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::ListProductsResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::Empty, ::oteldemo::ListProductsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListProducts_, context, request, response, std::move(f)); +} + +void ProductCatalogService::Stub::async::ListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::ListProductsResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListProducts_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::ListProductsResponse>* ProductCatalogService::Stub::PrepareAsyncListProductsRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::ListProductsResponse, ::oteldemo::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ListProducts_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::ListProductsResponse>* ProductCatalogService::Stub::AsyncListProductsRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncListProductsRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status ProductCatalogService::Stub::GetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::oteldemo::Product* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::GetProductRequest, ::oteldemo::Product, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetProduct_, context, request, response); +} + +void ProductCatalogService::Stub::async::GetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest* request, ::oteldemo::Product* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::GetProductRequest, ::oteldemo::Product, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetProduct_, context, request, response, std::move(f)); +} + +void ProductCatalogService::Stub::async::GetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest* request, ::oteldemo::Product* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetProduct_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Product>* ProductCatalogService::Stub::PrepareAsyncGetProductRaw(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::Product, ::oteldemo::GetProductRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetProduct_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Product>* ProductCatalogService::Stub::AsyncGetProductRaw(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncGetProductRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status ProductCatalogService::Stub::SearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::oteldemo::SearchProductsResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::SearchProductsRequest, ::oteldemo::SearchProductsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_SearchProducts_, context, request, response); +} + +void ProductCatalogService::Stub::async::SearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest* request, ::oteldemo::SearchProductsResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::SearchProductsRequest, ::oteldemo::SearchProductsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SearchProducts_, context, request, response, std::move(f)); +} + +void ProductCatalogService::Stub::async::SearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest* request, ::oteldemo::SearchProductsResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SearchProducts_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::SearchProductsResponse>* ProductCatalogService::Stub::PrepareAsyncSearchProductsRaw(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::SearchProductsResponse, ::oteldemo::SearchProductsRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_SearchProducts_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::SearchProductsResponse>* ProductCatalogService::Stub::AsyncSearchProductsRaw(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncSearchProductsRaw(context, request, cq); + result->StartCall(); + return result; +} + +ProductCatalogService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + ProductCatalogService_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< ProductCatalogService::Service, ::oteldemo::Empty, ::oteldemo::ListProductsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](ProductCatalogService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::Empty* req, + ::oteldemo::ListProductsResponse* resp) { + return service->ListProducts(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + ProductCatalogService_method_names[1], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< ProductCatalogService::Service, ::oteldemo::GetProductRequest, ::oteldemo::Product, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](ProductCatalogService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::GetProductRequest* req, + ::oteldemo::Product* resp) { + return service->GetProduct(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + ProductCatalogService_method_names[2], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< ProductCatalogService::Service, ::oteldemo::SearchProductsRequest, ::oteldemo::SearchProductsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](ProductCatalogService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::SearchProductsRequest* req, + ::oteldemo::SearchProductsResponse* resp) { + return service->SearchProducts(ctx, req, resp); + }, this))); +} + +ProductCatalogService::Service::~Service() { +} + +::grpc::Status ProductCatalogService::Service::ListProducts(::grpc::ServerContext* context, const ::oteldemo::Empty* request, ::oteldemo::ListProductsResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status ProductCatalogService::Service::GetProduct(::grpc::ServerContext* context, const ::oteldemo::GetProductRequest* request, ::oteldemo::Product* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status ProductCatalogService::Service::SearchProducts(::grpc::ServerContext* context, const ::oteldemo::SearchProductsRequest* request, ::oteldemo::SearchProductsResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +static const char* ShippingService_method_names[] = { + "/oteldemo.ShippingService/GetQuote", + "/oteldemo.ShippingService/ShipOrder", +}; + +std::unique_ptr< ShippingService::Stub> ShippingService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< ShippingService::Stub> stub(new ShippingService::Stub(channel, options)); + return stub; +} + +ShippingService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_GetQuote_(ShippingService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ShipOrder_(ShippingService_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status ShippingService::Stub::GetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::oteldemo::GetQuoteResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::GetQuoteRequest, ::oteldemo::GetQuoteResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetQuote_, context, request, response); +} + +void ShippingService::Stub::async::GetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest* request, ::oteldemo::GetQuoteResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::GetQuoteRequest, ::oteldemo::GetQuoteResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetQuote_, context, request, response, std::move(f)); +} + +void ShippingService::Stub::async::GetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest* request, ::oteldemo::GetQuoteResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetQuote_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::GetQuoteResponse>* ShippingService::Stub::PrepareAsyncGetQuoteRaw(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::GetQuoteResponse, ::oteldemo::GetQuoteRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetQuote_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::GetQuoteResponse>* ShippingService::Stub::AsyncGetQuoteRaw(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncGetQuoteRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status ShippingService::Stub::ShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::oteldemo::ShipOrderResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::ShipOrderRequest, ::oteldemo::ShipOrderResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ShipOrder_, context, request, response); +} + +void ShippingService::Stub::async::ShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest* request, ::oteldemo::ShipOrderResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::ShipOrderRequest, ::oteldemo::ShipOrderResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ShipOrder_, context, request, response, std::move(f)); +} + +void ShippingService::Stub::async::ShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest* request, ::oteldemo::ShipOrderResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ShipOrder_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::ShipOrderResponse>* ShippingService::Stub::PrepareAsyncShipOrderRaw(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::ShipOrderResponse, ::oteldemo::ShipOrderRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ShipOrder_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::ShipOrderResponse>* ShippingService::Stub::AsyncShipOrderRaw(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncShipOrderRaw(context, request, cq); + result->StartCall(); + return result; +} + +ShippingService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + ShippingService_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< ShippingService::Service, ::oteldemo::GetQuoteRequest, ::oteldemo::GetQuoteResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](ShippingService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::GetQuoteRequest* req, + ::oteldemo::GetQuoteResponse* resp) { + return service->GetQuote(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + ShippingService_method_names[1], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< ShippingService::Service, ::oteldemo::ShipOrderRequest, ::oteldemo::ShipOrderResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](ShippingService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::ShipOrderRequest* req, + ::oteldemo::ShipOrderResponse* resp) { + return service->ShipOrder(ctx, req, resp); + }, this))); +} + +ShippingService::Service::~Service() { +} + +::grpc::Status ShippingService::Service::GetQuote(::grpc::ServerContext* context, const ::oteldemo::GetQuoteRequest* request, ::oteldemo::GetQuoteResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status ShippingService::Service::ShipOrder(::grpc::ServerContext* context, const ::oteldemo::ShipOrderRequest* request, ::oteldemo::ShipOrderResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +static const char* CurrencyService_method_names[] = { + "/oteldemo.CurrencyService/GetSupportedCurrencies", + "/oteldemo.CurrencyService/Convert", +}; + +std::unique_ptr< CurrencyService::Stub> CurrencyService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< CurrencyService::Stub> stub(new CurrencyService::Stub(channel, options)); + return stub; +} + +CurrencyService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_GetSupportedCurrencies_(CurrencyService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_Convert_(CurrencyService_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status CurrencyService::Stub::GetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::oteldemo::GetSupportedCurrenciesResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::Empty, ::oteldemo::GetSupportedCurrenciesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetSupportedCurrencies_, context, request, response); +} + +void CurrencyService::Stub::async::GetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::GetSupportedCurrenciesResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::Empty, ::oteldemo::GetSupportedCurrenciesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetSupportedCurrencies_, context, request, response, std::move(f)); +} + +void CurrencyService::Stub::async::GetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::GetSupportedCurrenciesResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetSupportedCurrencies_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::GetSupportedCurrenciesResponse>* CurrencyService::Stub::PrepareAsyncGetSupportedCurrenciesRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::GetSupportedCurrenciesResponse, ::oteldemo::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetSupportedCurrencies_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::GetSupportedCurrenciesResponse>* CurrencyService::Stub::AsyncGetSupportedCurrenciesRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncGetSupportedCurrenciesRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status CurrencyService::Stub::Convert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::oteldemo::Money* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::CurrencyConversionRequest, ::oteldemo::Money, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Convert_, context, request, response); +} + +void CurrencyService::Stub::async::Convert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest* request, ::oteldemo::Money* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::CurrencyConversionRequest, ::oteldemo::Money, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Convert_, context, request, response, std::move(f)); +} + +void CurrencyService::Stub::async::Convert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest* request, ::oteldemo::Money* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Convert_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Money>* CurrencyService::Stub::PrepareAsyncConvertRaw(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::Money, ::oteldemo::CurrencyConversionRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Convert_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Money>* CurrencyService::Stub::AsyncConvertRaw(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncConvertRaw(context, request, cq); + result->StartCall(); + return result; +} + +CurrencyService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + CurrencyService_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< CurrencyService::Service, ::oteldemo::Empty, ::oteldemo::GetSupportedCurrenciesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](CurrencyService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::Empty* req, + ::oteldemo::GetSupportedCurrenciesResponse* resp) { + return service->GetSupportedCurrencies(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + CurrencyService_method_names[1], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< CurrencyService::Service, ::oteldemo::CurrencyConversionRequest, ::oteldemo::Money, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](CurrencyService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::CurrencyConversionRequest* req, + ::oteldemo::Money* resp) { + return service->Convert(ctx, req, resp); + }, this))); +} + +CurrencyService::Service::~Service() { +} + +::grpc::Status CurrencyService::Service::GetSupportedCurrencies(::grpc::ServerContext* context, const ::oteldemo::Empty* request, ::oteldemo::GetSupportedCurrenciesResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status CurrencyService::Service::Convert(::grpc::ServerContext* context, const ::oteldemo::CurrencyConversionRequest* request, ::oteldemo::Money* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +static const char* PaymentService_method_names[] = { + "/oteldemo.PaymentService/Charge", +}; + +std::unique_ptr< PaymentService::Stub> PaymentService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< PaymentService::Stub> stub(new PaymentService::Stub(channel, options)); + return stub; +} + +PaymentService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_Charge_(PaymentService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status PaymentService::Stub::Charge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::oteldemo::ChargeResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::ChargeRequest, ::oteldemo::ChargeResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Charge_, context, request, response); +} + +void PaymentService::Stub::async::Charge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest* request, ::oteldemo::ChargeResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::ChargeRequest, ::oteldemo::ChargeResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Charge_, context, request, response, std::move(f)); +} + +void PaymentService::Stub::async::Charge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest* request, ::oteldemo::ChargeResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Charge_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::ChargeResponse>* PaymentService::Stub::PrepareAsyncChargeRaw(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::ChargeResponse, ::oteldemo::ChargeRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Charge_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::ChargeResponse>* PaymentService::Stub::AsyncChargeRaw(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncChargeRaw(context, request, cq); + result->StartCall(); + return result; +} + +PaymentService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + PaymentService_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< PaymentService::Service, ::oteldemo::ChargeRequest, ::oteldemo::ChargeResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](PaymentService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::ChargeRequest* req, + ::oteldemo::ChargeResponse* resp) { + return service->Charge(ctx, req, resp); + }, this))); +} + +PaymentService::Service::~Service() { +} + +::grpc::Status PaymentService::Service::Charge(::grpc::ServerContext* context, const ::oteldemo::ChargeRequest* request, ::oteldemo::ChargeResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +static const char* EmailService_method_names[] = { + "/oteldemo.EmailService/SendOrderConfirmation", +}; + +std::unique_ptr< EmailService::Stub> EmailService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< EmailService::Stub> stub(new EmailService::Stub(channel, options)); + return stub; +} + +EmailService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_SendOrderConfirmation_(EmailService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status EmailService::Stub::SendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::oteldemo::Empty* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::SendOrderConfirmationRequest, ::oteldemo::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_SendOrderConfirmation_, context, request, response); +} + +void EmailService::Stub::async::SendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest* request, ::oteldemo::Empty* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::SendOrderConfirmationRequest, ::oteldemo::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SendOrderConfirmation_, context, request, response, std::move(f)); +} + +void EmailService::Stub::async::SendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest* request, ::oteldemo::Empty* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SendOrderConfirmation_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* EmailService::Stub::PrepareAsyncSendOrderConfirmationRaw(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::Empty, ::oteldemo::SendOrderConfirmationRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_SendOrderConfirmation_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* EmailService::Stub::AsyncSendOrderConfirmationRaw(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncSendOrderConfirmationRaw(context, request, cq); + result->StartCall(); + return result; +} + +EmailService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + EmailService_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< EmailService::Service, ::oteldemo::SendOrderConfirmationRequest, ::oteldemo::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](EmailService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::SendOrderConfirmationRequest* req, + ::oteldemo::Empty* resp) { + return service->SendOrderConfirmation(ctx, req, resp); + }, this))); +} + +EmailService::Service::~Service() { +} + +::grpc::Status EmailService::Service::SendOrderConfirmation(::grpc::ServerContext* context, const ::oteldemo::SendOrderConfirmationRequest* request, ::oteldemo::Empty* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +static const char* CheckoutService_method_names[] = { + "/oteldemo.CheckoutService/PlaceOrder", +}; + +std::unique_ptr< CheckoutService::Stub> CheckoutService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< CheckoutService::Stub> stub(new CheckoutService::Stub(channel, options)); + return stub; +} + +CheckoutService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_PlaceOrder_(CheckoutService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status CheckoutService::Stub::PlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::oteldemo::PlaceOrderResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::PlaceOrderRequest, ::oteldemo::PlaceOrderResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_PlaceOrder_, context, request, response); +} + +void CheckoutService::Stub::async::PlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest* request, ::oteldemo::PlaceOrderResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::PlaceOrderRequest, ::oteldemo::PlaceOrderResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_PlaceOrder_, context, request, response, std::move(f)); +} + +void CheckoutService::Stub::async::PlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest* request, ::oteldemo::PlaceOrderResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_PlaceOrder_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::PlaceOrderResponse>* CheckoutService::Stub::PrepareAsyncPlaceOrderRaw(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::PlaceOrderResponse, ::oteldemo::PlaceOrderRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_PlaceOrder_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::PlaceOrderResponse>* CheckoutService::Stub::AsyncPlaceOrderRaw(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncPlaceOrderRaw(context, request, cq); + result->StartCall(); + return result; +} + +CheckoutService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + CheckoutService_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< CheckoutService::Service, ::oteldemo::PlaceOrderRequest, ::oteldemo::PlaceOrderResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](CheckoutService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::PlaceOrderRequest* req, + ::oteldemo::PlaceOrderResponse* resp) { + return service->PlaceOrder(ctx, req, resp); + }, this))); +} + +CheckoutService::Service::~Service() { +} + +::grpc::Status CheckoutService::Service::PlaceOrder(::grpc::ServerContext* context, const ::oteldemo::PlaceOrderRequest* request, ::oteldemo::PlaceOrderResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +static const char* AdService_method_names[] = { + "/oteldemo.AdService/GetAds", +}; + +std::unique_ptr< AdService::Stub> AdService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< AdService::Stub> stub(new AdService::Stub(channel, options)); + return stub; +} + +AdService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_GetAds_(AdService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status AdService::Stub::GetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::oteldemo::AdResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::AdRequest, ::oteldemo::AdResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetAds_, context, request, response); +} + +void AdService::Stub::async::GetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest* request, ::oteldemo::AdResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::AdRequest, ::oteldemo::AdResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetAds_, context, request, response, std::move(f)); +} + +void AdService::Stub::async::GetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest* request, ::oteldemo::AdResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetAds_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::AdResponse>* AdService::Stub::PrepareAsyncGetAdsRaw(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::AdResponse, ::oteldemo::AdRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetAds_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::AdResponse>* AdService::Stub::AsyncGetAdsRaw(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncGetAdsRaw(context, request, cq); + result->StartCall(); + return result; +} + +AdService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + AdService_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AdService::Service, ::oteldemo::AdRequest, ::oteldemo::AdResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](AdService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::AdRequest* req, + ::oteldemo::AdResponse* resp) { + return service->GetAds(ctx, req, resp); + }, this))); +} + +AdService::Service::~Service() { +} + +::grpc::Status AdService::Service::GetAds(::grpc::ServerContext* context, const ::oteldemo::AdRequest* request, ::oteldemo::AdResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +static const char* FeatureFlagService_method_names[] = { + "/oteldemo.FeatureFlagService/GetFlag", + "/oteldemo.FeatureFlagService/CreateFlag", + "/oteldemo.FeatureFlagService/UpdateFlag", + "/oteldemo.FeatureFlagService/ListFlags", + "/oteldemo.FeatureFlagService/DeleteFlag", +}; + +std::unique_ptr< FeatureFlagService::Stub> FeatureFlagService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< FeatureFlagService::Stub> stub(new FeatureFlagService::Stub(channel, options)); + return stub; +} + +FeatureFlagService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_GetFlag_(FeatureFlagService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_CreateFlag_(FeatureFlagService_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_UpdateFlag_(FeatureFlagService_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ListFlags_(FeatureFlagService_method_names[3], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_DeleteFlag_(FeatureFlagService_method_names[4], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status FeatureFlagService::Stub::GetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::oteldemo::GetFlagResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::GetFlagRequest, ::oteldemo::GetFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetFlag_, context, request, response); +} + +void FeatureFlagService::Stub::async::GetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest* request, ::oteldemo::GetFlagResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::GetFlagRequest, ::oteldemo::GetFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetFlag_, context, request, response, std::move(f)); +} + +void FeatureFlagService::Stub::async::GetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest* request, ::oteldemo::GetFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetFlag_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::GetFlagResponse>* FeatureFlagService::Stub::PrepareAsyncGetFlagRaw(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::GetFlagResponse, ::oteldemo::GetFlagRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetFlag_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::GetFlagResponse>* FeatureFlagService::Stub::AsyncGetFlagRaw(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncGetFlagRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status FeatureFlagService::Stub::CreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::oteldemo::CreateFlagResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::CreateFlagRequest, ::oteldemo::CreateFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_CreateFlag_, context, request, response); +} + +void FeatureFlagService::Stub::async::CreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest* request, ::oteldemo::CreateFlagResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::CreateFlagRequest, ::oteldemo::CreateFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_CreateFlag_, context, request, response, std::move(f)); +} + +void FeatureFlagService::Stub::async::CreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest* request, ::oteldemo::CreateFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_CreateFlag_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::CreateFlagResponse>* FeatureFlagService::Stub::PrepareAsyncCreateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::CreateFlagResponse, ::oteldemo::CreateFlagRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_CreateFlag_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::CreateFlagResponse>* FeatureFlagService::Stub::AsyncCreateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncCreateFlagRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status FeatureFlagService::Stub::UpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::oteldemo::UpdateFlagResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::UpdateFlagRequest, ::oteldemo::UpdateFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_UpdateFlag_, context, request, response); +} + +void FeatureFlagService::Stub::async::UpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest* request, ::oteldemo::UpdateFlagResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::UpdateFlagRequest, ::oteldemo::UpdateFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_UpdateFlag_, context, request, response, std::move(f)); +} + +void FeatureFlagService::Stub::async::UpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest* request, ::oteldemo::UpdateFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_UpdateFlag_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::UpdateFlagResponse>* FeatureFlagService::Stub::PrepareAsyncUpdateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::UpdateFlagResponse, ::oteldemo::UpdateFlagRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_UpdateFlag_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::UpdateFlagResponse>* FeatureFlagService::Stub::AsyncUpdateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncUpdateFlagRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status FeatureFlagService::Stub::ListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::oteldemo::ListFlagsResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::ListFlagsRequest, ::oteldemo::ListFlagsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ListFlags_, context, request, response); +} + +void FeatureFlagService::Stub::async::ListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest* request, ::oteldemo::ListFlagsResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::ListFlagsRequest, ::oteldemo::ListFlagsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListFlags_, context, request, response, std::move(f)); +} + +void FeatureFlagService::Stub::async::ListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest* request, ::oteldemo::ListFlagsResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ListFlags_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::ListFlagsResponse>* FeatureFlagService::Stub::PrepareAsyncListFlagsRaw(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::ListFlagsResponse, ::oteldemo::ListFlagsRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ListFlags_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::ListFlagsResponse>* FeatureFlagService::Stub::AsyncListFlagsRaw(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncListFlagsRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status FeatureFlagService::Stub::DeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::oteldemo::DeleteFlagResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::oteldemo::DeleteFlagRequest, ::oteldemo::DeleteFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_DeleteFlag_, context, request, response); +} + +void FeatureFlagService::Stub::async::DeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest* request, ::oteldemo::DeleteFlagResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::oteldemo::DeleteFlagRequest, ::oteldemo::DeleteFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteFlag_, context, request, response, std::move(f)); +} + +void FeatureFlagService::Stub::async::DeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest* request, ::oteldemo::DeleteFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DeleteFlag_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::DeleteFlagResponse>* FeatureFlagService::Stub::PrepareAsyncDeleteFlagRaw(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::oteldemo::DeleteFlagResponse, ::oteldemo::DeleteFlagRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_DeleteFlag_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::oteldemo::DeleteFlagResponse>* FeatureFlagService::Stub::AsyncDeleteFlagRaw(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncDeleteFlagRaw(context, request, cq); + result->StartCall(); + return result; +} + +FeatureFlagService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + FeatureFlagService_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< FeatureFlagService::Service, ::oteldemo::GetFlagRequest, ::oteldemo::GetFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](FeatureFlagService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::GetFlagRequest* req, + ::oteldemo::GetFlagResponse* resp) { + return service->GetFlag(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + FeatureFlagService_method_names[1], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< FeatureFlagService::Service, ::oteldemo::CreateFlagRequest, ::oteldemo::CreateFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](FeatureFlagService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::CreateFlagRequest* req, + ::oteldemo::CreateFlagResponse* resp) { + return service->CreateFlag(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + FeatureFlagService_method_names[2], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< FeatureFlagService::Service, ::oteldemo::UpdateFlagRequest, ::oteldemo::UpdateFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](FeatureFlagService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::UpdateFlagRequest* req, + ::oteldemo::UpdateFlagResponse* resp) { + return service->UpdateFlag(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + FeatureFlagService_method_names[3], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< FeatureFlagService::Service, ::oteldemo::ListFlagsRequest, ::oteldemo::ListFlagsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](FeatureFlagService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::ListFlagsRequest* req, + ::oteldemo::ListFlagsResponse* resp) { + return service->ListFlags(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + FeatureFlagService_method_names[4], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< FeatureFlagService::Service, ::oteldemo::DeleteFlagRequest, ::oteldemo::DeleteFlagResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](FeatureFlagService::Service* service, + ::grpc::ServerContext* ctx, + const ::oteldemo::DeleteFlagRequest* req, + ::oteldemo::DeleteFlagResponse* resp) { + return service->DeleteFlag(ctx, req, resp); + }, this))); +} + +FeatureFlagService::Service::~Service() { +} + +::grpc::Status FeatureFlagService::Service::GetFlag(::grpc::ServerContext* context, const ::oteldemo::GetFlagRequest* request, ::oteldemo::GetFlagResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status FeatureFlagService::Service::CreateFlag(::grpc::ServerContext* context, const ::oteldemo::CreateFlagRequest* request, ::oteldemo::CreateFlagResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status FeatureFlagService::Service::UpdateFlag(::grpc::ServerContext* context, const ::oteldemo::UpdateFlagRequest* request, ::oteldemo::UpdateFlagResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status FeatureFlagService::Service::ListFlags(::grpc::ServerContext* context, const ::oteldemo::ListFlagsRequest* request, ::oteldemo::ListFlagsResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status FeatureFlagService::Service::DeleteFlag(::grpc::ServerContext* context, const ::oteldemo::DeleteFlagRequest* request, ::oteldemo::DeleteFlagResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +} // namespace oteldemo + diff --git a/src/currency/build/generated/proto/demo.grpc.pb.h b/src/currency/build/generated/proto/demo.grpc.pb.h new file mode 100644 index 0000000000..82871733e9 --- /dev/null +++ b/src/currency/build/generated/proto/demo.grpc.pb.h @@ -0,0 +1,3708 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: demo.proto +// Original file comments: +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifndef GRPC_demo_2eproto__INCLUDED +#define GRPC_demo_2eproto__INCLUDED + +#include "demo.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace oteldemo { + +// -----------------Cart service----------------- +// +class CartService final { + public: + static constexpr char const* service_full_name() { + return "oteldemo.CartService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status AddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::oteldemo::Empty* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>> AsyncAddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>>(AsyncAddItemRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>> PrepareAsyncAddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>>(PrepareAsyncAddItemRaw(context, request, cq)); + } + virtual ::grpc::Status GetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::oteldemo::Cart* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Cart>> AsyncGetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Cart>>(AsyncGetCartRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Cart>> PrepareAsyncGetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Cart>>(PrepareAsyncGetCartRaw(context, request, cq)); + } + virtual ::grpc::Status EmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::oteldemo::Empty* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>> AsyncEmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>>(AsyncEmptyCartRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>> PrepareAsyncEmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>>(PrepareAsyncEmptyCartRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + virtual void AddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest* request, ::oteldemo::Empty* response, std::function) = 0; + virtual void AddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest* request, ::oteldemo::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0; + virtual void GetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest* request, ::oteldemo::Cart* response, std::function) = 0; + virtual void GetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest* request, ::oteldemo::Cart* response, ::grpc::ClientUnaryReactor* reactor) = 0; + virtual void EmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest* request, ::oteldemo::Empty* response, std::function) = 0; + virtual void EmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest* request, ::oteldemo::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>* AsyncAddItemRaw(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>* PrepareAsyncAddItemRaw(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Cart>* AsyncGetCartRaw(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Cart>* PrepareAsyncGetCartRaw(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>* AsyncEmptyCartRaw(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>* PrepareAsyncEmptyCartRaw(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status AddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::oteldemo::Empty* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>> AsyncAddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>>(AsyncAddItemRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>> PrepareAsyncAddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>>(PrepareAsyncAddItemRaw(context, request, cq)); + } + ::grpc::Status GetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::oteldemo::Cart* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Cart>> AsyncGetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Cart>>(AsyncGetCartRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Cart>> PrepareAsyncGetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Cart>>(PrepareAsyncGetCartRaw(context, request, cq)); + } + ::grpc::Status EmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::oteldemo::Empty* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>> AsyncEmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>>(AsyncEmptyCartRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>> PrepareAsyncEmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>>(PrepareAsyncEmptyCartRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void AddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest* request, ::oteldemo::Empty* response, std::function) override; + void AddItem(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest* request, ::oteldemo::Empty* response, ::grpc::ClientUnaryReactor* reactor) override; + void GetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest* request, ::oteldemo::Cart* response, std::function) override; + void GetCart(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest* request, ::oteldemo::Cart* response, ::grpc::ClientUnaryReactor* reactor) override; + void EmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest* request, ::oteldemo::Empty* response, std::function) override; + void EmptyCart(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest* request, ::oteldemo::Empty* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* AsyncAddItemRaw(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* PrepareAsyncAddItemRaw(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Cart>* AsyncGetCartRaw(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Cart>* PrepareAsyncGetCartRaw(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* AsyncEmptyCartRaw(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* PrepareAsyncEmptyCartRaw(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_AddItem_; + const ::grpc::internal::RpcMethod rpcmethod_GetCart_; + const ::grpc::internal::RpcMethod rpcmethod_EmptyCart_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status AddItem(::grpc::ServerContext* context, const ::oteldemo::AddItemRequest* request, ::oteldemo::Empty* response); + virtual ::grpc::Status GetCart(::grpc::ServerContext* context, const ::oteldemo::GetCartRequest* request, ::oteldemo::Cart* response); + virtual ::grpc::Status EmptyCart(::grpc::ServerContext* context, const ::oteldemo::EmptyCartRequest* request, ::oteldemo::Empty* response); + }; + template + class WithAsyncMethod_AddItem : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_AddItem() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_AddItem() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status AddItem(::grpc::ServerContext* /*context*/, const ::oteldemo::AddItemRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestAddItem(::grpc::ServerContext* context, ::oteldemo::AddItemRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_GetCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_GetCart() { + ::grpc::Service::MarkMethodAsync(1); + } + ~WithAsyncMethod_GetCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetCart(::grpc::ServerContext* /*context*/, const ::oteldemo::GetCartRequest* /*request*/, ::oteldemo::Cart* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetCart(::grpc::ServerContext* context, ::oteldemo::GetCartRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::Cart>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_EmptyCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_EmptyCart() { + ::grpc::Service::MarkMethodAsync(2); + } + ~WithAsyncMethod_EmptyCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status EmptyCart(::grpc::ServerContext* /*context*/, const ::oteldemo::EmptyCartRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestEmptyCart(::grpc::ServerContext* context, ::oteldemo::EmptyCartRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_AddItem > > AsyncService; + template + class WithCallbackMethod_AddItem : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_AddItem() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::AddItemRequest, ::oteldemo::Empty>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::AddItemRequest* request, ::oteldemo::Empty* response) { return this->AddItem(context, request, response); }));} + void SetMessageAllocatorFor_AddItem( + ::grpc::MessageAllocator< ::oteldemo::AddItemRequest, ::oteldemo::Empty>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::AddItemRequest, ::oteldemo::Empty>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_AddItem() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status AddItem(::grpc::ServerContext* /*context*/, const ::oteldemo::AddItemRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* AddItem( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::AddItemRequest* /*request*/, ::oteldemo::Empty* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_GetCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_GetCart() { + ::grpc::Service::MarkMethodCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::GetCartRequest, ::oteldemo::Cart>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::GetCartRequest* request, ::oteldemo::Cart* response) { return this->GetCart(context, request, response); }));} + void SetMessageAllocatorFor_GetCart( + ::grpc::MessageAllocator< ::oteldemo::GetCartRequest, ::oteldemo::Cart>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::GetCartRequest, ::oteldemo::Cart>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_GetCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetCart(::grpc::ServerContext* /*context*/, const ::oteldemo::GetCartRequest* /*request*/, ::oteldemo::Cart* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetCart( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::GetCartRequest* /*request*/, ::oteldemo::Cart* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_EmptyCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_EmptyCart() { + ::grpc::Service::MarkMethodCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::EmptyCartRequest, ::oteldemo::Empty>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::EmptyCartRequest* request, ::oteldemo::Empty* response) { return this->EmptyCart(context, request, response); }));} + void SetMessageAllocatorFor_EmptyCart( + ::grpc::MessageAllocator< ::oteldemo::EmptyCartRequest, ::oteldemo::Empty>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(2); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::EmptyCartRequest, ::oteldemo::Empty>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_EmptyCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status EmptyCart(::grpc::ServerContext* /*context*/, const ::oteldemo::EmptyCartRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* EmptyCart( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::EmptyCartRequest* /*request*/, ::oteldemo::Empty* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_AddItem > > CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_AddItem : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_AddItem() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_AddItem() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status AddItem(::grpc::ServerContext* /*context*/, const ::oteldemo::AddItemRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_GetCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_GetCart() { + ::grpc::Service::MarkMethodGeneric(1); + } + ~WithGenericMethod_GetCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetCart(::grpc::ServerContext* /*context*/, const ::oteldemo::GetCartRequest* /*request*/, ::oteldemo::Cart* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_EmptyCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_EmptyCart() { + ::grpc::Service::MarkMethodGeneric(2); + } + ~WithGenericMethod_EmptyCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status EmptyCart(::grpc::ServerContext* /*context*/, const ::oteldemo::EmptyCartRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_AddItem : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_AddItem() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_AddItem() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status AddItem(::grpc::ServerContext* /*context*/, const ::oteldemo::AddItemRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestAddItem(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_GetCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_GetCart() { + ::grpc::Service::MarkMethodRaw(1); + } + ~WithRawMethod_GetCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetCart(::grpc::ServerContext* /*context*/, const ::oteldemo::GetCartRequest* /*request*/, ::oteldemo::Cart* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetCart(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_EmptyCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_EmptyCart() { + ::grpc::Service::MarkMethodRaw(2); + } + ~WithRawMethod_EmptyCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status EmptyCart(::grpc::ServerContext* /*context*/, const ::oteldemo::EmptyCartRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestEmptyCart(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_AddItem : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_AddItem() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AddItem(context, request, response); })); + } + ~WithRawCallbackMethod_AddItem() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status AddItem(::grpc::ServerContext* /*context*/, const ::oteldemo::AddItemRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* AddItem( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_GetCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_GetCart() { + ::grpc::Service::MarkMethodRawCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetCart(context, request, response); })); + } + ~WithRawCallbackMethod_GetCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetCart(::grpc::ServerContext* /*context*/, const ::oteldemo::GetCartRequest* /*request*/, ::oteldemo::Cart* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetCart( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_EmptyCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_EmptyCart() { + ::grpc::Service::MarkMethodRawCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->EmptyCart(context, request, response); })); + } + ~WithRawCallbackMethod_EmptyCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status EmptyCart(::grpc::ServerContext* /*context*/, const ::oteldemo::EmptyCartRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* EmptyCart( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_AddItem : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_AddItem() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::AddItemRequest, ::oteldemo::Empty>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::AddItemRequest, ::oteldemo::Empty>* streamer) { + return this->StreamedAddItem(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_AddItem() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status AddItem(::grpc::ServerContext* /*context*/, const ::oteldemo::AddItemRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedAddItem(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::AddItemRequest,::oteldemo::Empty>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_GetCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_GetCart() { + ::grpc::Service::MarkMethodStreamed(1, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::GetCartRequest, ::oteldemo::Cart>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::GetCartRequest, ::oteldemo::Cart>* streamer) { + return this->StreamedGetCart(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_GetCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetCart(::grpc::ServerContext* /*context*/, const ::oteldemo::GetCartRequest* /*request*/, ::oteldemo::Cart* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetCart(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::GetCartRequest,::oteldemo::Cart>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_EmptyCart : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_EmptyCart() { + ::grpc::Service::MarkMethodStreamed(2, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::EmptyCartRequest, ::oteldemo::Empty>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::EmptyCartRequest, ::oteldemo::Empty>* streamer) { + return this->StreamedEmptyCart(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_EmptyCart() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status EmptyCart(::grpc::ServerContext* /*context*/, const ::oteldemo::EmptyCartRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedEmptyCart(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::EmptyCartRequest,::oteldemo::Empty>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_AddItem > > StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_AddItem > > StreamedService; +}; + +// ---------------Recommendation service---------- +// +class RecommendationService final { + public: + static constexpr char const* service_full_name() { + return "oteldemo.RecommendationService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status ListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::oteldemo::ListRecommendationsResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListRecommendationsResponse>> AsyncListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListRecommendationsResponse>>(AsyncListRecommendationsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListRecommendationsResponse>> PrepareAsyncListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListRecommendationsResponse>>(PrepareAsyncListRecommendationsRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + virtual void ListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest* request, ::oteldemo::ListRecommendationsResponse* response, std::function) = 0; + virtual void ListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest* request, ::oteldemo::ListRecommendationsResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListRecommendationsResponse>* AsyncListRecommendationsRaw(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListRecommendationsResponse>* PrepareAsyncListRecommendationsRaw(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status ListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::oteldemo::ListRecommendationsResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListRecommendationsResponse>> AsyncListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListRecommendationsResponse>>(AsyncListRecommendationsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListRecommendationsResponse>> PrepareAsyncListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListRecommendationsResponse>>(PrepareAsyncListRecommendationsRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void ListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest* request, ::oteldemo::ListRecommendationsResponse* response, std::function) override; + void ListRecommendations(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest* request, ::oteldemo::ListRecommendationsResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::oteldemo::ListRecommendationsResponse>* AsyncListRecommendationsRaw(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::ListRecommendationsResponse>* PrepareAsyncListRecommendationsRaw(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_ListRecommendations_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status ListRecommendations(::grpc::ServerContext* context, const ::oteldemo::ListRecommendationsRequest* request, ::oteldemo::ListRecommendationsResponse* response); + }; + template + class WithAsyncMethod_ListRecommendations : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_ListRecommendations() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_ListRecommendations() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListRecommendations(::grpc::ServerContext* /*context*/, const ::oteldemo::ListRecommendationsRequest* /*request*/, ::oteldemo::ListRecommendationsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListRecommendations(::grpc::ServerContext* context, ::oteldemo::ListRecommendationsRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::ListRecommendationsResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_ListRecommendations AsyncService; + template + class WithCallbackMethod_ListRecommendations : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_ListRecommendations() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::ListRecommendationsRequest, ::oteldemo::ListRecommendationsResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::ListRecommendationsRequest* request, ::oteldemo::ListRecommendationsResponse* response) { return this->ListRecommendations(context, request, response); }));} + void SetMessageAllocatorFor_ListRecommendations( + ::grpc::MessageAllocator< ::oteldemo::ListRecommendationsRequest, ::oteldemo::ListRecommendationsResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::ListRecommendationsRequest, ::oteldemo::ListRecommendationsResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_ListRecommendations() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListRecommendations(::grpc::ServerContext* /*context*/, const ::oteldemo::ListRecommendationsRequest* /*request*/, ::oteldemo::ListRecommendationsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* ListRecommendations( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::ListRecommendationsRequest* /*request*/, ::oteldemo::ListRecommendationsResponse* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_ListRecommendations CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_ListRecommendations : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_ListRecommendations() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_ListRecommendations() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListRecommendations(::grpc::ServerContext* /*context*/, const ::oteldemo::ListRecommendationsRequest* /*request*/, ::oteldemo::ListRecommendationsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_ListRecommendations : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_ListRecommendations() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_ListRecommendations() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListRecommendations(::grpc::ServerContext* /*context*/, const ::oteldemo::ListRecommendationsRequest* /*request*/, ::oteldemo::ListRecommendationsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListRecommendations(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_ListRecommendations : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_ListRecommendations() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ListRecommendations(context, request, response); })); + } + ~WithRawCallbackMethod_ListRecommendations() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListRecommendations(::grpc::ServerContext* /*context*/, const ::oteldemo::ListRecommendationsRequest* /*request*/, ::oteldemo::ListRecommendationsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* ListRecommendations( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_ListRecommendations : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_ListRecommendations() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::ListRecommendationsRequest, ::oteldemo::ListRecommendationsResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::ListRecommendationsRequest, ::oteldemo::ListRecommendationsResponse>* streamer) { + return this->StreamedListRecommendations(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_ListRecommendations() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status ListRecommendations(::grpc::ServerContext* /*context*/, const ::oteldemo::ListRecommendationsRequest* /*request*/, ::oteldemo::ListRecommendationsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedListRecommendations(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::ListRecommendationsRequest,::oteldemo::ListRecommendationsResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_ListRecommendations StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_ListRecommendations StreamedService; +}; + +// ---------------Product Catalog---------------- +// +class ProductCatalogService final { + public: + static constexpr char const* service_full_name() { + return "oteldemo.ProductCatalogService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status ListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::oteldemo::ListProductsResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListProductsResponse>> AsyncListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListProductsResponse>>(AsyncListProductsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListProductsResponse>> PrepareAsyncListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListProductsResponse>>(PrepareAsyncListProductsRaw(context, request, cq)); + } + virtual ::grpc::Status GetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::oteldemo::Product* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Product>> AsyncGetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Product>>(AsyncGetProductRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Product>> PrepareAsyncGetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Product>>(PrepareAsyncGetProductRaw(context, request, cq)); + } + virtual ::grpc::Status SearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::oteldemo::SearchProductsResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::SearchProductsResponse>> AsyncSearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::SearchProductsResponse>>(AsyncSearchProductsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::SearchProductsResponse>> PrepareAsyncSearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::SearchProductsResponse>>(PrepareAsyncSearchProductsRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + virtual void ListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::ListProductsResponse* response, std::function) = 0; + virtual void ListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::ListProductsResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + virtual void GetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest* request, ::oteldemo::Product* response, std::function) = 0; + virtual void GetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest* request, ::oteldemo::Product* response, ::grpc::ClientUnaryReactor* reactor) = 0; + virtual void SearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest* request, ::oteldemo::SearchProductsResponse* response, std::function) = 0; + virtual void SearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest* request, ::oteldemo::SearchProductsResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListProductsResponse>* AsyncListProductsRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListProductsResponse>* PrepareAsyncListProductsRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Product>* AsyncGetProductRaw(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Product>* PrepareAsyncGetProductRaw(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::SearchProductsResponse>* AsyncSearchProductsRaw(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::SearchProductsResponse>* PrepareAsyncSearchProductsRaw(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status ListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::oteldemo::ListProductsResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListProductsResponse>> AsyncListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListProductsResponse>>(AsyncListProductsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListProductsResponse>> PrepareAsyncListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListProductsResponse>>(PrepareAsyncListProductsRaw(context, request, cq)); + } + ::grpc::Status GetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::oteldemo::Product* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Product>> AsyncGetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Product>>(AsyncGetProductRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Product>> PrepareAsyncGetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Product>>(PrepareAsyncGetProductRaw(context, request, cq)); + } + ::grpc::Status SearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::oteldemo::SearchProductsResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::SearchProductsResponse>> AsyncSearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::SearchProductsResponse>>(AsyncSearchProductsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::SearchProductsResponse>> PrepareAsyncSearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::SearchProductsResponse>>(PrepareAsyncSearchProductsRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void ListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::ListProductsResponse* response, std::function) override; + void ListProducts(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::ListProductsResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void GetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest* request, ::oteldemo::Product* response, std::function) override; + void GetProduct(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest* request, ::oteldemo::Product* response, ::grpc::ClientUnaryReactor* reactor) override; + void SearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest* request, ::oteldemo::SearchProductsResponse* response, std::function) override; + void SearchProducts(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest* request, ::oteldemo::SearchProductsResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::oteldemo::ListProductsResponse>* AsyncListProductsRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::ListProductsResponse>* PrepareAsyncListProductsRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Product>* AsyncGetProductRaw(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Product>* PrepareAsyncGetProductRaw(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::SearchProductsResponse>* AsyncSearchProductsRaw(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::SearchProductsResponse>* PrepareAsyncSearchProductsRaw(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_ListProducts_; + const ::grpc::internal::RpcMethod rpcmethod_GetProduct_; + const ::grpc::internal::RpcMethod rpcmethod_SearchProducts_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status ListProducts(::grpc::ServerContext* context, const ::oteldemo::Empty* request, ::oteldemo::ListProductsResponse* response); + virtual ::grpc::Status GetProduct(::grpc::ServerContext* context, const ::oteldemo::GetProductRequest* request, ::oteldemo::Product* response); + virtual ::grpc::Status SearchProducts(::grpc::ServerContext* context, const ::oteldemo::SearchProductsRequest* request, ::oteldemo::SearchProductsResponse* response); + }; + template + class WithAsyncMethod_ListProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_ListProducts() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_ListProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::ListProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListProducts(::grpc::ServerContext* context, ::oteldemo::Empty* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::ListProductsResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_GetProduct : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_GetProduct() { + ::grpc::Service::MarkMethodAsync(1); + } + ~WithAsyncMethod_GetProduct() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProduct(::grpc::ServerContext* /*context*/, const ::oteldemo::GetProductRequest* /*request*/, ::oteldemo::Product* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetProduct(::grpc::ServerContext* context, ::oteldemo::GetProductRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::Product>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_SearchProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_SearchProducts() { + ::grpc::Service::MarkMethodAsync(2); + } + ~WithAsyncMethod_SearchProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SearchProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::SearchProductsRequest* /*request*/, ::oteldemo::SearchProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestSearchProducts(::grpc::ServerContext* context, ::oteldemo::SearchProductsRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::SearchProductsResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_ListProducts > > AsyncService; + template + class WithCallbackMethod_ListProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_ListProducts() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::Empty, ::oteldemo::ListProductsResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::Empty* request, ::oteldemo::ListProductsResponse* response) { return this->ListProducts(context, request, response); }));} + void SetMessageAllocatorFor_ListProducts( + ::grpc::MessageAllocator< ::oteldemo::Empty, ::oteldemo::ListProductsResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::Empty, ::oteldemo::ListProductsResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_ListProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::ListProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* ListProducts( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::ListProductsResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_GetProduct : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_GetProduct() { + ::grpc::Service::MarkMethodCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::GetProductRequest, ::oteldemo::Product>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::GetProductRequest* request, ::oteldemo::Product* response) { return this->GetProduct(context, request, response); }));} + void SetMessageAllocatorFor_GetProduct( + ::grpc::MessageAllocator< ::oteldemo::GetProductRequest, ::oteldemo::Product>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::GetProductRequest, ::oteldemo::Product>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_GetProduct() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProduct(::grpc::ServerContext* /*context*/, const ::oteldemo::GetProductRequest* /*request*/, ::oteldemo::Product* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetProduct( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::GetProductRequest* /*request*/, ::oteldemo::Product* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_SearchProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_SearchProducts() { + ::grpc::Service::MarkMethodCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::SearchProductsRequest, ::oteldemo::SearchProductsResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::SearchProductsRequest* request, ::oteldemo::SearchProductsResponse* response) { return this->SearchProducts(context, request, response); }));} + void SetMessageAllocatorFor_SearchProducts( + ::grpc::MessageAllocator< ::oteldemo::SearchProductsRequest, ::oteldemo::SearchProductsResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(2); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::SearchProductsRequest, ::oteldemo::SearchProductsResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_SearchProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SearchProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::SearchProductsRequest* /*request*/, ::oteldemo::SearchProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* SearchProducts( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::SearchProductsRequest* /*request*/, ::oteldemo::SearchProductsResponse* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_ListProducts > > CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_ListProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_ListProducts() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_ListProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::ListProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_GetProduct : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_GetProduct() { + ::grpc::Service::MarkMethodGeneric(1); + } + ~WithGenericMethod_GetProduct() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProduct(::grpc::ServerContext* /*context*/, const ::oteldemo::GetProductRequest* /*request*/, ::oteldemo::Product* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_SearchProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_SearchProducts() { + ::grpc::Service::MarkMethodGeneric(2); + } + ~WithGenericMethod_SearchProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SearchProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::SearchProductsRequest* /*request*/, ::oteldemo::SearchProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_ListProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_ListProducts() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_ListProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::ListProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListProducts(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_GetProduct : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_GetProduct() { + ::grpc::Service::MarkMethodRaw(1); + } + ~WithRawMethod_GetProduct() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProduct(::grpc::ServerContext* /*context*/, const ::oteldemo::GetProductRequest* /*request*/, ::oteldemo::Product* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetProduct(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_SearchProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_SearchProducts() { + ::grpc::Service::MarkMethodRaw(2); + } + ~WithRawMethod_SearchProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SearchProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::SearchProductsRequest* /*request*/, ::oteldemo::SearchProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestSearchProducts(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_ListProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_ListProducts() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ListProducts(context, request, response); })); + } + ~WithRawCallbackMethod_ListProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::ListProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* ListProducts( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_GetProduct : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_GetProduct() { + ::grpc::Service::MarkMethodRawCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetProduct(context, request, response); })); + } + ~WithRawCallbackMethod_GetProduct() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProduct(::grpc::ServerContext* /*context*/, const ::oteldemo::GetProductRequest* /*request*/, ::oteldemo::Product* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetProduct( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_SearchProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_SearchProducts() { + ::grpc::Service::MarkMethodRawCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SearchProducts(context, request, response); })); + } + ~WithRawCallbackMethod_SearchProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SearchProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::SearchProductsRequest* /*request*/, ::oteldemo::SearchProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* SearchProducts( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_ListProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_ListProducts() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::Empty, ::oteldemo::ListProductsResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::Empty, ::oteldemo::ListProductsResponse>* streamer) { + return this->StreamedListProducts(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_ListProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status ListProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::ListProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedListProducts(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::Empty,::oteldemo::ListProductsResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_GetProduct : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_GetProduct() { + ::grpc::Service::MarkMethodStreamed(1, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::GetProductRequest, ::oteldemo::Product>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::GetProductRequest, ::oteldemo::Product>* streamer) { + return this->StreamedGetProduct(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_GetProduct() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetProduct(::grpc::ServerContext* /*context*/, const ::oteldemo::GetProductRequest* /*request*/, ::oteldemo::Product* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetProduct(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::GetProductRequest,::oteldemo::Product>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_SearchProducts : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_SearchProducts() { + ::grpc::Service::MarkMethodStreamed(2, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::SearchProductsRequest, ::oteldemo::SearchProductsResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::SearchProductsRequest, ::oteldemo::SearchProductsResponse>* streamer) { + return this->StreamedSearchProducts(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_SearchProducts() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status SearchProducts(::grpc::ServerContext* /*context*/, const ::oteldemo::SearchProductsRequest* /*request*/, ::oteldemo::SearchProductsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedSearchProducts(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::SearchProductsRequest,::oteldemo::SearchProductsResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_ListProducts > > StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_ListProducts > > StreamedService; +}; + +// ---------------Shipping Service---------- +// +class ShippingService final { + public: + static constexpr char const* service_full_name() { + return "oteldemo.ShippingService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status GetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::oteldemo::GetQuoteResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetQuoteResponse>> AsyncGetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetQuoteResponse>>(AsyncGetQuoteRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetQuoteResponse>> PrepareAsyncGetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetQuoteResponse>>(PrepareAsyncGetQuoteRaw(context, request, cq)); + } + virtual ::grpc::Status ShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::oteldemo::ShipOrderResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ShipOrderResponse>> AsyncShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ShipOrderResponse>>(AsyncShipOrderRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ShipOrderResponse>> PrepareAsyncShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ShipOrderResponse>>(PrepareAsyncShipOrderRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + virtual void GetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest* request, ::oteldemo::GetQuoteResponse* response, std::function) = 0; + virtual void GetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest* request, ::oteldemo::GetQuoteResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + virtual void ShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest* request, ::oteldemo::ShipOrderResponse* response, std::function) = 0; + virtual void ShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest* request, ::oteldemo::ShipOrderResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetQuoteResponse>* AsyncGetQuoteRaw(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetQuoteResponse>* PrepareAsyncGetQuoteRaw(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ShipOrderResponse>* AsyncShipOrderRaw(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ShipOrderResponse>* PrepareAsyncShipOrderRaw(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status GetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::oteldemo::GetQuoteResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetQuoteResponse>> AsyncGetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetQuoteResponse>>(AsyncGetQuoteRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetQuoteResponse>> PrepareAsyncGetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetQuoteResponse>>(PrepareAsyncGetQuoteRaw(context, request, cq)); + } + ::grpc::Status ShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::oteldemo::ShipOrderResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ShipOrderResponse>> AsyncShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ShipOrderResponse>>(AsyncShipOrderRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ShipOrderResponse>> PrepareAsyncShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ShipOrderResponse>>(PrepareAsyncShipOrderRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void GetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest* request, ::oteldemo::GetQuoteResponse* response, std::function) override; + void GetQuote(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest* request, ::oteldemo::GetQuoteResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void ShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest* request, ::oteldemo::ShipOrderResponse* response, std::function) override; + void ShipOrder(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest* request, ::oteldemo::ShipOrderResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::oteldemo::GetQuoteResponse>* AsyncGetQuoteRaw(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::GetQuoteResponse>* PrepareAsyncGetQuoteRaw(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::ShipOrderResponse>* AsyncShipOrderRaw(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::ShipOrderResponse>* PrepareAsyncShipOrderRaw(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_GetQuote_; + const ::grpc::internal::RpcMethod rpcmethod_ShipOrder_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status GetQuote(::grpc::ServerContext* context, const ::oteldemo::GetQuoteRequest* request, ::oteldemo::GetQuoteResponse* response); + virtual ::grpc::Status ShipOrder(::grpc::ServerContext* context, const ::oteldemo::ShipOrderRequest* request, ::oteldemo::ShipOrderResponse* response); + }; + template + class WithAsyncMethod_GetQuote : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_GetQuote() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_GetQuote() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetQuote(::grpc::ServerContext* /*context*/, const ::oteldemo::GetQuoteRequest* /*request*/, ::oteldemo::GetQuoteResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetQuote(::grpc::ServerContext* context, ::oteldemo::GetQuoteRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::GetQuoteResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_ShipOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_ShipOrder() { + ::grpc::Service::MarkMethodAsync(1); + } + ~WithAsyncMethod_ShipOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ShipOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::ShipOrderRequest* /*request*/, ::oteldemo::ShipOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestShipOrder(::grpc::ServerContext* context, ::oteldemo::ShipOrderRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::ShipOrderResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_GetQuote > AsyncService; + template + class WithCallbackMethod_GetQuote : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_GetQuote() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::GetQuoteRequest, ::oteldemo::GetQuoteResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::GetQuoteRequest* request, ::oteldemo::GetQuoteResponse* response) { return this->GetQuote(context, request, response); }));} + void SetMessageAllocatorFor_GetQuote( + ::grpc::MessageAllocator< ::oteldemo::GetQuoteRequest, ::oteldemo::GetQuoteResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::GetQuoteRequest, ::oteldemo::GetQuoteResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_GetQuote() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetQuote(::grpc::ServerContext* /*context*/, const ::oteldemo::GetQuoteRequest* /*request*/, ::oteldemo::GetQuoteResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetQuote( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::GetQuoteRequest* /*request*/, ::oteldemo::GetQuoteResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_ShipOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_ShipOrder() { + ::grpc::Service::MarkMethodCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::ShipOrderRequest, ::oteldemo::ShipOrderResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::ShipOrderRequest* request, ::oteldemo::ShipOrderResponse* response) { return this->ShipOrder(context, request, response); }));} + void SetMessageAllocatorFor_ShipOrder( + ::grpc::MessageAllocator< ::oteldemo::ShipOrderRequest, ::oteldemo::ShipOrderResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::ShipOrderRequest, ::oteldemo::ShipOrderResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_ShipOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ShipOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::ShipOrderRequest* /*request*/, ::oteldemo::ShipOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* ShipOrder( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::ShipOrderRequest* /*request*/, ::oteldemo::ShipOrderResponse* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_GetQuote > CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_GetQuote : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_GetQuote() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_GetQuote() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetQuote(::grpc::ServerContext* /*context*/, const ::oteldemo::GetQuoteRequest* /*request*/, ::oteldemo::GetQuoteResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_ShipOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_ShipOrder() { + ::grpc::Service::MarkMethodGeneric(1); + } + ~WithGenericMethod_ShipOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ShipOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::ShipOrderRequest* /*request*/, ::oteldemo::ShipOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_GetQuote : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_GetQuote() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_GetQuote() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetQuote(::grpc::ServerContext* /*context*/, const ::oteldemo::GetQuoteRequest* /*request*/, ::oteldemo::GetQuoteResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetQuote(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_ShipOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_ShipOrder() { + ::grpc::Service::MarkMethodRaw(1); + } + ~WithRawMethod_ShipOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ShipOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::ShipOrderRequest* /*request*/, ::oteldemo::ShipOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestShipOrder(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_GetQuote : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_GetQuote() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetQuote(context, request, response); })); + } + ~WithRawCallbackMethod_GetQuote() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetQuote(::grpc::ServerContext* /*context*/, const ::oteldemo::GetQuoteRequest* /*request*/, ::oteldemo::GetQuoteResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetQuote( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_ShipOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_ShipOrder() { + ::grpc::Service::MarkMethodRawCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ShipOrder(context, request, response); })); + } + ~WithRawCallbackMethod_ShipOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ShipOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::ShipOrderRequest* /*request*/, ::oteldemo::ShipOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* ShipOrder( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_GetQuote : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_GetQuote() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::GetQuoteRequest, ::oteldemo::GetQuoteResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::GetQuoteRequest, ::oteldemo::GetQuoteResponse>* streamer) { + return this->StreamedGetQuote(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_GetQuote() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetQuote(::grpc::ServerContext* /*context*/, const ::oteldemo::GetQuoteRequest* /*request*/, ::oteldemo::GetQuoteResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetQuote(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::GetQuoteRequest,::oteldemo::GetQuoteResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_ShipOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_ShipOrder() { + ::grpc::Service::MarkMethodStreamed(1, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::ShipOrderRequest, ::oteldemo::ShipOrderResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::ShipOrderRequest, ::oteldemo::ShipOrderResponse>* streamer) { + return this->StreamedShipOrder(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_ShipOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status ShipOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::ShipOrderRequest* /*request*/, ::oteldemo::ShipOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedShipOrder(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::ShipOrderRequest,::oteldemo::ShipOrderResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_GetQuote > StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_GetQuote > StreamedService; +}; + +// -----------------Currency service----------------- +// +class CurrencyService final { + public: + static constexpr char const* service_full_name() { + return "oteldemo.CurrencyService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status GetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::oteldemo::GetSupportedCurrenciesResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetSupportedCurrenciesResponse>> AsyncGetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetSupportedCurrenciesResponse>>(AsyncGetSupportedCurrenciesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetSupportedCurrenciesResponse>> PrepareAsyncGetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetSupportedCurrenciesResponse>>(PrepareAsyncGetSupportedCurrenciesRaw(context, request, cq)); + } + virtual ::grpc::Status Convert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::oteldemo::Money* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Money>> AsyncConvert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Money>>(AsyncConvertRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Money>> PrepareAsyncConvert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Money>>(PrepareAsyncConvertRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + virtual void GetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::GetSupportedCurrenciesResponse* response, std::function) = 0; + virtual void GetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::GetSupportedCurrenciesResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + virtual void Convert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest* request, ::oteldemo::Money* response, std::function) = 0; + virtual void Convert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest* request, ::oteldemo::Money* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetSupportedCurrenciesResponse>* AsyncGetSupportedCurrenciesRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetSupportedCurrenciesResponse>* PrepareAsyncGetSupportedCurrenciesRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Money>* AsyncConvertRaw(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Money>* PrepareAsyncConvertRaw(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status GetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::oteldemo::GetSupportedCurrenciesResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetSupportedCurrenciesResponse>> AsyncGetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetSupportedCurrenciesResponse>>(AsyncGetSupportedCurrenciesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetSupportedCurrenciesResponse>> PrepareAsyncGetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetSupportedCurrenciesResponse>>(PrepareAsyncGetSupportedCurrenciesRaw(context, request, cq)); + } + ::grpc::Status Convert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::oteldemo::Money* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Money>> AsyncConvert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Money>>(AsyncConvertRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Money>> PrepareAsyncConvert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Money>>(PrepareAsyncConvertRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void GetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::GetSupportedCurrenciesResponse* response, std::function) override; + void GetSupportedCurrencies(::grpc::ClientContext* context, const ::oteldemo::Empty* request, ::oteldemo::GetSupportedCurrenciesResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void Convert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest* request, ::oteldemo::Money* response, std::function) override; + void Convert(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest* request, ::oteldemo::Money* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::oteldemo::GetSupportedCurrenciesResponse>* AsyncGetSupportedCurrenciesRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::GetSupportedCurrenciesResponse>* PrepareAsyncGetSupportedCurrenciesRaw(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Money>* AsyncConvertRaw(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Money>* PrepareAsyncConvertRaw(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_GetSupportedCurrencies_; + const ::grpc::internal::RpcMethod rpcmethod_Convert_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status GetSupportedCurrencies(::grpc::ServerContext* context, const ::oteldemo::Empty* request, ::oteldemo::GetSupportedCurrenciesResponse* response); + virtual ::grpc::Status Convert(::grpc::ServerContext* context, const ::oteldemo::CurrencyConversionRequest* request, ::oteldemo::Money* response); + }; + template + class WithAsyncMethod_GetSupportedCurrencies : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_GetSupportedCurrencies() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_GetSupportedCurrencies() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetSupportedCurrencies(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::GetSupportedCurrenciesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetSupportedCurrencies(::grpc::ServerContext* context, ::oteldemo::Empty* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::GetSupportedCurrenciesResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_Convert : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_Convert() { + ::grpc::Service::MarkMethodAsync(1); + } + ~WithAsyncMethod_Convert() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Convert(::grpc::ServerContext* /*context*/, const ::oteldemo::CurrencyConversionRequest* /*request*/, ::oteldemo::Money* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestConvert(::grpc::ServerContext* context, ::oteldemo::CurrencyConversionRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::Money>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_GetSupportedCurrencies > AsyncService; + template + class WithCallbackMethod_GetSupportedCurrencies : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_GetSupportedCurrencies() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::Empty, ::oteldemo::GetSupportedCurrenciesResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::Empty* request, ::oteldemo::GetSupportedCurrenciesResponse* response) { return this->GetSupportedCurrencies(context, request, response); }));} + void SetMessageAllocatorFor_GetSupportedCurrencies( + ::grpc::MessageAllocator< ::oteldemo::Empty, ::oteldemo::GetSupportedCurrenciesResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::Empty, ::oteldemo::GetSupportedCurrenciesResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_GetSupportedCurrencies() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetSupportedCurrencies(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::GetSupportedCurrenciesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetSupportedCurrencies( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::GetSupportedCurrenciesResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_Convert : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_Convert() { + ::grpc::Service::MarkMethodCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::CurrencyConversionRequest, ::oteldemo::Money>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::CurrencyConversionRequest* request, ::oteldemo::Money* response) { return this->Convert(context, request, response); }));} + void SetMessageAllocatorFor_Convert( + ::grpc::MessageAllocator< ::oteldemo::CurrencyConversionRequest, ::oteldemo::Money>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::CurrencyConversionRequest, ::oteldemo::Money>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_Convert() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Convert(::grpc::ServerContext* /*context*/, const ::oteldemo::CurrencyConversionRequest* /*request*/, ::oteldemo::Money* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* Convert( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::CurrencyConversionRequest* /*request*/, ::oteldemo::Money* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_GetSupportedCurrencies > CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_GetSupportedCurrencies : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_GetSupportedCurrencies() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_GetSupportedCurrencies() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetSupportedCurrencies(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::GetSupportedCurrenciesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_Convert : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_Convert() { + ::grpc::Service::MarkMethodGeneric(1); + } + ~WithGenericMethod_Convert() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Convert(::grpc::ServerContext* /*context*/, const ::oteldemo::CurrencyConversionRequest* /*request*/, ::oteldemo::Money* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_GetSupportedCurrencies : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_GetSupportedCurrencies() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_GetSupportedCurrencies() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetSupportedCurrencies(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::GetSupportedCurrenciesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetSupportedCurrencies(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_Convert : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_Convert() { + ::grpc::Service::MarkMethodRaw(1); + } + ~WithRawMethod_Convert() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Convert(::grpc::ServerContext* /*context*/, const ::oteldemo::CurrencyConversionRequest* /*request*/, ::oteldemo::Money* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestConvert(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_GetSupportedCurrencies : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_GetSupportedCurrencies() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetSupportedCurrencies(context, request, response); })); + } + ~WithRawCallbackMethod_GetSupportedCurrencies() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetSupportedCurrencies(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::GetSupportedCurrenciesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetSupportedCurrencies( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_Convert : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_Convert() { + ::grpc::Service::MarkMethodRawCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Convert(context, request, response); })); + } + ~WithRawCallbackMethod_Convert() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Convert(::grpc::ServerContext* /*context*/, const ::oteldemo::CurrencyConversionRequest* /*request*/, ::oteldemo::Money* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* Convert( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_GetSupportedCurrencies : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_GetSupportedCurrencies() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::Empty, ::oteldemo::GetSupportedCurrenciesResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::Empty, ::oteldemo::GetSupportedCurrenciesResponse>* streamer) { + return this->StreamedGetSupportedCurrencies(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_GetSupportedCurrencies() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetSupportedCurrencies(::grpc::ServerContext* /*context*/, const ::oteldemo::Empty* /*request*/, ::oteldemo::GetSupportedCurrenciesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetSupportedCurrencies(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::Empty,::oteldemo::GetSupportedCurrenciesResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_Convert : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_Convert() { + ::grpc::Service::MarkMethodStreamed(1, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::CurrencyConversionRequest, ::oteldemo::Money>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::CurrencyConversionRequest, ::oteldemo::Money>* streamer) { + return this->StreamedConvert(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_Convert() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status Convert(::grpc::ServerContext* /*context*/, const ::oteldemo::CurrencyConversionRequest* /*request*/, ::oteldemo::Money* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedConvert(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::CurrencyConversionRequest,::oteldemo::Money>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_GetSupportedCurrencies > StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_GetSupportedCurrencies > StreamedService; +}; + +// -------------Payment service----------------- +// +class PaymentService final { + public: + static constexpr char const* service_full_name() { + return "oteldemo.PaymentService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status Charge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::oteldemo::ChargeResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ChargeResponse>> AsyncCharge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ChargeResponse>>(AsyncChargeRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ChargeResponse>> PrepareAsyncCharge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ChargeResponse>>(PrepareAsyncChargeRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + virtual void Charge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest* request, ::oteldemo::ChargeResponse* response, std::function) = 0; + virtual void Charge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest* request, ::oteldemo::ChargeResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ChargeResponse>* AsyncChargeRaw(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ChargeResponse>* PrepareAsyncChargeRaw(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status Charge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::oteldemo::ChargeResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ChargeResponse>> AsyncCharge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ChargeResponse>>(AsyncChargeRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ChargeResponse>> PrepareAsyncCharge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ChargeResponse>>(PrepareAsyncChargeRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void Charge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest* request, ::oteldemo::ChargeResponse* response, std::function) override; + void Charge(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest* request, ::oteldemo::ChargeResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::oteldemo::ChargeResponse>* AsyncChargeRaw(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::ChargeResponse>* PrepareAsyncChargeRaw(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_Charge_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status Charge(::grpc::ServerContext* context, const ::oteldemo::ChargeRequest* request, ::oteldemo::ChargeResponse* response); + }; + template + class WithAsyncMethod_Charge : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_Charge() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_Charge() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Charge(::grpc::ServerContext* /*context*/, const ::oteldemo::ChargeRequest* /*request*/, ::oteldemo::ChargeResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestCharge(::grpc::ServerContext* context, ::oteldemo::ChargeRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::ChargeResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_Charge AsyncService; + template + class WithCallbackMethod_Charge : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_Charge() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::ChargeRequest, ::oteldemo::ChargeResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::ChargeRequest* request, ::oteldemo::ChargeResponse* response) { return this->Charge(context, request, response); }));} + void SetMessageAllocatorFor_Charge( + ::grpc::MessageAllocator< ::oteldemo::ChargeRequest, ::oteldemo::ChargeResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::ChargeRequest, ::oteldemo::ChargeResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_Charge() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Charge(::grpc::ServerContext* /*context*/, const ::oteldemo::ChargeRequest* /*request*/, ::oteldemo::ChargeResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* Charge( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::ChargeRequest* /*request*/, ::oteldemo::ChargeResponse* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_Charge CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_Charge : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_Charge() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_Charge() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Charge(::grpc::ServerContext* /*context*/, const ::oteldemo::ChargeRequest* /*request*/, ::oteldemo::ChargeResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_Charge : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_Charge() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_Charge() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Charge(::grpc::ServerContext* /*context*/, const ::oteldemo::ChargeRequest* /*request*/, ::oteldemo::ChargeResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestCharge(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_Charge : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_Charge() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Charge(context, request, response); })); + } + ~WithRawCallbackMethod_Charge() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Charge(::grpc::ServerContext* /*context*/, const ::oteldemo::ChargeRequest* /*request*/, ::oteldemo::ChargeResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* Charge( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_Charge : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_Charge() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::ChargeRequest, ::oteldemo::ChargeResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::ChargeRequest, ::oteldemo::ChargeResponse>* streamer) { + return this->StreamedCharge(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_Charge() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status Charge(::grpc::ServerContext* /*context*/, const ::oteldemo::ChargeRequest* /*request*/, ::oteldemo::ChargeResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedCharge(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::ChargeRequest,::oteldemo::ChargeResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_Charge StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_Charge StreamedService; +}; + +// -------------Email service----------------- +// +class EmailService final { + public: + static constexpr char const* service_full_name() { + return "oteldemo.EmailService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status SendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::oteldemo::Empty* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>> AsyncSendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>>(AsyncSendOrderConfirmationRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>> PrepareAsyncSendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>>(PrepareAsyncSendOrderConfirmationRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + virtual void SendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest* request, ::oteldemo::Empty* response, std::function) = 0; + virtual void SendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest* request, ::oteldemo::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>* AsyncSendOrderConfirmationRaw(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>* PrepareAsyncSendOrderConfirmationRaw(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status SendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::oteldemo::Empty* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>> AsyncSendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>>(AsyncSendOrderConfirmationRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>> PrepareAsyncSendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>>(PrepareAsyncSendOrderConfirmationRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void SendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest* request, ::oteldemo::Empty* response, std::function) override; + void SendOrderConfirmation(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest* request, ::oteldemo::Empty* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* AsyncSendOrderConfirmationRaw(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::Empty>* PrepareAsyncSendOrderConfirmationRaw(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_SendOrderConfirmation_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status SendOrderConfirmation(::grpc::ServerContext* context, const ::oteldemo::SendOrderConfirmationRequest* request, ::oteldemo::Empty* response); + }; + template + class WithAsyncMethod_SendOrderConfirmation : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_SendOrderConfirmation() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_SendOrderConfirmation() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SendOrderConfirmation(::grpc::ServerContext* /*context*/, const ::oteldemo::SendOrderConfirmationRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestSendOrderConfirmation(::grpc::ServerContext* context, ::oteldemo::SendOrderConfirmationRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_SendOrderConfirmation AsyncService; + template + class WithCallbackMethod_SendOrderConfirmation : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_SendOrderConfirmation() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::SendOrderConfirmationRequest, ::oteldemo::Empty>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::SendOrderConfirmationRequest* request, ::oteldemo::Empty* response) { return this->SendOrderConfirmation(context, request, response); }));} + void SetMessageAllocatorFor_SendOrderConfirmation( + ::grpc::MessageAllocator< ::oteldemo::SendOrderConfirmationRequest, ::oteldemo::Empty>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::SendOrderConfirmationRequest, ::oteldemo::Empty>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_SendOrderConfirmation() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SendOrderConfirmation(::grpc::ServerContext* /*context*/, const ::oteldemo::SendOrderConfirmationRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* SendOrderConfirmation( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::SendOrderConfirmationRequest* /*request*/, ::oteldemo::Empty* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_SendOrderConfirmation CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_SendOrderConfirmation : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_SendOrderConfirmation() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_SendOrderConfirmation() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SendOrderConfirmation(::grpc::ServerContext* /*context*/, const ::oteldemo::SendOrderConfirmationRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_SendOrderConfirmation : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_SendOrderConfirmation() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_SendOrderConfirmation() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SendOrderConfirmation(::grpc::ServerContext* /*context*/, const ::oteldemo::SendOrderConfirmationRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestSendOrderConfirmation(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_SendOrderConfirmation : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_SendOrderConfirmation() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SendOrderConfirmation(context, request, response); })); + } + ~WithRawCallbackMethod_SendOrderConfirmation() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status SendOrderConfirmation(::grpc::ServerContext* /*context*/, const ::oteldemo::SendOrderConfirmationRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* SendOrderConfirmation( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_SendOrderConfirmation : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_SendOrderConfirmation() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::SendOrderConfirmationRequest, ::oteldemo::Empty>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::SendOrderConfirmationRequest, ::oteldemo::Empty>* streamer) { + return this->StreamedSendOrderConfirmation(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_SendOrderConfirmation() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status SendOrderConfirmation(::grpc::ServerContext* /*context*/, const ::oteldemo::SendOrderConfirmationRequest* /*request*/, ::oteldemo::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedSendOrderConfirmation(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::SendOrderConfirmationRequest,::oteldemo::Empty>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_SendOrderConfirmation StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_SendOrderConfirmation StreamedService; +}; + +// -------------Checkout service----------------- +// +class CheckoutService final { + public: + static constexpr char const* service_full_name() { + return "oteldemo.CheckoutService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status PlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::oteldemo::PlaceOrderResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::PlaceOrderResponse>> AsyncPlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::PlaceOrderResponse>>(AsyncPlaceOrderRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::PlaceOrderResponse>> PrepareAsyncPlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::PlaceOrderResponse>>(PrepareAsyncPlaceOrderRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + virtual void PlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest* request, ::oteldemo::PlaceOrderResponse* response, std::function) = 0; + virtual void PlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest* request, ::oteldemo::PlaceOrderResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::PlaceOrderResponse>* AsyncPlaceOrderRaw(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::PlaceOrderResponse>* PrepareAsyncPlaceOrderRaw(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status PlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::oteldemo::PlaceOrderResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::PlaceOrderResponse>> AsyncPlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::PlaceOrderResponse>>(AsyncPlaceOrderRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::PlaceOrderResponse>> PrepareAsyncPlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::PlaceOrderResponse>>(PrepareAsyncPlaceOrderRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void PlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest* request, ::oteldemo::PlaceOrderResponse* response, std::function) override; + void PlaceOrder(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest* request, ::oteldemo::PlaceOrderResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::oteldemo::PlaceOrderResponse>* AsyncPlaceOrderRaw(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::PlaceOrderResponse>* PrepareAsyncPlaceOrderRaw(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_PlaceOrder_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status PlaceOrder(::grpc::ServerContext* context, const ::oteldemo::PlaceOrderRequest* request, ::oteldemo::PlaceOrderResponse* response); + }; + template + class WithAsyncMethod_PlaceOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_PlaceOrder() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_PlaceOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status PlaceOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::PlaceOrderRequest* /*request*/, ::oteldemo::PlaceOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestPlaceOrder(::grpc::ServerContext* context, ::oteldemo::PlaceOrderRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::PlaceOrderResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_PlaceOrder AsyncService; + template + class WithCallbackMethod_PlaceOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_PlaceOrder() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::PlaceOrderRequest, ::oteldemo::PlaceOrderResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::PlaceOrderRequest* request, ::oteldemo::PlaceOrderResponse* response) { return this->PlaceOrder(context, request, response); }));} + void SetMessageAllocatorFor_PlaceOrder( + ::grpc::MessageAllocator< ::oteldemo::PlaceOrderRequest, ::oteldemo::PlaceOrderResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::PlaceOrderRequest, ::oteldemo::PlaceOrderResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_PlaceOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status PlaceOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::PlaceOrderRequest* /*request*/, ::oteldemo::PlaceOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* PlaceOrder( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::PlaceOrderRequest* /*request*/, ::oteldemo::PlaceOrderResponse* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_PlaceOrder CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_PlaceOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_PlaceOrder() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_PlaceOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status PlaceOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::PlaceOrderRequest* /*request*/, ::oteldemo::PlaceOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_PlaceOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_PlaceOrder() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_PlaceOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status PlaceOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::PlaceOrderRequest* /*request*/, ::oteldemo::PlaceOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestPlaceOrder(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_PlaceOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_PlaceOrder() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->PlaceOrder(context, request, response); })); + } + ~WithRawCallbackMethod_PlaceOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status PlaceOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::PlaceOrderRequest* /*request*/, ::oteldemo::PlaceOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* PlaceOrder( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_PlaceOrder : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_PlaceOrder() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::PlaceOrderRequest, ::oteldemo::PlaceOrderResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::PlaceOrderRequest, ::oteldemo::PlaceOrderResponse>* streamer) { + return this->StreamedPlaceOrder(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_PlaceOrder() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status PlaceOrder(::grpc::ServerContext* /*context*/, const ::oteldemo::PlaceOrderRequest* /*request*/, ::oteldemo::PlaceOrderResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedPlaceOrder(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::PlaceOrderRequest,::oteldemo::PlaceOrderResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_PlaceOrder StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_PlaceOrder StreamedService; +}; + +// ------------Ad service------------------ +// +class AdService final { + public: + static constexpr char const* service_full_name() { + return "oteldemo.AdService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status GetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::oteldemo::AdResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::AdResponse>> AsyncGetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::AdResponse>>(AsyncGetAdsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::AdResponse>> PrepareAsyncGetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::AdResponse>>(PrepareAsyncGetAdsRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + virtual void GetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest* request, ::oteldemo::AdResponse* response, std::function) = 0; + virtual void GetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest* request, ::oteldemo::AdResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::AdResponse>* AsyncGetAdsRaw(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::AdResponse>* PrepareAsyncGetAdsRaw(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status GetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::oteldemo::AdResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::AdResponse>> AsyncGetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::AdResponse>>(AsyncGetAdsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::AdResponse>> PrepareAsyncGetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::AdResponse>>(PrepareAsyncGetAdsRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void GetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest* request, ::oteldemo::AdResponse* response, std::function) override; + void GetAds(::grpc::ClientContext* context, const ::oteldemo::AdRequest* request, ::oteldemo::AdResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::oteldemo::AdResponse>* AsyncGetAdsRaw(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::AdResponse>* PrepareAsyncGetAdsRaw(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_GetAds_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status GetAds(::grpc::ServerContext* context, const ::oteldemo::AdRequest* request, ::oteldemo::AdResponse* response); + }; + template + class WithAsyncMethod_GetAds : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_GetAds() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_GetAds() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetAds(::grpc::ServerContext* /*context*/, const ::oteldemo::AdRequest* /*request*/, ::oteldemo::AdResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetAds(::grpc::ServerContext* context, ::oteldemo::AdRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::AdResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_GetAds AsyncService; + template + class WithCallbackMethod_GetAds : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_GetAds() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::AdRequest, ::oteldemo::AdResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::AdRequest* request, ::oteldemo::AdResponse* response) { return this->GetAds(context, request, response); }));} + void SetMessageAllocatorFor_GetAds( + ::grpc::MessageAllocator< ::oteldemo::AdRequest, ::oteldemo::AdResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::AdRequest, ::oteldemo::AdResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_GetAds() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetAds(::grpc::ServerContext* /*context*/, const ::oteldemo::AdRequest* /*request*/, ::oteldemo::AdResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetAds( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::AdRequest* /*request*/, ::oteldemo::AdResponse* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_GetAds CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_GetAds : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_GetAds() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_GetAds() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetAds(::grpc::ServerContext* /*context*/, const ::oteldemo::AdRequest* /*request*/, ::oteldemo::AdResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_GetAds : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_GetAds() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_GetAds() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetAds(::grpc::ServerContext* /*context*/, const ::oteldemo::AdRequest* /*request*/, ::oteldemo::AdResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetAds(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_GetAds : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_GetAds() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetAds(context, request, response); })); + } + ~WithRawCallbackMethod_GetAds() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetAds(::grpc::ServerContext* /*context*/, const ::oteldemo::AdRequest* /*request*/, ::oteldemo::AdResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetAds( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_GetAds : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_GetAds() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::AdRequest, ::oteldemo::AdResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::AdRequest, ::oteldemo::AdResponse>* streamer) { + return this->StreamedGetAds(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_GetAds() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetAds(::grpc::ServerContext* /*context*/, const ::oteldemo::AdRequest* /*request*/, ::oteldemo::AdResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetAds(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::AdRequest,::oteldemo::AdResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_GetAds StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_GetAds StreamedService; +}; + +// ------------Feature flag service------------------ +// +class FeatureFlagService final { + public: + static constexpr char const* service_full_name() { + return "oteldemo.FeatureFlagService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status GetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::oteldemo::GetFlagResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetFlagResponse>> AsyncGetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetFlagResponse>>(AsyncGetFlagRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetFlagResponse>> PrepareAsyncGetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetFlagResponse>>(PrepareAsyncGetFlagRaw(context, request, cq)); + } + virtual ::grpc::Status CreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::oteldemo::CreateFlagResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::CreateFlagResponse>> AsyncCreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::CreateFlagResponse>>(AsyncCreateFlagRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::CreateFlagResponse>> PrepareAsyncCreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::CreateFlagResponse>>(PrepareAsyncCreateFlagRaw(context, request, cq)); + } + virtual ::grpc::Status UpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::oteldemo::UpdateFlagResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::UpdateFlagResponse>> AsyncUpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::UpdateFlagResponse>>(AsyncUpdateFlagRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::UpdateFlagResponse>> PrepareAsyncUpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::UpdateFlagResponse>>(PrepareAsyncUpdateFlagRaw(context, request, cq)); + } + virtual ::grpc::Status ListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::oteldemo::ListFlagsResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListFlagsResponse>> AsyncListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListFlagsResponse>>(AsyncListFlagsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListFlagsResponse>> PrepareAsyncListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListFlagsResponse>>(PrepareAsyncListFlagsRaw(context, request, cq)); + } + virtual ::grpc::Status DeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::oteldemo::DeleteFlagResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::DeleteFlagResponse>> AsyncDeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::DeleteFlagResponse>>(AsyncDeleteFlagRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::DeleteFlagResponse>> PrepareAsyncDeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::DeleteFlagResponse>>(PrepareAsyncDeleteFlagRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + virtual void GetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest* request, ::oteldemo::GetFlagResponse* response, std::function) = 0; + virtual void GetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest* request, ::oteldemo::GetFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + virtual void CreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest* request, ::oteldemo::CreateFlagResponse* response, std::function) = 0; + virtual void CreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest* request, ::oteldemo::CreateFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + virtual void UpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest* request, ::oteldemo::UpdateFlagResponse* response, std::function) = 0; + virtual void UpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest* request, ::oteldemo::UpdateFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + virtual void ListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest* request, ::oteldemo::ListFlagsResponse* response, std::function) = 0; + virtual void ListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest* request, ::oteldemo::ListFlagsResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + virtual void DeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest* request, ::oteldemo::DeleteFlagResponse* response, std::function) = 0; + virtual void DeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest* request, ::oteldemo::DeleteFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetFlagResponse>* AsyncGetFlagRaw(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetFlagResponse>* PrepareAsyncGetFlagRaw(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::CreateFlagResponse>* AsyncCreateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::CreateFlagResponse>* PrepareAsyncCreateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::UpdateFlagResponse>* AsyncUpdateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::UpdateFlagResponse>* PrepareAsyncUpdateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListFlagsResponse>* AsyncListFlagsRaw(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListFlagsResponse>* PrepareAsyncListFlagsRaw(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::DeleteFlagResponse>* AsyncDeleteFlagRaw(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::DeleteFlagResponse>* PrepareAsyncDeleteFlagRaw(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status GetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::oteldemo::GetFlagResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetFlagResponse>> AsyncGetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetFlagResponse>>(AsyncGetFlagRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetFlagResponse>> PrepareAsyncGetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::GetFlagResponse>>(PrepareAsyncGetFlagRaw(context, request, cq)); + } + ::grpc::Status CreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::oteldemo::CreateFlagResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::CreateFlagResponse>> AsyncCreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::CreateFlagResponse>>(AsyncCreateFlagRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::CreateFlagResponse>> PrepareAsyncCreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::CreateFlagResponse>>(PrepareAsyncCreateFlagRaw(context, request, cq)); + } + ::grpc::Status UpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::oteldemo::UpdateFlagResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::UpdateFlagResponse>> AsyncUpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::UpdateFlagResponse>>(AsyncUpdateFlagRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::UpdateFlagResponse>> PrepareAsyncUpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::UpdateFlagResponse>>(PrepareAsyncUpdateFlagRaw(context, request, cq)); + } + ::grpc::Status ListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::oteldemo::ListFlagsResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListFlagsResponse>> AsyncListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListFlagsResponse>>(AsyncListFlagsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListFlagsResponse>> PrepareAsyncListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::ListFlagsResponse>>(PrepareAsyncListFlagsRaw(context, request, cq)); + } + ::grpc::Status DeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::oteldemo::DeleteFlagResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::DeleteFlagResponse>> AsyncDeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::DeleteFlagResponse>>(AsyncDeleteFlagRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::DeleteFlagResponse>> PrepareAsyncDeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::oteldemo::DeleteFlagResponse>>(PrepareAsyncDeleteFlagRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void GetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest* request, ::oteldemo::GetFlagResponse* response, std::function) override; + void GetFlag(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest* request, ::oteldemo::GetFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void CreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest* request, ::oteldemo::CreateFlagResponse* response, std::function) override; + void CreateFlag(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest* request, ::oteldemo::CreateFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void UpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest* request, ::oteldemo::UpdateFlagResponse* response, std::function) override; + void UpdateFlag(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest* request, ::oteldemo::UpdateFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void ListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest* request, ::oteldemo::ListFlagsResponse* response, std::function) override; + void ListFlags(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest* request, ::oteldemo::ListFlagsResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void DeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest* request, ::oteldemo::DeleteFlagResponse* response, std::function) override; + void DeleteFlag(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest* request, ::oteldemo::DeleteFlagResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::oteldemo::GetFlagResponse>* AsyncGetFlagRaw(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::GetFlagResponse>* PrepareAsyncGetFlagRaw(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::CreateFlagResponse>* AsyncCreateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::CreateFlagResponse>* PrepareAsyncCreateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::UpdateFlagResponse>* AsyncUpdateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::UpdateFlagResponse>* PrepareAsyncUpdateFlagRaw(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::ListFlagsResponse>* AsyncListFlagsRaw(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::ListFlagsResponse>* PrepareAsyncListFlagsRaw(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::DeleteFlagResponse>* AsyncDeleteFlagRaw(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::oteldemo::DeleteFlagResponse>* PrepareAsyncDeleteFlagRaw(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_GetFlag_; + const ::grpc::internal::RpcMethod rpcmethod_CreateFlag_; + const ::grpc::internal::RpcMethod rpcmethod_UpdateFlag_; + const ::grpc::internal::RpcMethod rpcmethod_ListFlags_; + const ::grpc::internal::RpcMethod rpcmethod_DeleteFlag_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status GetFlag(::grpc::ServerContext* context, const ::oteldemo::GetFlagRequest* request, ::oteldemo::GetFlagResponse* response); + virtual ::grpc::Status CreateFlag(::grpc::ServerContext* context, const ::oteldemo::CreateFlagRequest* request, ::oteldemo::CreateFlagResponse* response); + virtual ::grpc::Status UpdateFlag(::grpc::ServerContext* context, const ::oteldemo::UpdateFlagRequest* request, ::oteldemo::UpdateFlagResponse* response); + virtual ::grpc::Status ListFlags(::grpc::ServerContext* context, const ::oteldemo::ListFlagsRequest* request, ::oteldemo::ListFlagsResponse* response); + virtual ::grpc::Status DeleteFlag(::grpc::ServerContext* context, const ::oteldemo::DeleteFlagRequest* request, ::oteldemo::DeleteFlagResponse* response); + }; + template + class WithAsyncMethod_GetFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_GetFlag() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_GetFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::GetFlagRequest* /*request*/, ::oteldemo::GetFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetFlag(::grpc::ServerContext* context, ::oteldemo::GetFlagRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::GetFlagResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_CreateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_CreateFlag() { + ::grpc::Service::MarkMethodAsync(1); + } + ~WithAsyncMethod_CreateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status CreateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::CreateFlagRequest* /*request*/, ::oteldemo::CreateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestCreateFlag(::grpc::ServerContext* context, ::oteldemo::CreateFlagRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::CreateFlagResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_UpdateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_UpdateFlag() { + ::grpc::Service::MarkMethodAsync(2); + } + ~WithAsyncMethod_UpdateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::UpdateFlagRequest* /*request*/, ::oteldemo::UpdateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestUpdateFlag(::grpc::ServerContext* context, ::oteldemo::UpdateFlagRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::UpdateFlagResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_ListFlags : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_ListFlags() { + ::grpc::Service::MarkMethodAsync(3); + } + ~WithAsyncMethod_ListFlags() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListFlags(::grpc::ServerContext* /*context*/, const ::oteldemo::ListFlagsRequest* /*request*/, ::oteldemo::ListFlagsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListFlags(::grpc::ServerContext* context, ::oteldemo::ListFlagsRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::ListFlagsResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_DeleteFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_DeleteFlag() { + ::grpc::Service::MarkMethodAsync(4); + } + ~WithAsyncMethod_DeleteFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DeleteFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::DeleteFlagRequest* /*request*/, ::oteldemo::DeleteFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestDeleteFlag(::grpc::ServerContext* context, ::oteldemo::DeleteFlagRequest* request, ::grpc::ServerAsyncResponseWriter< ::oteldemo::DeleteFlagResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_GetFlag > > > > AsyncService; + template + class WithCallbackMethod_GetFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_GetFlag() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::GetFlagRequest, ::oteldemo::GetFlagResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::GetFlagRequest* request, ::oteldemo::GetFlagResponse* response) { return this->GetFlag(context, request, response); }));} + void SetMessageAllocatorFor_GetFlag( + ::grpc::MessageAllocator< ::oteldemo::GetFlagRequest, ::oteldemo::GetFlagResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::GetFlagRequest, ::oteldemo::GetFlagResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_GetFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::GetFlagRequest* /*request*/, ::oteldemo::GetFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetFlag( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::GetFlagRequest* /*request*/, ::oteldemo::GetFlagResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_CreateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_CreateFlag() { + ::grpc::Service::MarkMethodCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::CreateFlagRequest, ::oteldemo::CreateFlagResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::CreateFlagRequest* request, ::oteldemo::CreateFlagResponse* response) { return this->CreateFlag(context, request, response); }));} + void SetMessageAllocatorFor_CreateFlag( + ::grpc::MessageAllocator< ::oteldemo::CreateFlagRequest, ::oteldemo::CreateFlagResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::CreateFlagRequest, ::oteldemo::CreateFlagResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_CreateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status CreateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::CreateFlagRequest* /*request*/, ::oteldemo::CreateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* CreateFlag( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::CreateFlagRequest* /*request*/, ::oteldemo::CreateFlagResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_UpdateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_UpdateFlag() { + ::grpc::Service::MarkMethodCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::UpdateFlagRequest, ::oteldemo::UpdateFlagResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::UpdateFlagRequest* request, ::oteldemo::UpdateFlagResponse* response) { return this->UpdateFlag(context, request, response); }));} + void SetMessageAllocatorFor_UpdateFlag( + ::grpc::MessageAllocator< ::oteldemo::UpdateFlagRequest, ::oteldemo::UpdateFlagResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(2); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::UpdateFlagRequest, ::oteldemo::UpdateFlagResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_UpdateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::UpdateFlagRequest* /*request*/, ::oteldemo::UpdateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* UpdateFlag( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::UpdateFlagRequest* /*request*/, ::oteldemo::UpdateFlagResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_ListFlags : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_ListFlags() { + ::grpc::Service::MarkMethodCallback(3, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::ListFlagsRequest, ::oteldemo::ListFlagsResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::ListFlagsRequest* request, ::oteldemo::ListFlagsResponse* response) { return this->ListFlags(context, request, response); }));} + void SetMessageAllocatorFor_ListFlags( + ::grpc::MessageAllocator< ::oteldemo::ListFlagsRequest, ::oteldemo::ListFlagsResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(3); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::ListFlagsRequest, ::oteldemo::ListFlagsResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_ListFlags() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListFlags(::grpc::ServerContext* /*context*/, const ::oteldemo::ListFlagsRequest* /*request*/, ::oteldemo::ListFlagsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* ListFlags( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::ListFlagsRequest* /*request*/, ::oteldemo::ListFlagsResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_DeleteFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_DeleteFlag() { + ::grpc::Service::MarkMethodCallback(4, + new ::grpc::internal::CallbackUnaryHandler< ::oteldemo::DeleteFlagRequest, ::oteldemo::DeleteFlagResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::oteldemo::DeleteFlagRequest* request, ::oteldemo::DeleteFlagResponse* response) { return this->DeleteFlag(context, request, response); }));} + void SetMessageAllocatorFor_DeleteFlag( + ::grpc::MessageAllocator< ::oteldemo::DeleteFlagRequest, ::oteldemo::DeleteFlagResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(4); + static_cast<::grpc::internal::CallbackUnaryHandler< ::oteldemo::DeleteFlagRequest, ::oteldemo::DeleteFlagResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_DeleteFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DeleteFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::DeleteFlagRequest* /*request*/, ::oteldemo::DeleteFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* DeleteFlag( + ::grpc::CallbackServerContext* /*context*/, const ::oteldemo::DeleteFlagRequest* /*request*/, ::oteldemo::DeleteFlagResponse* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_GetFlag > > > > CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_GetFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_GetFlag() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_GetFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::GetFlagRequest* /*request*/, ::oteldemo::GetFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_CreateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_CreateFlag() { + ::grpc::Service::MarkMethodGeneric(1); + } + ~WithGenericMethod_CreateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status CreateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::CreateFlagRequest* /*request*/, ::oteldemo::CreateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_UpdateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_UpdateFlag() { + ::grpc::Service::MarkMethodGeneric(2); + } + ~WithGenericMethod_UpdateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::UpdateFlagRequest* /*request*/, ::oteldemo::UpdateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_ListFlags : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_ListFlags() { + ::grpc::Service::MarkMethodGeneric(3); + } + ~WithGenericMethod_ListFlags() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListFlags(::grpc::ServerContext* /*context*/, const ::oteldemo::ListFlagsRequest* /*request*/, ::oteldemo::ListFlagsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_DeleteFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_DeleteFlag() { + ::grpc::Service::MarkMethodGeneric(4); + } + ~WithGenericMethod_DeleteFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DeleteFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::DeleteFlagRequest* /*request*/, ::oteldemo::DeleteFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_GetFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_GetFlag() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_GetFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::GetFlagRequest* /*request*/, ::oteldemo::GetFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetFlag(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_CreateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_CreateFlag() { + ::grpc::Service::MarkMethodRaw(1); + } + ~WithRawMethod_CreateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status CreateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::CreateFlagRequest* /*request*/, ::oteldemo::CreateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestCreateFlag(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_UpdateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_UpdateFlag() { + ::grpc::Service::MarkMethodRaw(2); + } + ~WithRawMethod_UpdateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::UpdateFlagRequest* /*request*/, ::oteldemo::UpdateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestUpdateFlag(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_ListFlags : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_ListFlags() { + ::grpc::Service::MarkMethodRaw(3); + } + ~WithRawMethod_ListFlags() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListFlags(::grpc::ServerContext* /*context*/, const ::oteldemo::ListFlagsRequest* /*request*/, ::oteldemo::ListFlagsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListFlags(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_DeleteFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_DeleteFlag() { + ::grpc::Service::MarkMethodRaw(4); + } + ~WithRawMethod_DeleteFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DeleteFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::DeleteFlagRequest* /*request*/, ::oteldemo::DeleteFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestDeleteFlag(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_GetFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_GetFlag() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetFlag(context, request, response); })); + } + ~WithRawCallbackMethod_GetFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::GetFlagRequest* /*request*/, ::oteldemo::GetFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetFlag( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_CreateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_CreateFlag() { + ::grpc::Service::MarkMethodRawCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->CreateFlag(context, request, response); })); + } + ~WithRawCallbackMethod_CreateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status CreateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::CreateFlagRequest* /*request*/, ::oteldemo::CreateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* CreateFlag( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_UpdateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_UpdateFlag() { + ::grpc::Service::MarkMethodRawCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->UpdateFlag(context, request, response); })); + } + ~WithRawCallbackMethod_UpdateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::UpdateFlagRequest* /*request*/, ::oteldemo::UpdateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* UpdateFlag( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_ListFlags : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_ListFlags() { + ::grpc::Service::MarkMethodRawCallback(3, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ListFlags(context, request, response); })); + } + ~WithRawCallbackMethod_ListFlags() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListFlags(::grpc::ServerContext* /*context*/, const ::oteldemo::ListFlagsRequest* /*request*/, ::oteldemo::ListFlagsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* ListFlags( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_DeleteFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_DeleteFlag() { + ::grpc::Service::MarkMethodRawCallback(4, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DeleteFlag(context, request, response); })); + } + ~WithRawCallbackMethod_DeleteFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DeleteFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::DeleteFlagRequest* /*request*/, ::oteldemo::DeleteFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* DeleteFlag( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_GetFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_GetFlag() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::GetFlagRequest, ::oteldemo::GetFlagResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::GetFlagRequest, ::oteldemo::GetFlagResponse>* streamer) { + return this->StreamedGetFlag(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_GetFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::GetFlagRequest* /*request*/, ::oteldemo::GetFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetFlag(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::GetFlagRequest,::oteldemo::GetFlagResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_CreateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_CreateFlag() { + ::grpc::Service::MarkMethodStreamed(1, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::CreateFlagRequest, ::oteldemo::CreateFlagResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::CreateFlagRequest, ::oteldemo::CreateFlagResponse>* streamer) { + return this->StreamedCreateFlag(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_CreateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status CreateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::CreateFlagRequest* /*request*/, ::oteldemo::CreateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedCreateFlag(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::CreateFlagRequest,::oteldemo::CreateFlagResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_UpdateFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_UpdateFlag() { + ::grpc::Service::MarkMethodStreamed(2, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::UpdateFlagRequest, ::oteldemo::UpdateFlagResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::UpdateFlagRequest, ::oteldemo::UpdateFlagResponse>* streamer) { + return this->StreamedUpdateFlag(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_UpdateFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status UpdateFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::UpdateFlagRequest* /*request*/, ::oteldemo::UpdateFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedUpdateFlag(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::UpdateFlagRequest,::oteldemo::UpdateFlagResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_ListFlags : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_ListFlags() { + ::grpc::Service::MarkMethodStreamed(3, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::ListFlagsRequest, ::oteldemo::ListFlagsResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::ListFlagsRequest, ::oteldemo::ListFlagsResponse>* streamer) { + return this->StreamedListFlags(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_ListFlags() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status ListFlags(::grpc::ServerContext* /*context*/, const ::oteldemo::ListFlagsRequest* /*request*/, ::oteldemo::ListFlagsResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedListFlags(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::ListFlagsRequest,::oteldemo::ListFlagsResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_DeleteFlag : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_DeleteFlag() { + ::grpc::Service::MarkMethodStreamed(4, + new ::grpc::internal::StreamedUnaryHandler< + ::oteldemo::DeleteFlagRequest, ::oteldemo::DeleteFlagResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::oteldemo::DeleteFlagRequest, ::oteldemo::DeleteFlagResponse>* streamer) { + return this->StreamedDeleteFlag(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_DeleteFlag() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status DeleteFlag(::grpc::ServerContext* /*context*/, const ::oteldemo::DeleteFlagRequest* /*request*/, ::oteldemo::DeleteFlagResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedDeleteFlag(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::oteldemo::DeleteFlagRequest,::oteldemo::DeleteFlagResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_GetFlag > > > > StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_GetFlag > > > > StreamedService; +}; + +} // namespace oteldemo + + +#endif // GRPC_demo_2eproto__INCLUDED diff --git a/src/currency/build/generated/proto/demo.pb.cc b/src/currency/build/generated/proto/demo.pb.cc new file mode 100644 index 0000000000..96126972c0 --- /dev/null +++ b/src/currency/build/generated/proto/demo.pb.cc @@ -0,0 +1,10792 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: demo.proto + +#include "demo.pb.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +// @@protoc_insertion_point(includes) +#include + +PROTOBUF_PRAGMA_INIT_SEG + +namespace _pb = ::PROTOBUF_NAMESPACE_ID; +namespace _pbi = _pb::internal; + +namespace oteldemo { +PROTOBUF_CONSTEXPR CartItem::CartItem( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.product_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.quantity_)*/0 + , /*decltype(_impl_._cached_size_)*/{}} {} +struct CartItemDefaultTypeInternal { + PROTOBUF_CONSTEXPR CartItemDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~CartItemDefaultTypeInternal() {} + union { + CartItem _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CartItemDefaultTypeInternal _CartItem_default_instance_; +PROTOBUF_CONSTEXPR AddItemRequest::AddItemRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.user_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.item_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct AddItemRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR AddItemRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~AddItemRequestDefaultTypeInternal() {} + union { + AddItemRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AddItemRequestDefaultTypeInternal _AddItemRequest_default_instance_; +PROTOBUF_CONSTEXPR EmptyCartRequest::EmptyCartRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.user_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct EmptyCartRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR EmptyCartRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~EmptyCartRequestDefaultTypeInternal() {} + union { + EmptyCartRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 EmptyCartRequestDefaultTypeInternal _EmptyCartRequest_default_instance_; +PROTOBUF_CONSTEXPR GetCartRequest::GetCartRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.user_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct GetCartRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR GetCartRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~GetCartRequestDefaultTypeInternal() {} + union { + GetCartRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetCartRequestDefaultTypeInternal _GetCartRequest_default_instance_; +PROTOBUF_CONSTEXPR Cart::Cart( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.items_)*/{} + , /*decltype(_impl_.user_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct CartDefaultTypeInternal { + PROTOBUF_CONSTEXPR CartDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~CartDefaultTypeInternal() {} + union { + Cart _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CartDefaultTypeInternal _Cart_default_instance_; +PROTOBUF_CONSTEXPR Empty::Empty( + ::_pbi::ConstantInitialized) {} +struct EmptyDefaultTypeInternal { + PROTOBUF_CONSTEXPR EmptyDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~EmptyDefaultTypeInternal() {} + union { + Empty _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 EmptyDefaultTypeInternal _Empty_default_instance_; +PROTOBUF_CONSTEXPR ListRecommendationsRequest::ListRecommendationsRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.product_ids_)*/{} + , /*decltype(_impl_.user_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct ListRecommendationsRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR ListRecommendationsRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~ListRecommendationsRequestDefaultTypeInternal() {} + union { + ListRecommendationsRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ListRecommendationsRequestDefaultTypeInternal _ListRecommendationsRequest_default_instance_; +PROTOBUF_CONSTEXPR ListRecommendationsResponse::ListRecommendationsResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.product_ids_)*/{} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct ListRecommendationsResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR ListRecommendationsResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~ListRecommendationsResponseDefaultTypeInternal() {} + union { + ListRecommendationsResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ListRecommendationsResponseDefaultTypeInternal _ListRecommendationsResponse_default_instance_; +PROTOBUF_CONSTEXPR Product::Product( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.categories_)*/{} + , /*decltype(_impl_.id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.description_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.picture_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.price_usd_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct ProductDefaultTypeInternal { + PROTOBUF_CONSTEXPR ProductDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~ProductDefaultTypeInternal() {} + union { + Product _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ProductDefaultTypeInternal _Product_default_instance_; +PROTOBUF_CONSTEXPR ListProductsResponse::ListProductsResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.products_)*/{} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct ListProductsResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR ListProductsResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~ListProductsResponseDefaultTypeInternal() {} + union { + ListProductsResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ListProductsResponseDefaultTypeInternal _ListProductsResponse_default_instance_; +PROTOBUF_CONSTEXPR GetProductRequest::GetProductRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct GetProductRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR GetProductRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~GetProductRequestDefaultTypeInternal() {} + union { + GetProductRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetProductRequestDefaultTypeInternal _GetProductRequest_default_instance_; +PROTOBUF_CONSTEXPR SearchProductsRequest::SearchProductsRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.query_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct SearchProductsRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR SearchProductsRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~SearchProductsRequestDefaultTypeInternal() {} + union { + SearchProductsRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SearchProductsRequestDefaultTypeInternal _SearchProductsRequest_default_instance_; +PROTOBUF_CONSTEXPR SearchProductsResponse::SearchProductsResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.results_)*/{} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct SearchProductsResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR SearchProductsResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~SearchProductsResponseDefaultTypeInternal() {} + union { + SearchProductsResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SearchProductsResponseDefaultTypeInternal _SearchProductsResponse_default_instance_; +PROTOBUF_CONSTEXPR GetQuoteRequest::GetQuoteRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.items_)*/{} + , /*decltype(_impl_.address_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct GetQuoteRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR GetQuoteRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~GetQuoteRequestDefaultTypeInternal() {} + union { + GetQuoteRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetQuoteRequestDefaultTypeInternal _GetQuoteRequest_default_instance_; +PROTOBUF_CONSTEXPR GetQuoteResponse::GetQuoteResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.cost_usd_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct GetQuoteResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR GetQuoteResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~GetQuoteResponseDefaultTypeInternal() {} + union { + GetQuoteResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetQuoteResponseDefaultTypeInternal _GetQuoteResponse_default_instance_; +PROTOBUF_CONSTEXPR ShipOrderRequest::ShipOrderRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.items_)*/{} + , /*decltype(_impl_.address_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct ShipOrderRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR ShipOrderRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~ShipOrderRequestDefaultTypeInternal() {} + union { + ShipOrderRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ShipOrderRequestDefaultTypeInternal _ShipOrderRequest_default_instance_; +PROTOBUF_CONSTEXPR ShipOrderResponse::ShipOrderResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.tracking_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct ShipOrderResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR ShipOrderResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~ShipOrderResponseDefaultTypeInternal() {} + union { + ShipOrderResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ShipOrderResponseDefaultTypeInternal _ShipOrderResponse_default_instance_; +PROTOBUF_CONSTEXPR Address::Address( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.street_address_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.city_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.state_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.country_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.zip_code_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct AddressDefaultTypeInternal { + PROTOBUF_CONSTEXPR AddressDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~AddressDefaultTypeInternal() {} + union { + Address _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AddressDefaultTypeInternal _Address_default_instance_; +PROTOBUF_CONSTEXPR Money::Money( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.currency_code_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.units_)*/int64_t{0} + , /*decltype(_impl_.nanos_)*/0 + , /*decltype(_impl_._cached_size_)*/{}} {} +struct MoneyDefaultTypeInternal { + PROTOBUF_CONSTEXPR MoneyDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~MoneyDefaultTypeInternal() {} + union { + Money _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MoneyDefaultTypeInternal _Money_default_instance_; +PROTOBUF_CONSTEXPR GetSupportedCurrenciesResponse::GetSupportedCurrenciesResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.currency_codes_)*/{} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct GetSupportedCurrenciesResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR GetSupportedCurrenciesResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~GetSupportedCurrenciesResponseDefaultTypeInternal() {} + union { + GetSupportedCurrenciesResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetSupportedCurrenciesResponseDefaultTypeInternal _GetSupportedCurrenciesResponse_default_instance_; +PROTOBUF_CONSTEXPR CurrencyConversionRequest::CurrencyConversionRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.to_code_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.from_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct CurrencyConversionRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR CurrencyConversionRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~CurrencyConversionRequestDefaultTypeInternal() {} + union { + CurrencyConversionRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CurrencyConversionRequestDefaultTypeInternal _CurrencyConversionRequest_default_instance_; +PROTOBUF_CONSTEXPR CreditCardInfo::CreditCardInfo( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.credit_card_number_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.credit_card_cvv_)*/0 + , /*decltype(_impl_.credit_card_expiration_year_)*/0 + , /*decltype(_impl_.credit_card_expiration_month_)*/0 + , /*decltype(_impl_._cached_size_)*/{}} {} +struct CreditCardInfoDefaultTypeInternal { + PROTOBUF_CONSTEXPR CreditCardInfoDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~CreditCardInfoDefaultTypeInternal() {} + union { + CreditCardInfo _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CreditCardInfoDefaultTypeInternal _CreditCardInfo_default_instance_; +PROTOBUF_CONSTEXPR ChargeRequest::ChargeRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.amount_)*/nullptr + , /*decltype(_impl_.credit_card_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct ChargeRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR ChargeRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~ChargeRequestDefaultTypeInternal() {} + union { + ChargeRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ChargeRequestDefaultTypeInternal _ChargeRequest_default_instance_; +PROTOBUF_CONSTEXPR ChargeResponse::ChargeResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.transaction_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct ChargeResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR ChargeResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~ChargeResponseDefaultTypeInternal() {} + union { + ChargeResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ChargeResponseDefaultTypeInternal _ChargeResponse_default_instance_; +PROTOBUF_CONSTEXPR OrderItem::OrderItem( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.item_)*/nullptr + , /*decltype(_impl_.cost_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct OrderItemDefaultTypeInternal { + PROTOBUF_CONSTEXPR OrderItemDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~OrderItemDefaultTypeInternal() {} + union { + OrderItem _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OrderItemDefaultTypeInternal _OrderItem_default_instance_; +PROTOBUF_CONSTEXPR OrderResult::OrderResult( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.items_)*/{} + , /*decltype(_impl_.order_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.shipping_tracking_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.shipping_cost_)*/nullptr + , /*decltype(_impl_.shipping_address_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct OrderResultDefaultTypeInternal { + PROTOBUF_CONSTEXPR OrderResultDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~OrderResultDefaultTypeInternal() {} + union { + OrderResult _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OrderResultDefaultTypeInternal _OrderResult_default_instance_; +PROTOBUF_CONSTEXPR SendOrderConfirmationRequest::SendOrderConfirmationRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.email_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.order_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct SendOrderConfirmationRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR SendOrderConfirmationRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~SendOrderConfirmationRequestDefaultTypeInternal() {} + union { + SendOrderConfirmationRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SendOrderConfirmationRequestDefaultTypeInternal _SendOrderConfirmationRequest_default_instance_; +PROTOBUF_CONSTEXPR PlaceOrderRequest::PlaceOrderRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.user_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.user_currency_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.email_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.address_)*/nullptr + , /*decltype(_impl_.credit_card_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct PlaceOrderRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR PlaceOrderRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~PlaceOrderRequestDefaultTypeInternal() {} + union { + PlaceOrderRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PlaceOrderRequestDefaultTypeInternal _PlaceOrderRequest_default_instance_; +PROTOBUF_CONSTEXPR PlaceOrderResponse::PlaceOrderResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.order_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct PlaceOrderResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR PlaceOrderResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~PlaceOrderResponseDefaultTypeInternal() {} + union { + PlaceOrderResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PlaceOrderResponseDefaultTypeInternal _PlaceOrderResponse_default_instance_; +PROTOBUF_CONSTEXPR AdRequest::AdRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.context_keys_)*/{} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct AdRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR AdRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~AdRequestDefaultTypeInternal() {} + union { + AdRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AdRequestDefaultTypeInternal _AdRequest_default_instance_; +PROTOBUF_CONSTEXPR AdResponse::AdResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.ads_)*/{} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct AdResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR AdResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~AdResponseDefaultTypeInternal() {} + union { + AdResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AdResponseDefaultTypeInternal _AdResponse_default_instance_; +PROTOBUF_CONSTEXPR Ad::Ad( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.redirect_url_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.text_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct AdDefaultTypeInternal { + PROTOBUF_CONSTEXPR AdDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~AdDefaultTypeInternal() {} + union { + Ad _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AdDefaultTypeInternal _Ad_default_instance_; +PROTOBUF_CONSTEXPR Flag::Flag( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.description_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.enabled_)*/false + , /*decltype(_impl_._cached_size_)*/{}} {} +struct FlagDefaultTypeInternal { + PROTOBUF_CONSTEXPR FlagDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~FlagDefaultTypeInternal() {} + union { + Flag _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 FlagDefaultTypeInternal _Flag_default_instance_; +PROTOBUF_CONSTEXPR GetFlagRequest::GetFlagRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct GetFlagRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR GetFlagRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~GetFlagRequestDefaultTypeInternal() {} + union { + GetFlagRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetFlagRequestDefaultTypeInternal _GetFlagRequest_default_instance_; +PROTOBUF_CONSTEXPR GetFlagResponse::GetFlagResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.flag_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct GetFlagResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR GetFlagResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~GetFlagResponseDefaultTypeInternal() {} + union { + GetFlagResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetFlagResponseDefaultTypeInternal _GetFlagResponse_default_instance_; +PROTOBUF_CONSTEXPR CreateFlagRequest::CreateFlagRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.description_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.enabled_)*/false + , /*decltype(_impl_._cached_size_)*/{}} {} +struct CreateFlagRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR CreateFlagRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~CreateFlagRequestDefaultTypeInternal() {} + union { + CreateFlagRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CreateFlagRequestDefaultTypeInternal _CreateFlagRequest_default_instance_; +PROTOBUF_CONSTEXPR CreateFlagResponse::CreateFlagResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.flag_)*/nullptr + , /*decltype(_impl_._cached_size_)*/{}} {} +struct CreateFlagResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR CreateFlagResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~CreateFlagResponseDefaultTypeInternal() {} + union { + CreateFlagResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CreateFlagResponseDefaultTypeInternal _CreateFlagResponse_default_instance_; +PROTOBUF_CONSTEXPR UpdateFlagRequest::UpdateFlagRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.enabled_)*/false + , /*decltype(_impl_._cached_size_)*/{}} {} +struct UpdateFlagRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR UpdateFlagRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~UpdateFlagRequestDefaultTypeInternal() {} + union { + UpdateFlagRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UpdateFlagRequestDefaultTypeInternal _UpdateFlagRequest_default_instance_; +PROTOBUF_CONSTEXPR UpdateFlagResponse::UpdateFlagResponse( + ::_pbi::ConstantInitialized) {} +struct UpdateFlagResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR UpdateFlagResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~UpdateFlagResponseDefaultTypeInternal() {} + union { + UpdateFlagResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UpdateFlagResponseDefaultTypeInternal _UpdateFlagResponse_default_instance_; +PROTOBUF_CONSTEXPR ListFlagsRequest::ListFlagsRequest( + ::_pbi::ConstantInitialized) {} +struct ListFlagsRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR ListFlagsRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~ListFlagsRequestDefaultTypeInternal() {} + union { + ListFlagsRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ListFlagsRequestDefaultTypeInternal _ListFlagsRequest_default_instance_; +PROTOBUF_CONSTEXPR ListFlagsResponse::ListFlagsResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.flag_)*/{} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct ListFlagsResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR ListFlagsResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~ListFlagsResponseDefaultTypeInternal() {} + union { + ListFlagsResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ListFlagsResponseDefaultTypeInternal _ListFlagsResponse_default_instance_; +PROTOBUF_CONSTEXPR DeleteFlagRequest::DeleteFlagRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct DeleteFlagRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR DeleteFlagRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~DeleteFlagRequestDefaultTypeInternal() {} + union { + DeleteFlagRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeleteFlagRequestDefaultTypeInternal _DeleteFlagRequest_default_instance_; +PROTOBUF_CONSTEXPR DeleteFlagResponse::DeleteFlagResponse( + ::_pbi::ConstantInitialized) {} +struct DeleteFlagResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR DeleteFlagResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~DeleteFlagResponseDefaultTypeInternal() {} + union { + DeleteFlagResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DeleteFlagResponseDefaultTypeInternal _DeleteFlagResponse_default_instance_; +} // namespace oteldemo +static ::_pb::Metadata file_level_metadata_demo_2eproto[43]; +static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_demo_2eproto = nullptr; +static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_demo_2eproto = nullptr; + +const uint32_t TableStruct_demo_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::CartItem, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::CartItem, _impl_.product_id_), + PROTOBUF_FIELD_OFFSET(::oteldemo::CartItem, _impl_.quantity_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::AddItemRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::AddItemRequest, _impl_.user_id_), + PROTOBUF_FIELD_OFFSET(::oteldemo::AddItemRequest, _impl_.item_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::EmptyCartRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::EmptyCartRequest, _impl_.user_id_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetCartRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetCartRequest, _impl_.user_id_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Cart, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Cart, _impl_.user_id_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Cart, _impl_.items_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Empty, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ListRecommendationsRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ListRecommendationsRequest, _impl_.user_id_), + PROTOBUF_FIELD_OFFSET(::oteldemo::ListRecommendationsRequest, _impl_.product_ids_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ListRecommendationsResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ListRecommendationsResponse, _impl_.product_ids_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Product, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Product, _impl_.id_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Product, _impl_.name_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Product, _impl_.description_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Product, _impl_.picture_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Product, _impl_.price_usd_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Product, _impl_.categories_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ListProductsResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ListProductsResponse, _impl_.products_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetProductRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetProductRequest, _impl_.id_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::SearchProductsRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::SearchProductsRequest, _impl_.query_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::SearchProductsResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::SearchProductsResponse, _impl_.results_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetQuoteRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetQuoteRequest, _impl_.address_), + PROTOBUF_FIELD_OFFSET(::oteldemo::GetQuoteRequest, _impl_.items_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetQuoteResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetQuoteResponse, _impl_.cost_usd_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ShipOrderRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ShipOrderRequest, _impl_.address_), + PROTOBUF_FIELD_OFFSET(::oteldemo::ShipOrderRequest, _impl_.items_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ShipOrderResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ShipOrderResponse, _impl_.tracking_id_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Address, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Address, _impl_.street_address_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Address, _impl_.city_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Address, _impl_.state_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Address, _impl_.country_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Address, _impl_.zip_code_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Money, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Money, _impl_.currency_code_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Money, _impl_.units_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Money, _impl_.nanos_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetSupportedCurrenciesResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetSupportedCurrenciesResponse, _impl_.currency_codes_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::CurrencyConversionRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::CurrencyConversionRequest, _impl_.from_), + PROTOBUF_FIELD_OFFSET(::oteldemo::CurrencyConversionRequest, _impl_.to_code_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::CreditCardInfo, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::CreditCardInfo, _impl_.credit_card_number_), + PROTOBUF_FIELD_OFFSET(::oteldemo::CreditCardInfo, _impl_.credit_card_cvv_), + PROTOBUF_FIELD_OFFSET(::oteldemo::CreditCardInfo, _impl_.credit_card_expiration_year_), + PROTOBUF_FIELD_OFFSET(::oteldemo::CreditCardInfo, _impl_.credit_card_expiration_month_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ChargeRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ChargeRequest, _impl_.amount_), + PROTOBUF_FIELD_OFFSET(::oteldemo::ChargeRequest, _impl_.credit_card_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ChargeResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ChargeResponse, _impl_.transaction_id_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::OrderItem, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::OrderItem, _impl_.item_), + PROTOBUF_FIELD_OFFSET(::oteldemo::OrderItem, _impl_.cost_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::OrderResult, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::OrderResult, _impl_.order_id_), + PROTOBUF_FIELD_OFFSET(::oteldemo::OrderResult, _impl_.shipping_tracking_id_), + PROTOBUF_FIELD_OFFSET(::oteldemo::OrderResult, _impl_.shipping_cost_), + PROTOBUF_FIELD_OFFSET(::oteldemo::OrderResult, _impl_.shipping_address_), + PROTOBUF_FIELD_OFFSET(::oteldemo::OrderResult, _impl_.items_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::SendOrderConfirmationRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::SendOrderConfirmationRequest, _impl_.email_), + PROTOBUF_FIELD_OFFSET(::oteldemo::SendOrderConfirmationRequest, _impl_.order_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::PlaceOrderRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::PlaceOrderRequest, _impl_.user_id_), + PROTOBUF_FIELD_OFFSET(::oteldemo::PlaceOrderRequest, _impl_.user_currency_), + PROTOBUF_FIELD_OFFSET(::oteldemo::PlaceOrderRequest, _impl_.address_), + PROTOBUF_FIELD_OFFSET(::oteldemo::PlaceOrderRequest, _impl_.email_), + PROTOBUF_FIELD_OFFSET(::oteldemo::PlaceOrderRequest, _impl_.credit_card_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::PlaceOrderResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::PlaceOrderResponse, _impl_.order_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::AdRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::AdRequest, _impl_.context_keys_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::AdResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::AdResponse, _impl_.ads_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Ad, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Ad, _impl_.redirect_url_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Ad, _impl_.text_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Flag, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::Flag, _impl_.name_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Flag, _impl_.description_), + PROTOBUF_FIELD_OFFSET(::oteldemo::Flag, _impl_.enabled_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetFlagRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetFlagRequest, _impl_.name_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetFlagResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::GetFlagResponse, _impl_.flag_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::CreateFlagRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::CreateFlagRequest, _impl_.name_), + PROTOBUF_FIELD_OFFSET(::oteldemo::CreateFlagRequest, _impl_.description_), + PROTOBUF_FIELD_OFFSET(::oteldemo::CreateFlagRequest, _impl_.enabled_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::CreateFlagResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::CreateFlagResponse, _impl_.flag_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::UpdateFlagRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::UpdateFlagRequest, _impl_.name_), + PROTOBUF_FIELD_OFFSET(::oteldemo::UpdateFlagRequest, _impl_.enabled_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::UpdateFlagResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ListFlagsRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ListFlagsResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::ListFlagsResponse, _impl_.flag_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::DeleteFlagRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::oteldemo::DeleteFlagRequest, _impl_.name_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::oteldemo::DeleteFlagResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ +}; +static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, -1, sizeof(::oteldemo::CartItem)}, + { 8, -1, -1, sizeof(::oteldemo::AddItemRequest)}, + { 16, -1, -1, sizeof(::oteldemo::EmptyCartRequest)}, + { 23, -1, -1, sizeof(::oteldemo::GetCartRequest)}, + { 30, -1, -1, sizeof(::oteldemo::Cart)}, + { 38, -1, -1, sizeof(::oteldemo::Empty)}, + { 44, -1, -1, sizeof(::oteldemo::ListRecommendationsRequest)}, + { 52, -1, -1, sizeof(::oteldemo::ListRecommendationsResponse)}, + { 59, -1, -1, sizeof(::oteldemo::Product)}, + { 71, -1, -1, sizeof(::oteldemo::ListProductsResponse)}, + { 78, -1, -1, sizeof(::oteldemo::GetProductRequest)}, + { 85, -1, -1, sizeof(::oteldemo::SearchProductsRequest)}, + { 92, -1, -1, sizeof(::oteldemo::SearchProductsResponse)}, + { 99, -1, -1, sizeof(::oteldemo::GetQuoteRequest)}, + { 107, -1, -1, sizeof(::oteldemo::GetQuoteResponse)}, + { 114, -1, -1, sizeof(::oteldemo::ShipOrderRequest)}, + { 122, -1, -1, sizeof(::oteldemo::ShipOrderResponse)}, + { 129, -1, -1, sizeof(::oteldemo::Address)}, + { 140, -1, -1, sizeof(::oteldemo::Money)}, + { 149, -1, -1, sizeof(::oteldemo::GetSupportedCurrenciesResponse)}, + { 156, -1, -1, sizeof(::oteldemo::CurrencyConversionRequest)}, + { 164, -1, -1, sizeof(::oteldemo::CreditCardInfo)}, + { 174, -1, -1, sizeof(::oteldemo::ChargeRequest)}, + { 182, -1, -1, sizeof(::oteldemo::ChargeResponse)}, + { 189, -1, -1, sizeof(::oteldemo::OrderItem)}, + { 197, -1, -1, sizeof(::oteldemo::OrderResult)}, + { 208, -1, -1, sizeof(::oteldemo::SendOrderConfirmationRequest)}, + { 216, -1, -1, sizeof(::oteldemo::PlaceOrderRequest)}, + { 227, -1, -1, sizeof(::oteldemo::PlaceOrderResponse)}, + { 234, -1, -1, sizeof(::oteldemo::AdRequest)}, + { 241, -1, -1, sizeof(::oteldemo::AdResponse)}, + { 248, -1, -1, sizeof(::oteldemo::Ad)}, + { 256, -1, -1, sizeof(::oteldemo::Flag)}, + { 265, -1, -1, sizeof(::oteldemo::GetFlagRequest)}, + { 272, -1, -1, sizeof(::oteldemo::GetFlagResponse)}, + { 279, -1, -1, sizeof(::oteldemo::CreateFlagRequest)}, + { 288, -1, -1, sizeof(::oteldemo::CreateFlagResponse)}, + { 295, -1, -1, sizeof(::oteldemo::UpdateFlagRequest)}, + { 303, -1, -1, sizeof(::oteldemo::UpdateFlagResponse)}, + { 309, -1, -1, sizeof(::oteldemo::ListFlagsRequest)}, + { 315, -1, -1, sizeof(::oteldemo::ListFlagsResponse)}, + { 322, -1, -1, sizeof(::oteldemo::DeleteFlagRequest)}, + { 329, -1, -1, sizeof(::oteldemo::DeleteFlagResponse)}, +}; + +static const ::_pb::Message* const file_default_instances[] = { + &::oteldemo::_CartItem_default_instance_._instance, + &::oteldemo::_AddItemRequest_default_instance_._instance, + &::oteldemo::_EmptyCartRequest_default_instance_._instance, + &::oteldemo::_GetCartRequest_default_instance_._instance, + &::oteldemo::_Cart_default_instance_._instance, + &::oteldemo::_Empty_default_instance_._instance, + &::oteldemo::_ListRecommendationsRequest_default_instance_._instance, + &::oteldemo::_ListRecommendationsResponse_default_instance_._instance, + &::oteldemo::_Product_default_instance_._instance, + &::oteldemo::_ListProductsResponse_default_instance_._instance, + &::oteldemo::_GetProductRequest_default_instance_._instance, + &::oteldemo::_SearchProductsRequest_default_instance_._instance, + &::oteldemo::_SearchProductsResponse_default_instance_._instance, + &::oteldemo::_GetQuoteRequest_default_instance_._instance, + &::oteldemo::_GetQuoteResponse_default_instance_._instance, + &::oteldemo::_ShipOrderRequest_default_instance_._instance, + &::oteldemo::_ShipOrderResponse_default_instance_._instance, + &::oteldemo::_Address_default_instance_._instance, + &::oteldemo::_Money_default_instance_._instance, + &::oteldemo::_GetSupportedCurrenciesResponse_default_instance_._instance, + &::oteldemo::_CurrencyConversionRequest_default_instance_._instance, + &::oteldemo::_CreditCardInfo_default_instance_._instance, + &::oteldemo::_ChargeRequest_default_instance_._instance, + &::oteldemo::_ChargeResponse_default_instance_._instance, + &::oteldemo::_OrderItem_default_instance_._instance, + &::oteldemo::_OrderResult_default_instance_._instance, + &::oteldemo::_SendOrderConfirmationRequest_default_instance_._instance, + &::oteldemo::_PlaceOrderRequest_default_instance_._instance, + &::oteldemo::_PlaceOrderResponse_default_instance_._instance, + &::oteldemo::_AdRequest_default_instance_._instance, + &::oteldemo::_AdResponse_default_instance_._instance, + &::oteldemo::_Ad_default_instance_._instance, + &::oteldemo::_Flag_default_instance_._instance, + &::oteldemo::_GetFlagRequest_default_instance_._instance, + &::oteldemo::_GetFlagResponse_default_instance_._instance, + &::oteldemo::_CreateFlagRequest_default_instance_._instance, + &::oteldemo::_CreateFlagResponse_default_instance_._instance, + &::oteldemo::_UpdateFlagRequest_default_instance_._instance, + &::oteldemo::_UpdateFlagResponse_default_instance_._instance, + &::oteldemo::_ListFlagsRequest_default_instance_._instance, + &::oteldemo::_ListFlagsResponse_default_instance_._instance, + &::oteldemo::_DeleteFlagRequest_default_instance_._instance, + &::oteldemo::_DeleteFlagResponse_default_instance_._instance, +}; + +const char descriptor_table_protodef_demo_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\ndemo.proto\022\010oteldemo\"0\n\010CartItem\022\022\n\npr" + "oduct_id\030\001 \001(\t\022\020\n\010quantity\030\002 \001(\005\"C\n\016AddI" + "temRequest\022\017\n\007user_id\030\001 \001(\t\022 \n\004item\030\002 \001(" + "\0132\022.oteldemo.CartItem\"#\n\020EmptyCartReques" + "t\022\017\n\007user_id\030\001 \001(\t\"!\n\016GetCartRequest\022\017\n\007" + "user_id\030\001 \001(\t\":\n\004Cart\022\017\n\007user_id\030\001 \001(\t\022!" + "\n\005items\030\002 \003(\0132\022.oteldemo.CartItem\"\007\n\005Emp" + "ty\"B\n\032ListRecommendationsRequest\022\017\n\007user" + "_id\030\001 \001(\t\022\023\n\013product_ids\030\002 \003(\t\"2\n\033ListRe" + "commendationsResponse\022\023\n\013product_ids\030\001 \003" + "(\t\"\201\001\n\007Product\022\n\n\002id\030\001 \001(\t\022\014\n\004name\030\002 \001(\t" + "\022\023\n\013description\030\003 \001(\t\022\017\n\007picture\030\004 \001(\t\022\"" + "\n\tprice_usd\030\005 \001(\0132\017.oteldemo.Money\022\022\n\nca" + "tegories\030\006 \003(\t\";\n\024ListProductsResponse\022#" + "\n\010products\030\001 \003(\0132\021.oteldemo.Product\"\037\n\021G" + "etProductRequest\022\n\n\002id\030\001 \001(\t\"&\n\025SearchPr" + "oductsRequest\022\r\n\005query\030\001 \001(\t\"<\n\026SearchPr" + "oductsResponse\022\"\n\007results\030\001 \003(\0132\021.otelde" + "mo.Product\"X\n\017GetQuoteRequest\022\"\n\007address" + "\030\001 \001(\0132\021.oteldemo.Address\022!\n\005items\030\002 \003(\013" + "2\022.oteldemo.CartItem\"5\n\020GetQuoteResponse" + "\022!\n\010cost_usd\030\001 \001(\0132\017.oteldemo.Money\"Y\n\020S" + "hipOrderRequest\022\"\n\007address\030\001 \001(\0132\021.oteld" + "emo.Address\022!\n\005items\030\002 \003(\0132\022.oteldemo.Ca" + "rtItem\"(\n\021ShipOrderResponse\022\023\n\013tracking_" + "id\030\001 \001(\t\"a\n\007Address\022\026\n\016street_address\030\001 " + "\001(\t\022\014\n\004city\030\002 \001(\t\022\r\n\005state\030\003 \001(\t\022\017\n\007coun" + "try\030\004 \001(\t\022\020\n\010zip_code\030\005 \001(\t\"<\n\005Money\022\025\n\r" + "currency_code\030\001 \001(\t\022\r\n\005units\030\002 \001(\003\022\r\n\005na" + "nos\030\003 \001(\005\"8\n\036GetSupportedCurrenciesRespo" + "nse\022\026\n\016currency_codes\030\001 \003(\t\"K\n\031CurrencyC" + "onversionRequest\022\035\n\004from\030\001 \001(\0132\017.oteldem" + "o.Money\022\017\n\007to_code\030\002 \001(\t\"\220\001\n\016CreditCardI" + "nfo\022\032\n\022credit_card_number\030\001 \001(\t\022\027\n\017credi" + "t_card_cvv\030\002 \001(\005\022#\n\033credit_card_expirati" + "on_year\030\003 \001(\005\022$\n\034credit_card_expiration_" + "month\030\004 \001(\005\"_\n\rChargeRequest\022\037\n\006amount\030\001" + " \001(\0132\017.oteldemo.Money\022-\n\013credit_card\030\002 \001" + "(\0132\030.oteldemo.CreditCardInfo\"(\n\016ChargeRe" + "sponse\022\026\n\016transaction_id\030\001 \001(\t\"L\n\tOrderI" + "tem\022 \n\004item\030\001 \001(\0132\022.oteldemo.CartItem\022\035\n" + "\004cost\030\002 \001(\0132\017.oteldemo.Money\"\266\001\n\013OrderRe" + "sult\022\020\n\010order_id\030\001 \001(\t\022\034\n\024shipping_track" + "ing_id\030\002 \001(\t\022&\n\rshipping_cost\030\003 \001(\0132\017.ot" + "eldemo.Money\022+\n\020shipping_address\030\004 \001(\0132\021" + ".oteldemo.Address\022\"\n\005items\030\005 \003(\0132\023.oteld" + "emo.OrderItem\"S\n\034SendOrderConfirmationRe" + "quest\022\r\n\005email\030\001 \001(\t\022$\n\005order\030\002 \001(\0132\025.ot" + "eldemo.OrderResult\"\235\001\n\021PlaceOrderRequest" + "\022\017\n\007user_id\030\001 \001(\t\022\025\n\ruser_currency\030\002 \001(\t" + "\022\"\n\007address\030\003 \001(\0132\021.oteldemo.Address\022\r\n\005" + "email\030\005 \001(\t\022-\n\013credit_card\030\006 \001(\0132\030.oteld" + "emo.CreditCardInfo\":\n\022PlaceOrderResponse" + "\022$\n\005order\030\001 \001(\0132\025.oteldemo.OrderResult\"!" + "\n\tAdRequest\022\024\n\014context_keys\030\001 \003(\t\"\'\n\nAdR" + "esponse\022\031\n\003ads\030\001 \003(\0132\014.oteldemo.Ad\"(\n\002Ad" + "\022\024\n\014redirect_url\030\001 \001(\t\022\014\n\004text\030\002 \001(\t\":\n\004" + "Flag\022\014\n\004name\030\001 \001(\t\022\023\n\013description\030\002 \001(\t\022" + "\017\n\007enabled\030\003 \001(\010\"\036\n\016GetFlagRequest\022\014\n\004na" + "me\030\001 \001(\t\"/\n\017GetFlagResponse\022\034\n\004flag\030\001 \001(" + "\0132\016.oteldemo.Flag\"G\n\021CreateFlagRequest\022\014" + "\n\004name\030\001 \001(\t\022\023\n\013description\030\002 \001(\t\022\017\n\007ena" + "bled\030\003 \001(\010\"2\n\022CreateFlagResponse\022\034\n\004flag" + "\030\001 \001(\0132\016.oteldemo.Flag\"2\n\021UpdateFlagRequ" + "est\022\014\n\004name\030\001 \001(\t\022\017\n\007enabled\030\002 \001(\010\"\024\n\022Up" + "dateFlagResponse\"\022\n\020ListFlagsRequest\"1\n\021" + "ListFlagsResponse\022\034\n\004flag\030\001 \003(\0132\016.otelde" + "mo.Flag\"!\n\021DeleteFlagRequest\022\014\n\004name\030\001 \001" + "(\t\"\024\n\022DeleteFlagResponse2\270\001\n\013CartService" + "\0226\n\007AddItem\022\030.oteldemo.AddItemRequest\032\017." + "oteldemo.Empty\"\000\0225\n\007GetCart\022\030.oteldemo.G" + "etCartRequest\032\016.oteldemo.Cart\"\000\022:\n\tEmpty" + "Cart\022\032.oteldemo.EmptyCartRequest\032\017.oteld" + "emo.Empty\"\0002}\n\025RecommendationService\022d\n\023" + "ListRecommendations\022$.oteldemo.ListRecom" + "mendationsRequest\032%.oteldemo.ListRecomme" + "ndationsResponse\"\0002\361\001\n\025ProductCatalogSer" + "vice\022A\n\014ListProducts\022\017.oteldemo.Empty\032\036." + "oteldemo.ListProductsResponse\"\000\022>\n\nGetPr" + "oduct\022\033.oteldemo.GetProductRequest\032\021.ote" + "ldemo.Product\"\000\022U\n\016SearchProducts\022\037.otel" + "demo.SearchProductsRequest\032 .oteldemo.Se" + "archProductsResponse\"\0002\236\001\n\017ShippingServi" + "ce\022C\n\010GetQuote\022\031.oteldemo.GetQuoteReques" + "t\032\032.oteldemo.GetQuoteResponse\"\000\022F\n\tShipO" + "rder\022\032.oteldemo.ShipOrderRequest\032\033.oteld" + "emo.ShipOrderResponse\"\0002\253\001\n\017CurrencyServ" + "ice\022U\n\026GetSupportedCurrencies\022\017.oteldemo" + ".Empty\032(.oteldemo.GetSupportedCurrencies" + "Response\"\000\022A\n\007Convert\022#.oteldemo.Currenc" + "yConversionRequest\032\017.oteldemo.Money\"\0002O\n" + "\016PaymentService\022=\n\006Charge\022\027.oteldemo.Cha" + "rgeRequest\032\030.oteldemo.ChargeResponse\"\0002b" + "\n\014EmailService\022R\n\025SendOrderConfirmation\022" + "&.oteldemo.SendOrderConfirmationRequest\032" + "\017.oteldemo.Empty\"\0002\\\n\017CheckoutService\022I\n" + "\nPlaceOrder\022\033.oteldemo.PlaceOrderRequest" + "\032\034.oteldemo.PlaceOrderResponse\"\0002B\n\tAdSe" + "rvice\0225\n\006GetAds\022\023.oteldemo.AdRequest\032\024.o" + "teldemo.AdResponse\"\0002\377\002\n\022FeatureFlagServ" + "ice\022@\n\007GetFlag\022\030.oteldemo.GetFlagRequest" + "\032\031.oteldemo.GetFlagResponse\"\000\022I\n\nCreateF" + "lag\022\033.oteldemo.CreateFlagRequest\032\034.oteld" + "emo.CreateFlagResponse\"\000\022I\n\nUpdateFlag\022\033" + ".oteldemo.UpdateFlagRequest\032\034.oteldemo.U" + "pdateFlagResponse\"\000\022F\n\tListFlags\022\032.oteld" + "emo.ListFlagsRequest\032\033.oteldemo.ListFlag" + "sResponse\"\000\022I\n\nDeleteFlag\022\033.oteldemo.Del" + "eteFlagRequest\032\034.oteldemo.DeleteFlagResp" + "onse\"\000B\023Z\021genproto/oteldemob\006proto3" + ; +static ::_pbi::once_flag descriptor_table_demo_2eproto_once; +const ::_pbi::DescriptorTable descriptor_table_demo_2eproto = { + false, false, 4395, descriptor_table_protodef_demo_2eproto, + "demo.proto", + &descriptor_table_demo_2eproto_once, nullptr, 0, 43, + schemas, file_default_instances, TableStruct_demo_2eproto::offsets, + file_level_metadata_demo_2eproto, file_level_enum_descriptors_demo_2eproto, + file_level_service_descriptors_demo_2eproto, +}; +PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_demo_2eproto_getter() { + return &descriptor_table_demo_2eproto; +} + +// Force running AddDescriptors() at dynamic initialization time. +PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_demo_2eproto(&descriptor_table_demo_2eproto); +namespace oteldemo { + +// =================================================================== + +class CartItem::_Internal { + public: +}; + +CartItem::CartItem(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.CartItem) +} +CartItem::CartItem(const CartItem& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + CartItem* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.product_id_){} + , decltype(_impl_.quantity_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.product_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.product_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_product_id().empty()) { + _this->_impl_.product_id_.Set(from._internal_product_id(), + _this->GetArenaForAllocation()); + } + _this->_impl_.quantity_ = from._impl_.quantity_; + // @@protoc_insertion_point(copy_constructor:oteldemo.CartItem) +} + +inline void CartItem::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.product_id_){} + , decltype(_impl_.quantity_){0} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.product_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.product_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +CartItem::~CartItem() { + // @@protoc_insertion_point(destructor:oteldemo.CartItem) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void CartItem::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.product_id_.Destroy(); +} + +void CartItem::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void CartItem::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.CartItem) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.product_id_.ClearToEmpty(); + _impl_.quantity_ = 0; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* CartItem::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string product_id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_product_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.CartItem.product_id")); + } else + goto handle_unusual; + continue; + // int32 quantity = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { + _impl_.quantity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* CartItem::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.CartItem) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string product_id = 1; + if (!this->_internal_product_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_product_id().data(), static_cast(this->_internal_product_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.CartItem.product_id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_product_id(), target); + } + + // int32 quantity = 2; + if (this->_internal_quantity() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_quantity(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.CartItem) + return target; +} + +size_t CartItem::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.CartItem) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string product_id = 1; + if (!this->_internal_product_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_product_id()); + } + + // int32 quantity = 2; + if (this->_internal_quantity() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_quantity()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CartItem::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + CartItem::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CartItem::GetClassData() const { return &_class_data_; } + + +void CartItem::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.CartItem) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_product_id().empty()) { + _this->_internal_set_product_id(from._internal_product_id()); + } + if (from._internal_quantity() != 0) { + _this->_internal_set_quantity(from._internal_quantity()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void CartItem::CopyFrom(const CartItem& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.CartItem) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool CartItem::IsInitialized() const { + return true; +} + +void CartItem::InternalSwap(CartItem* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.product_id_, lhs_arena, + &other->_impl_.product_id_, rhs_arena + ); + swap(_impl_.quantity_, other->_impl_.quantity_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata CartItem::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[0]); +} + +// =================================================================== + +class AddItemRequest::_Internal { + public: + static const ::oteldemo::CartItem& item(const AddItemRequest* msg); +}; + +const ::oteldemo::CartItem& +AddItemRequest::_Internal::item(const AddItemRequest* msg) { + return *msg->_impl_.item_; +} +AddItemRequest::AddItemRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.AddItemRequest) +} +AddItemRequest::AddItemRequest(const AddItemRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + AddItemRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.user_id_){} + , decltype(_impl_.item_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_user_id().empty()) { + _this->_impl_.user_id_.Set(from._internal_user_id(), + _this->GetArenaForAllocation()); + } + if (from._internal_has_item()) { + _this->_impl_.item_ = new ::oteldemo::CartItem(*from._impl_.item_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.AddItemRequest) +} + +inline void AddItemRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.user_id_){} + , decltype(_impl_.item_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +AddItemRequest::~AddItemRequest() { + // @@protoc_insertion_point(destructor:oteldemo.AddItemRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void AddItemRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.user_id_.Destroy(); + if (this != internal_default_instance()) delete _impl_.item_; +} + +void AddItemRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void AddItemRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.AddItemRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.user_id_.ClearToEmpty(); + if (GetArenaForAllocation() == nullptr && _impl_.item_ != nullptr) { + delete _impl_.item_; + } + _impl_.item_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* AddItemRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string user_id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_user_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.AddItemRequest.user_id")); + } else + goto handle_unusual; + continue; + // .oteldemo.CartItem item = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + ptr = ctx->ParseMessage(_internal_mutable_item(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* AddItemRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.AddItemRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_user_id().data(), static_cast(this->_internal_user_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.AddItemRequest.user_id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_user_id(), target); + } + + // .oteldemo.CartItem item = 2; + if (this->_internal_has_item()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(2, _Internal::item(this), + _Internal::item(this).GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.AddItemRequest) + return target; +} + +size_t AddItemRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.AddItemRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_user_id()); + } + + // .oteldemo.CartItem item = 2; + if (this->_internal_has_item()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.item_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AddItemRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + AddItemRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AddItemRequest::GetClassData() const { return &_class_data_; } + + +void AddItemRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.AddItemRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_user_id().empty()) { + _this->_internal_set_user_id(from._internal_user_id()); + } + if (from._internal_has_item()) { + _this->_internal_mutable_item()->::oteldemo::CartItem::MergeFrom( + from._internal_item()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void AddItemRequest::CopyFrom(const AddItemRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.AddItemRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool AddItemRequest::IsInitialized() const { + return true; +} + +void AddItemRequest::InternalSwap(AddItemRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.user_id_, lhs_arena, + &other->_impl_.user_id_, rhs_arena + ); + swap(_impl_.item_, other->_impl_.item_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata AddItemRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[1]); +} + +// =================================================================== + +class EmptyCartRequest::_Internal { + public: +}; + +EmptyCartRequest::EmptyCartRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.EmptyCartRequest) +} +EmptyCartRequest::EmptyCartRequest(const EmptyCartRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + EmptyCartRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.user_id_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_user_id().empty()) { + _this->_impl_.user_id_.Set(from._internal_user_id(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.EmptyCartRequest) +} + +inline void EmptyCartRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.user_id_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +EmptyCartRequest::~EmptyCartRequest() { + // @@protoc_insertion_point(destructor:oteldemo.EmptyCartRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void EmptyCartRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.user_id_.Destroy(); +} + +void EmptyCartRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void EmptyCartRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.EmptyCartRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.user_id_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* EmptyCartRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string user_id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_user_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.EmptyCartRequest.user_id")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* EmptyCartRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.EmptyCartRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_user_id().data(), static_cast(this->_internal_user_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.EmptyCartRequest.user_id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_user_id(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.EmptyCartRequest) + return target; +} + +size_t EmptyCartRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.EmptyCartRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_user_id()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData EmptyCartRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + EmptyCartRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*EmptyCartRequest::GetClassData() const { return &_class_data_; } + + +void EmptyCartRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.EmptyCartRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_user_id().empty()) { + _this->_internal_set_user_id(from._internal_user_id()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void EmptyCartRequest::CopyFrom(const EmptyCartRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.EmptyCartRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool EmptyCartRequest::IsInitialized() const { + return true; +} + +void EmptyCartRequest::InternalSwap(EmptyCartRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.user_id_, lhs_arena, + &other->_impl_.user_id_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata EmptyCartRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[2]); +} + +// =================================================================== + +class GetCartRequest::_Internal { + public: +}; + +GetCartRequest::GetCartRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.GetCartRequest) +} +GetCartRequest::GetCartRequest(const GetCartRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + GetCartRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.user_id_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_user_id().empty()) { + _this->_impl_.user_id_.Set(from._internal_user_id(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.GetCartRequest) +} + +inline void GetCartRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.user_id_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +GetCartRequest::~GetCartRequest() { + // @@protoc_insertion_point(destructor:oteldemo.GetCartRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void GetCartRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.user_id_.Destroy(); +} + +void GetCartRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void GetCartRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.GetCartRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.user_id_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* GetCartRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string user_id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_user_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.GetCartRequest.user_id")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* GetCartRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.GetCartRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_user_id().data(), static_cast(this->_internal_user_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.GetCartRequest.user_id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_user_id(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.GetCartRequest) + return target; +} + +size_t GetCartRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.GetCartRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_user_id()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GetCartRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + GetCartRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetCartRequest::GetClassData() const { return &_class_data_; } + + +void GetCartRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.GetCartRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_user_id().empty()) { + _this->_internal_set_user_id(from._internal_user_id()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void GetCartRequest::CopyFrom(const GetCartRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.GetCartRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetCartRequest::IsInitialized() const { + return true; +} + +void GetCartRequest::InternalSwap(GetCartRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.user_id_, lhs_arena, + &other->_impl_.user_id_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetCartRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[3]); +} + +// =================================================================== + +class Cart::_Internal { + public: +}; + +Cart::Cart(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.Cart) +} +Cart::Cart(const Cart& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + Cart* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.items_){from._impl_.items_} + , decltype(_impl_.user_id_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_user_id().empty()) { + _this->_impl_.user_id_.Set(from._internal_user_id(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.Cart) +} + +inline void Cart::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.items_){arena} + , decltype(_impl_.user_id_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +Cart::~Cart() { + // @@protoc_insertion_point(destructor:oteldemo.Cart) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void Cart::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.items_.~RepeatedPtrField(); + _impl_.user_id_.Destroy(); +} + +void Cart::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void Cart::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.Cart) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.items_.Clear(); + _impl_.user_id_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* Cart::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string user_id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_user_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Cart.user_id")); + } else + goto handle_unusual; + continue; + // repeated .oteldemo.CartItem items = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_items(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* Cart::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.Cart) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_user_id().data(), static_cast(this->_internal_user_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Cart.user_id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_user_id(), target); + } + + // repeated .oteldemo.CartItem items = 2; + for (unsigned i = 0, + n = static_cast(this->_internal_items_size()); i < n; i++) { + const auto& repfield = this->_internal_items(i); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.Cart) + return target; +} + +size_t Cart::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.Cart) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .oteldemo.CartItem items = 2; + total_size += 1UL * this->_internal_items_size(); + for (const auto& msg : this->_impl_.items_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_user_id()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Cart::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + Cart::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Cart::GetClassData() const { return &_class_data_; } + + +void Cart::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.Cart) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.items_.MergeFrom(from._impl_.items_); + if (!from._internal_user_id().empty()) { + _this->_internal_set_user_id(from._internal_user_id()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void Cart::CopyFrom(const Cart& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.Cart) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Cart::IsInitialized() const { + return true; +} + +void Cart::InternalSwap(Cart* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.items_.InternalSwap(&other->_impl_.items_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.user_id_, lhs_arena, + &other->_impl_.user_id_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Cart::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[4]); +} + +// =================================================================== + +class Empty::_Internal { + public: +}; + +Empty::Empty(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) { + // @@protoc_insertion_point(arena_constructor:oteldemo.Empty) +} +Empty::Empty(const Empty& from) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() { + Empty* const _this = this; (void)_this; + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:oteldemo.Empty) +} + + + + + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Empty::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl, + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl, +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Empty::GetClassData() const { return &_class_data_; } + + + + + + + +::PROTOBUF_NAMESPACE_ID::Metadata Empty::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[5]); +} + +// =================================================================== + +class ListRecommendationsRequest::_Internal { + public: +}; + +ListRecommendationsRequest::ListRecommendationsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.ListRecommendationsRequest) +} +ListRecommendationsRequest::ListRecommendationsRequest(const ListRecommendationsRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + ListRecommendationsRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.product_ids_){from._impl_.product_ids_} + , decltype(_impl_.user_id_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_user_id().empty()) { + _this->_impl_.user_id_.Set(from._internal_user_id(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.ListRecommendationsRequest) +} + +inline void ListRecommendationsRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.product_ids_){arena} + , decltype(_impl_.user_id_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +ListRecommendationsRequest::~ListRecommendationsRequest() { + // @@protoc_insertion_point(destructor:oteldemo.ListRecommendationsRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void ListRecommendationsRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.product_ids_.~RepeatedPtrField(); + _impl_.user_id_.Destroy(); +} + +void ListRecommendationsRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void ListRecommendationsRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.ListRecommendationsRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.product_ids_.Clear(); + _impl_.user_id_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* ListRecommendationsRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string user_id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_user_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.ListRecommendationsRequest.user_id")); + } else + goto handle_unusual; + continue; + // repeated string product_ids = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_product_ids(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.ListRecommendationsRequest.product_ids")); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* ListRecommendationsRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.ListRecommendationsRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_user_id().data(), static_cast(this->_internal_user_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.ListRecommendationsRequest.user_id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_user_id(), target); + } + + // repeated string product_ids = 2; + for (int i = 0, n = this->_internal_product_ids_size(); i < n; i++) { + const auto& s = this->_internal_product_ids(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.ListRecommendationsRequest.product_ids"); + target = stream->WriteString(2, s, target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.ListRecommendationsRequest) + return target; +} + +size_t ListRecommendationsRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.ListRecommendationsRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated string product_ids = 2; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.product_ids_.size()); + for (int i = 0, n = _impl_.product_ids_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + _impl_.product_ids_.Get(i)); + } + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_user_id()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ListRecommendationsRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + ListRecommendationsRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ListRecommendationsRequest::GetClassData() const { return &_class_data_; } + + +void ListRecommendationsRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.ListRecommendationsRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.product_ids_.MergeFrom(from._impl_.product_ids_); + if (!from._internal_user_id().empty()) { + _this->_internal_set_user_id(from._internal_user_id()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void ListRecommendationsRequest::CopyFrom(const ListRecommendationsRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.ListRecommendationsRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ListRecommendationsRequest::IsInitialized() const { + return true; +} + +void ListRecommendationsRequest::InternalSwap(ListRecommendationsRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.product_ids_.InternalSwap(&other->_impl_.product_ids_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.user_id_, lhs_arena, + &other->_impl_.user_id_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ListRecommendationsRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[6]); +} + +// =================================================================== + +class ListRecommendationsResponse::_Internal { + public: +}; + +ListRecommendationsResponse::ListRecommendationsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.ListRecommendationsResponse) +} +ListRecommendationsResponse::ListRecommendationsResponse(const ListRecommendationsResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + ListRecommendationsResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.product_ids_){from._impl_.product_ids_} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:oteldemo.ListRecommendationsResponse) +} + +inline void ListRecommendationsResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.product_ids_){arena} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +ListRecommendationsResponse::~ListRecommendationsResponse() { + // @@protoc_insertion_point(destructor:oteldemo.ListRecommendationsResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void ListRecommendationsResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.product_ids_.~RepeatedPtrField(); +} + +void ListRecommendationsResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void ListRecommendationsResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.ListRecommendationsResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.product_ids_.Clear(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* ListRecommendationsResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // repeated string product_ids = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_product_ids(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.ListRecommendationsResponse.product_ids")); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* ListRecommendationsResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.ListRecommendationsResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // repeated string product_ids = 1; + for (int i = 0, n = this->_internal_product_ids_size(); i < n; i++) { + const auto& s = this->_internal_product_ids(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.ListRecommendationsResponse.product_ids"); + target = stream->WriteString(1, s, target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.ListRecommendationsResponse) + return target; +} + +size_t ListRecommendationsResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.ListRecommendationsResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated string product_ids = 1; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.product_ids_.size()); + for (int i = 0, n = _impl_.product_ids_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + _impl_.product_ids_.Get(i)); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ListRecommendationsResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + ListRecommendationsResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ListRecommendationsResponse::GetClassData() const { return &_class_data_; } + + +void ListRecommendationsResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.ListRecommendationsResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.product_ids_.MergeFrom(from._impl_.product_ids_); + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void ListRecommendationsResponse::CopyFrom(const ListRecommendationsResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.ListRecommendationsResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ListRecommendationsResponse::IsInitialized() const { + return true; +} + +void ListRecommendationsResponse::InternalSwap(ListRecommendationsResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.product_ids_.InternalSwap(&other->_impl_.product_ids_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ListRecommendationsResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[7]); +} + +// =================================================================== + +class Product::_Internal { + public: + static const ::oteldemo::Money& price_usd(const Product* msg); +}; + +const ::oteldemo::Money& +Product::_Internal::price_usd(const Product* msg) { + return *msg->_impl_.price_usd_; +} +Product::Product(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.Product) +} +Product::Product(const Product& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + Product* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.categories_){from._impl_.categories_} + , decltype(_impl_.id_){} + , decltype(_impl_.name_){} + , decltype(_impl_.description_){} + , decltype(_impl_.picture_){} + , decltype(_impl_.price_usd_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_id().empty()) { + _this->_impl_.id_.Set(from._internal_id(), + _this->GetArenaForAllocation()); + } + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_name().empty()) { + _this->_impl_.name_.Set(from._internal_name(), + _this->GetArenaForAllocation()); + } + _impl_.description_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.description_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_description().empty()) { + _this->_impl_.description_.Set(from._internal_description(), + _this->GetArenaForAllocation()); + } + _impl_.picture_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.picture_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_picture().empty()) { + _this->_impl_.picture_.Set(from._internal_picture(), + _this->GetArenaForAllocation()); + } + if (from._internal_has_price_usd()) { + _this->_impl_.price_usd_ = new ::oteldemo::Money(*from._impl_.price_usd_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.Product) +} + +inline void Product::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.categories_){arena} + , decltype(_impl_.id_){} + , decltype(_impl_.name_){} + , decltype(_impl_.description_){} + , decltype(_impl_.picture_){} + , decltype(_impl_.price_usd_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.description_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.description_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.picture_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.picture_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +Product::~Product() { + // @@protoc_insertion_point(destructor:oteldemo.Product) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void Product::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.categories_.~RepeatedPtrField(); + _impl_.id_.Destroy(); + _impl_.name_.Destroy(); + _impl_.description_.Destroy(); + _impl_.picture_.Destroy(); + if (this != internal_default_instance()) delete _impl_.price_usd_; +} + +void Product::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void Product::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.Product) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.categories_.Clear(); + _impl_.id_.ClearToEmpty(); + _impl_.name_.ClearToEmpty(); + _impl_.description_.ClearToEmpty(); + _impl_.picture_.ClearToEmpty(); + if (GetArenaForAllocation() == nullptr && _impl_.price_usd_ != nullptr) { + delete _impl_.price_usd_; + } + _impl_.price_usd_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* Product::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Product.id")); + } else + goto handle_unusual; + continue; + // string name = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_name(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Product.name")); + } else + goto handle_unusual; + continue; + // string description = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { + auto str = _internal_mutable_description(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Product.description")); + } else + goto handle_unusual; + continue; + // string picture = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { + auto str = _internal_mutable_picture(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Product.picture")); + } else + goto handle_unusual; + continue; + // .oteldemo.Money price_usd = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 42)) { + ptr = ctx->ParseMessage(_internal_mutable_price_usd(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // repeated string categories = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 50)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_categories(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Product.categories")); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* Product::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.Product) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string id = 1; + if (!this->_internal_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_id().data(), static_cast(this->_internal_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Product.id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_id(), target); + } + + // string name = 2; + if (!this->_internal_name().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_name().data(), static_cast(this->_internal_name().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Product.name"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_name(), target); + } + + // string description = 3; + if (!this->_internal_description().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_description().data(), static_cast(this->_internal_description().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Product.description"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_description(), target); + } + + // string picture = 4; + if (!this->_internal_picture().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_picture().data(), static_cast(this->_internal_picture().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Product.picture"); + target = stream->WriteStringMaybeAliased( + 4, this->_internal_picture(), target); + } + + // .oteldemo.Money price_usd = 5; + if (this->_internal_has_price_usd()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(5, _Internal::price_usd(this), + _Internal::price_usd(this).GetCachedSize(), target, stream); + } + + // repeated string categories = 6; + for (int i = 0, n = this->_internal_categories_size(); i < n; i++) { + const auto& s = this->_internal_categories(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Product.categories"); + target = stream->WriteString(6, s, target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.Product) + return target; +} + +size_t Product::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.Product) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated string categories = 6; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.categories_.size()); + for (int i = 0, n = _impl_.categories_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + _impl_.categories_.Get(i)); + } + + // string id = 1; + if (!this->_internal_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_id()); + } + + // string name = 2; + if (!this->_internal_name().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_name()); + } + + // string description = 3; + if (!this->_internal_description().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_description()); + } + + // string picture = 4; + if (!this->_internal_picture().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_picture()); + } + + // .oteldemo.Money price_usd = 5; + if (this->_internal_has_price_usd()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.price_usd_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Product::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + Product::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Product::GetClassData() const { return &_class_data_; } + + +void Product::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.Product) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.categories_.MergeFrom(from._impl_.categories_); + if (!from._internal_id().empty()) { + _this->_internal_set_id(from._internal_id()); + } + if (!from._internal_name().empty()) { + _this->_internal_set_name(from._internal_name()); + } + if (!from._internal_description().empty()) { + _this->_internal_set_description(from._internal_description()); + } + if (!from._internal_picture().empty()) { + _this->_internal_set_picture(from._internal_picture()); + } + if (from._internal_has_price_usd()) { + _this->_internal_mutable_price_usd()->::oteldemo::Money::MergeFrom( + from._internal_price_usd()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void Product::CopyFrom(const Product& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.Product) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Product::IsInitialized() const { + return true; +} + +void Product::InternalSwap(Product* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.categories_.InternalSwap(&other->_impl_.categories_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.id_, lhs_arena, + &other->_impl_.id_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.name_, lhs_arena, + &other->_impl_.name_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.description_, lhs_arena, + &other->_impl_.description_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.picture_, lhs_arena, + &other->_impl_.picture_, rhs_arena + ); + swap(_impl_.price_usd_, other->_impl_.price_usd_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Product::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[8]); +} + +// =================================================================== + +class ListProductsResponse::_Internal { + public: +}; + +ListProductsResponse::ListProductsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.ListProductsResponse) +} +ListProductsResponse::ListProductsResponse(const ListProductsResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + ListProductsResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.products_){from._impl_.products_} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:oteldemo.ListProductsResponse) +} + +inline void ListProductsResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.products_){arena} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +ListProductsResponse::~ListProductsResponse() { + // @@protoc_insertion_point(destructor:oteldemo.ListProductsResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void ListProductsResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.products_.~RepeatedPtrField(); +} + +void ListProductsResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void ListProductsResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.ListProductsResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.products_.Clear(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* ListProductsResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // repeated .oteldemo.Product products = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_products(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* ListProductsResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.ListProductsResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // repeated .oteldemo.Product products = 1; + for (unsigned i = 0, + n = static_cast(this->_internal_products_size()); i < n; i++) { + const auto& repfield = this->_internal_products(i); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.ListProductsResponse) + return target; +} + +size_t ListProductsResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.ListProductsResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .oteldemo.Product products = 1; + total_size += 1UL * this->_internal_products_size(); + for (const auto& msg : this->_impl_.products_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ListProductsResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + ListProductsResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ListProductsResponse::GetClassData() const { return &_class_data_; } + + +void ListProductsResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.ListProductsResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.products_.MergeFrom(from._impl_.products_); + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void ListProductsResponse::CopyFrom(const ListProductsResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.ListProductsResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ListProductsResponse::IsInitialized() const { + return true; +} + +void ListProductsResponse::InternalSwap(ListProductsResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.products_.InternalSwap(&other->_impl_.products_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ListProductsResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[9]); +} + +// =================================================================== + +class GetProductRequest::_Internal { + public: +}; + +GetProductRequest::GetProductRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.GetProductRequest) +} +GetProductRequest::GetProductRequest(const GetProductRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + GetProductRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.id_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_id().empty()) { + _this->_impl_.id_.Set(from._internal_id(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.GetProductRequest) +} + +inline void GetProductRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.id_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +GetProductRequest::~GetProductRequest() { + // @@protoc_insertion_point(destructor:oteldemo.GetProductRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void GetProductRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.id_.Destroy(); +} + +void GetProductRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void GetProductRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.GetProductRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.id_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* GetProductRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.GetProductRequest.id")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* GetProductRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.GetProductRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string id = 1; + if (!this->_internal_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_id().data(), static_cast(this->_internal_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.GetProductRequest.id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_id(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.GetProductRequest) + return target; +} + +size_t GetProductRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.GetProductRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string id = 1; + if (!this->_internal_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_id()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GetProductRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + GetProductRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetProductRequest::GetClassData() const { return &_class_data_; } + + +void GetProductRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.GetProductRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_id().empty()) { + _this->_internal_set_id(from._internal_id()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void GetProductRequest::CopyFrom(const GetProductRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.GetProductRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetProductRequest::IsInitialized() const { + return true; +} + +void GetProductRequest::InternalSwap(GetProductRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.id_, lhs_arena, + &other->_impl_.id_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetProductRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[10]); +} + +// =================================================================== + +class SearchProductsRequest::_Internal { + public: +}; + +SearchProductsRequest::SearchProductsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.SearchProductsRequest) +} +SearchProductsRequest::SearchProductsRequest(const SearchProductsRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + SearchProductsRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.query_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.query_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.query_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_query().empty()) { + _this->_impl_.query_.Set(from._internal_query(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.SearchProductsRequest) +} + +inline void SearchProductsRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.query_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.query_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.query_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +SearchProductsRequest::~SearchProductsRequest() { + // @@protoc_insertion_point(destructor:oteldemo.SearchProductsRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void SearchProductsRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.query_.Destroy(); +} + +void SearchProductsRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void SearchProductsRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.SearchProductsRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.query_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* SearchProductsRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string query = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_query(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.SearchProductsRequest.query")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* SearchProductsRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.SearchProductsRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string query = 1; + if (!this->_internal_query().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_query().data(), static_cast(this->_internal_query().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.SearchProductsRequest.query"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_query(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.SearchProductsRequest) + return target; +} + +size_t SearchProductsRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.SearchProductsRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string query = 1; + if (!this->_internal_query().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_query()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SearchProductsRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + SearchProductsRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SearchProductsRequest::GetClassData() const { return &_class_data_; } + + +void SearchProductsRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.SearchProductsRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_query().empty()) { + _this->_internal_set_query(from._internal_query()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void SearchProductsRequest::CopyFrom(const SearchProductsRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.SearchProductsRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool SearchProductsRequest::IsInitialized() const { + return true; +} + +void SearchProductsRequest::InternalSwap(SearchProductsRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.query_, lhs_arena, + &other->_impl_.query_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata SearchProductsRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[11]); +} + +// =================================================================== + +class SearchProductsResponse::_Internal { + public: +}; + +SearchProductsResponse::SearchProductsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.SearchProductsResponse) +} +SearchProductsResponse::SearchProductsResponse(const SearchProductsResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + SearchProductsResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.results_){from._impl_.results_} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:oteldemo.SearchProductsResponse) +} + +inline void SearchProductsResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.results_){arena} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +SearchProductsResponse::~SearchProductsResponse() { + // @@protoc_insertion_point(destructor:oteldemo.SearchProductsResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void SearchProductsResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.results_.~RepeatedPtrField(); +} + +void SearchProductsResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void SearchProductsResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.SearchProductsResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.results_.Clear(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* SearchProductsResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // repeated .oteldemo.Product results = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_results(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* SearchProductsResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.SearchProductsResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // repeated .oteldemo.Product results = 1; + for (unsigned i = 0, + n = static_cast(this->_internal_results_size()); i < n; i++) { + const auto& repfield = this->_internal_results(i); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.SearchProductsResponse) + return target; +} + +size_t SearchProductsResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.SearchProductsResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .oteldemo.Product results = 1; + total_size += 1UL * this->_internal_results_size(); + for (const auto& msg : this->_impl_.results_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SearchProductsResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + SearchProductsResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SearchProductsResponse::GetClassData() const { return &_class_data_; } + + +void SearchProductsResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.SearchProductsResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.results_.MergeFrom(from._impl_.results_); + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void SearchProductsResponse::CopyFrom(const SearchProductsResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.SearchProductsResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool SearchProductsResponse::IsInitialized() const { + return true; +} + +void SearchProductsResponse::InternalSwap(SearchProductsResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.results_.InternalSwap(&other->_impl_.results_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata SearchProductsResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[12]); +} + +// =================================================================== + +class GetQuoteRequest::_Internal { + public: + static const ::oteldemo::Address& address(const GetQuoteRequest* msg); +}; + +const ::oteldemo::Address& +GetQuoteRequest::_Internal::address(const GetQuoteRequest* msg) { + return *msg->_impl_.address_; +} +GetQuoteRequest::GetQuoteRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.GetQuoteRequest) +} +GetQuoteRequest::GetQuoteRequest(const GetQuoteRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + GetQuoteRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.items_){from._impl_.items_} + , decltype(_impl_.address_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_address()) { + _this->_impl_.address_ = new ::oteldemo::Address(*from._impl_.address_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.GetQuoteRequest) +} + +inline void GetQuoteRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.items_){arena} + , decltype(_impl_.address_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +GetQuoteRequest::~GetQuoteRequest() { + // @@protoc_insertion_point(destructor:oteldemo.GetQuoteRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void GetQuoteRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.items_.~RepeatedPtrField(); + if (this != internal_default_instance()) delete _impl_.address_; +} + +void GetQuoteRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void GetQuoteRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.GetQuoteRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.items_.Clear(); + if (GetArenaForAllocation() == nullptr && _impl_.address_ != nullptr) { + delete _impl_.address_; + } + _impl_.address_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* GetQuoteRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .oteldemo.Address address = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_address(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // repeated .oteldemo.CartItem items = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_items(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* GetQuoteRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.GetQuoteRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .oteldemo.Address address = 1; + if (this->_internal_has_address()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, _Internal::address(this), + _Internal::address(this).GetCachedSize(), target, stream); + } + + // repeated .oteldemo.CartItem items = 2; + for (unsigned i = 0, + n = static_cast(this->_internal_items_size()); i < n; i++) { + const auto& repfield = this->_internal_items(i); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.GetQuoteRequest) + return target; +} + +size_t GetQuoteRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.GetQuoteRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .oteldemo.CartItem items = 2; + total_size += 1UL * this->_internal_items_size(); + for (const auto& msg : this->_impl_.items_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + // .oteldemo.Address address = 1; + if (this->_internal_has_address()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.address_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GetQuoteRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + GetQuoteRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetQuoteRequest::GetClassData() const { return &_class_data_; } + + +void GetQuoteRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.GetQuoteRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.items_.MergeFrom(from._impl_.items_); + if (from._internal_has_address()) { + _this->_internal_mutable_address()->::oteldemo::Address::MergeFrom( + from._internal_address()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void GetQuoteRequest::CopyFrom(const GetQuoteRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.GetQuoteRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetQuoteRequest::IsInitialized() const { + return true; +} + +void GetQuoteRequest::InternalSwap(GetQuoteRequest* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.items_.InternalSwap(&other->_impl_.items_); + swap(_impl_.address_, other->_impl_.address_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetQuoteRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[13]); +} + +// =================================================================== + +class GetQuoteResponse::_Internal { + public: + static const ::oteldemo::Money& cost_usd(const GetQuoteResponse* msg); +}; + +const ::oteldemo::Money& +GetQuoteResponse::_Internal::cost_usd(const GetQuoteResponse* msg) { + return *msg->_impl_.cost_usd_; +} +GetQuoteResponse::GetQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.GetQuoteResponse) +} +GetQuoteResponse::GetQuoteResponse(const GetQuoteResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + GetQuoteResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.cost_usd_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_cost_usd()) { + _this->_impl_.cost_usd_ = new ::oteldemo::Money(*from._impl_.cost_usd_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.GetQuoteResponse) +} + +inline void GetQuoteResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.cost_usd_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +GetQuoteResponse::~GetQuoteResponse() { + // @@protoc_insertion_point(destructor:oteldemo.GetQuoteResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void GetQuoteResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + if (this != internal_default_instance()) delete _impl_.cost_usd_; +} + +void GetQuoteResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void GetQuoteResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.GetQuoteResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaForAllocation() == nullptr && _impl_.cost_usd_ != nullptr) { + delete _impl_.cost_usd_; + } + _impl_.cost_usd_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* GetQuoteResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .oteldemo.Money cost_usd = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_cost_usd(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* GetQuoteResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.GetQuoteResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .oteldemo.Money cost_usd = 1; + if (this->_internal_has_cost_usd()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, _Internal::cost_usd(this), + _Internal::cost_usd(this).GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.GetQuoteResponse) + return target; +} + +size_t GetQuoteResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.GetQuoteResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .oteldemo.Money cost_usd = 1; + if (this->_internal_has_cost_usd()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.cost_usd_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GetQuoteResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + GetQuoteResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetQuoteResponse::GetClassData() const { return &_class_data_; } + + +void GetQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.GetQuoteResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_has_cost_usd()) { + _this->_internal_mutable_cost_usd()->::oteldemo::Money::MergeFrom( + from._internal_cost_usd()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void GetQuoteResponse::CopyFrom(const GetQuoteResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.GetQuoteResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetQuoteResponse::IsInitialized() const { + return true; +} + +void GetQuoteResponse::InternalSwap(GetQuoteResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + swap(_impl_.cost_usd_, other->_impl_.cost_usd_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetQuoteResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[14]); +} + +// =================================================================== + +class ShipOrderRequest::_Internal { + public: + static const ::oteldemo::Address& address(const ShipOrderRequest* msg); +}; + +const ::oteldemo::Address& +ShipOrderRequest::_Internal::address(const ShipOrderRequest* msg) { + return *msg->_impl_.address_; +} +ShipOrderRequest::ShipOrderRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.ShipOrderRequest) +} +ShipOrderRequest::ShipOrderRequest(const ShipOrderRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + ShipOrderRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.items_){from._impl_.items_} + , decltype(_impl_.address_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_address()) { + _this->_impl_.address_ = new ::oteldemo::Address(*from._impl_.address_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.ShipOrderRequest) +} + +inline void ShipOrderRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.items_){arena} + , decltype(_impl_.address_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +ShipOrderRequest::~ShipOrderRequest() { + // @@protoc_insertion_point(destructor:oteldemo.ShipOrderRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void ShipOrderRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.items_.~RepeatedPtrField(); + if (this != internal_default_instance()) delete _impl_.address_; +} + +void ShipOrderRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void ShipOrderRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.ShipOrderRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.items_.Clear(); + if (GetArenaForAllocation() == nullptr && _impl_.address_ != nullptr) { + delete _impl_.address_; + } + _impl_.address_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* ShipOrderRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .oteldemo.Address address = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_address(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // repeated .oteldemo.CartItem items = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_items(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* ShipOrderRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.ShipOrderRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .oteldemo.Address address = 1; + if (this->_internal_has_address()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, _Internal::address(this), + _Internal::address(this).GetCachedSize(), target, stream); + } + + // repeated .oteldemo.CartItem items = 2; + for (unsigned i = 0, + n = static_cast(this->_internal_items_size()); i < n; i++) { + const auto& repfield = this->_internal_items(i); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.ShipOrderRequest) + return target; +} + +size_t ShipOrderRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.ShipOrderRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .oteldemo.CartItem items = 2; + total_size += 1UL * this->_internal_items_size(); + for (const auto& msg : this->_impl_.items_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + // .oteldemo.Address address = 1; + if (this->_internal_has_address()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.address_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ShipOrderRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + ShipOrderRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ShipOrderRequest::GetClassData() const { return &_class_data_; } + + +void ShipOrderRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.ShipOrderRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.items_.MergeFrom(from._impl_.items_); + if (from._internal_has_address()) { + _this->_internal_mutable_address()->::oteldemo::Address::MergeFrom( + from._internal_address()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void ShipOrderRequest::CopyFrom(const ShipOrderRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.ShipOrderRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ShipOrderRequest::IsInitialized() const { + return true; +} + +void ShipOrderRequest::InternalSwap(ShipOrderRequest* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.items_.InternalSwap(&other->_impl_.items_); + swap(_impl_.address_, other->_impl_.address_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ShipOrderRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[15]); +} + +// =================================================================== + +class ShipOrderResponse::_Internal { + public: +}; + +ShipOrderResponse::ShipOrderResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.ShipOrderResponse) +} +ShipOrderResponse::ShipOrderResponse(const ShipOrderResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + ShipOrderResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.tracking_id_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.tracking_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.tracking_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_tracking_id().empty()) { + _this->_impl_.tracking_id_.Set(from._internal_tracking_id(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.ShipOrderResponse) +} + +inline void ShipOrderResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.tracking_id_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.tracking_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.tracking_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +ShipOrderResponse::~ShipOrderResponse() { + // @@protoc_insertion_point(destructor:oteldemo.ShipOrderResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void ShipOrderResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.tracking_id_.Destroy(); +} + +void ShipOrderResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void ShipOrderResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.ShipOrderResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.tracking_id_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* ShipOrderResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string tracking_id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_tracking_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.ShipOrderResponse.tracking_id")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* ShipOrderResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.ShipOrderResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string tracking_id = 1; + if (!this->_internal_tracking_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_tracking_id().data(), static_cast(this->_internal_tracking_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.ShipOrderResponse.tracking_id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_tracking_id(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.ShipOrderResponse) + return target; +} + +size_t ShipOrderResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.ShipOrderResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string tracking_id = 1; + if (!this->_internal_tracking_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_tracking_id()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ShipOrderResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + ShipOrderResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ShipOrderResponse::GetClassData() const { return &_class_data_; } + + +void ShipOrderResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.ShipOrderResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_tracking_id().empty()) { + _this->_internal_set_tracking_id(from._internal_tracking_id()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void ShipOrderResponse::CopyFrom(const ShipOrderResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.ShipOrderResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ShipOrderResponse::IsInitialized() const { + return true; +} + +void ShipOrderResponse::InternalSwap(ShipOrderResponse* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.tracking_id_, lhs_arena, + &other->_impl_.tracking_id_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ShipOrderResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[16]); +} + +// =================================================================== + +class Address::_Internal { + public: +}; + +Address::Address(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.Address) +} +Address::Address(const Address& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + Address* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.street_address_){} + , decltype(_impl_.city_){} + , decltype(_impl_.state_){} + , decltype(_impl_.country_){} + , decltype(_impl_.zip_code_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.street_address_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.street_address_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_street_address().empty()) { + _this->_impl_.street_address_.Set(from._internal_street_address(), + _this->GetArenaForAllocation()); + } + _impl_.city_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.city_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_city().empty()) { + _this->_impl_.city_.Set(from._internal_city(), + _this->GetArenaForAllocation()); + } + _impl_.state_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.state_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_state().empty()) { + _this->_impl_.state_.Set(from._internal_state(), + _this->GetArenaForAllocation()); + } + _impl_.country_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.country_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_country().empty()) { + _this->_impl_.country_.Set(from._internal_country(), + _this->GetArenaForAllocation()); + } + _impl_.zip_code_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.zip_code_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_zip_code().empty()) { + _this->_impl_.zip_code_.Set(from._internal_zip_code(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.Address) +} + +inline void Address::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.street_address_){} + , decltype(_impl_.city_){} + , decltype(_impl_.state_){} + , decltype(_impl_.country_){} + , decltype(_impl_.zip_code_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.street_address_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.street_address_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.city_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.city_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.state_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.state_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.country_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.country_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.zip_code_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.zip_code_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +Address::~Address() { + // @@protoc_insertion_point(destructor:oteldemo.Address) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void Address::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.street_address_.Destroy(); + _impl_.city_.Destroy(); + _impl_.state_.Destroy(); + _impl_.country_.Destroy(); + _impl_.zip_code_.Destroy(); +} + +void Address::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void Address::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.Address) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.street_address_.ClearToEmpty(); + _impl_.city_.ClearToEmpty(); + _impl_.state_.ClearToEmpty(); + _impl_.country_.ClearToEmpty(); + _impl_.zip_code_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* Address::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string street_address = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_street_address(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Address.street_address")); + } else + goto handle_unusual; + continue; + // string city = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_city(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Address.city")); + } else + goto handle_unusual; + continue; + // string state = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { + auto str = _internal_mutable_state(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Address.state")); + } else + goto handle_unusual; + continue; + // string country = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { + auto str = _internal_mutable_country(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Address.country")); + } else + goto handle_unusual; + continue; + // string zip_code = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 42)) { + auto str = _internal_mutable_zip_code(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Address.zip_code")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* Address::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.Address) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string street_address = 1; + if (!this->_internal_street_address().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_street_address().data(), static_cast(this->_internal_street_address().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Address.street_address"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_street_address(), target); + } + + // string city = 2; + if (!this->_internal_city().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_city().data(), static_cast(this->_internal_city().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Address.city"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_city(), target); + } + + // string state = 3; + if (!this->_internal_state().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_state().data(), static_cast(this->_internal_state().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Address.state"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_state(), target); + } + + // string country = 4; + if (!this->_internal_country().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_country().data(), static_cast(this->_internal_country().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Address.country"); + target = stream->WriteStringMaybeAliased( + 4, this->_internal_country(), target); + } + + // string zip_code = 5; + if (!this->_internal_zip_code().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_zip_code().data(), static_cast(this->_internal_zip_code().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Address.zip_code"); + target = stream->WriteStringMaybeAliased( + 5, this->_internal_zip_code(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.Address) + return target; +} + +size_t Address::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.Address) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string street_address = 1; + if (!this->_internal_street_address().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_street_address()); + } + + // string city = 2; + if (!this->_internal_city().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_city()); + } + + // string state = 3; + if (!this->_internal_state().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_state()); + } + + // string country = 4; + if (!this->_internal_country().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_country()); + } + + // string zip_code = 5; + if (!this->_internal_zip_code().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_zip_code()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Address::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + Address::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Address::GetClassData() const { return &_class_data_; } + + +void Address::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.Address) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_street_address().empty()) { + _this->_internal_set_street_address(from._internal_street_address()); + } + if (!from._internal_city().empty()) { + _this->_internal_set_city(from._internal_city()); + } + if (!from._internal_state().empty()) { + _this->_internal_set_state(from._internal_state()); + } + if (!from._internal_country().empty()) { + _this->_internal_set_country(from._internal_country()); + } + if (!from._internal_zip_code().empty()) { + _this->_internal_set_zip_code(from._internal_zip_code()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void Address::CopyFrom(const Address& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.Address) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Address::IsInitialized() const { + return true; +} + +void Address::InternalSwap(Address* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.street_address_, lhs_arena, + &other->_impl_.street_address_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.city_, lhs_arena, + &other->_impl_.city_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.state_, lhs_arena, + &other->_impl_.state_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.country_, lhs_arena, + &other->_impl_.country_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.zip_code_, lhs_arena, + &other->_impl_.zip_code_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Address::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[17]); +} + +// =================================================================== + +class Money::_Internal { + public: +}; + +Money::Money(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.Money) +} +Money::Money(const Money& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + Money* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.currency_code_){} + , decltype(_impl_.units_){} + , decltype(_impl_.nanos_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.currency_code_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.currency_code_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_currency_code().empty()) { + _this->_impl_.currency_code_.Set(from._internal_currency_code(), + _this->GetArenaForAllocation()); + } + ::memcpy(&_impl_.units_, &from._impl_.units_, + static_cast(reinterpret_cast(&_impl_.nanos_) - + reinterpret_cast(&_impl_.units_)) + sizeof(_impl_.nanos_)); + // @@protoc_insertion_point(copy_constructor:oteldemo.Money) +} + +inline void Money::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.currency_code_){} + , decltype(_impl_.units_){int64_t{0}} + , decltype(_impl_.nanos_){0} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.currency_code_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.currency_code_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +Money::~Money() { + // @@protoc_insertion_point(destructor:oteldemo.Money) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void Money::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.currency_code_.Destroy(); +} + +void Money::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void Money::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.Money) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.currency_code_.ClearToEmpty(); + ::memset(&_impl_.units_, 0, static_cast( + reinterpret_cast(&_impl_.nanos_) - + reinterpret_cast(&_impl_.units_)) + sizeof(_impl_.nanos_)); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* Money::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string currency_code = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_currency_code(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Money.currency_code")); + } else + goto handle_unusual; + continue; + // int64 units = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { + _impl_.units_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // int32 nanos = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { + _impl_.nanos_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* Money::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.Money) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string currency_code = 1; + if (!this->_internal_currency_code().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_currency_code().data(), static_cast(this->_internal_currency_code().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Money.currency_code"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_currency_code(), target); + } + + // int64 units = 2; + if (this->_internal_units() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_units(), target); + } + + // int32 nanos = 3; + if (this->_internal_nanos() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_nanos(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.Money) + return target; +} + +size_t Money::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.Money) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string currency_code = 1; + if (!this->_internal_currency_code().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_currency_code()); + } + + // int64 units = 2; + if (this->_internal_units() != 0) { + total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_units()); + } + + // int32 nanos = 3; + if (this->_internal_nanos() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_nanos()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Money::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + Money::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Money::GetClassData() const { return &_class_data_; } + + +void Money::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.Money) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_currency_code().empty()) { + _this->_internal_set_currency_code(from._internal_currency_code()); + } + if (from._internal_units() != 0) { + _this->_internal_set_units(from._internal_units()); + } + if (from._internal_nanos() != 0) { + _this->_internal_set_nanos(from._internal_nanos()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void Money::CopyFrom(const Money& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.Money) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Money::IsInitialized() const { + return true; +} + +void Money::InternalSwap(Money* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.currency_code_, lhs_arena, + &other->_impl_.currency_code_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(Money, _impl_.nanos_) + + sizeof(Money::_impl_.nanos_) + - PROTOBUF_FIELD_OFFSET(Money, _impl_.units_)>( + reinterpret_cast(&_impl_.units_), + reinterpret_cast(&other->_impl_.units_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Money::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[18]); +} + +// =================================================================== + +class GetSupportedCurrenciesResponse::_Internal { + public: +}; + +GetSupportedCurrenciesResponse::GetSupportedCurrenciesResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.GetSupportedCurrenciesResponse) +} +GetSupportedCurrenciesResponse::GetSupportedCurrenciesResponse(const GetSupportedCurrenciesResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + GetSupportedCurrenciesResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.currency_codes_){from._impl_.currency_codes_} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:oteldemo.GetSupportedCurrenciesResponse) +} + +inline void GetSupportedCurrenciesResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.currency_codes_){arena} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +GetSupportedCurrenciesResponse::~GetSupportedCurrenciesResponse() { + // @@protoc_insertion_point(destructor:oteldemo.GetSupportedCurrenciesResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void GetSupportedCurrenciesResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.currency_codes_.~RepeatedPtrField(); +} + +void GetSupportedCurrenciesResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void GetSupportedCurrenciesResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.GetSupportedCurrenciesResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.currency_codes_.Clear(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* GetSupportedCurrenciesResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // repeated string currency_codes = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_currency_codes(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.GetSupportedCurrenciesResponse.currency_codes")); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* GetSupportedCurrenciesResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.GetSupportedCurrenciesResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // repeated string currency_codes = 1; + for (int i = 0, n = this->_internal_currency_codes_size(); i < n; i++) { + const auto& s = this->_internal_currency_codes(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.GetSupportedCurrenciesResponse.currency_codes"); + target = stream->WriteString(1, s, target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.GetSupportedCurrenciesResponse) + return target; +} + +size_t GetSupportedCurrenciesResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.GetSupportedCurrenciesResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated string currency_codes = 1; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.currency_codes_.size()); + for (int i = 0, n = _impl_.currency_codes_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + _impl_.currency_codes_.Get(i)); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GetSupportedCurrenciesResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + GetSupportedCurrenciesResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetSupportedCurrenciesResponse::GetClassData() const { return &_class_data_; } + + +void GetSupportedCurrenciesResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.GetSupportedCurrenciesResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.currency_codes_.MergeFrom(from._impl_.currency_codes_); + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void GetSupportedCurrenciesResponse::CopyFrom(const GetSupportedCurrenciesResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.GetSupportedCurrenciesResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetSupportedCurrenciesResponse::IsInitialized() const { + return true; +} + +void GetSupportedCurrenciesResponse::InternalSwap(GetSupportedCurrenciesResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.currency_codes_.InternalSwap(&other->_impl_.currency_codes_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetSupportedCurrenciesResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[19]); +} + +// =================================================================== + +class CurrencyConversionRequest::_Internal { + public: + static const ::oteldemo::Money& from(const CurrencyConversionRequest* msg); +}; + +const ::oteldemo::Money& +CurrencyConversionRequest::_Internal::from(const CurrencyConversionRequest* msg) { + return *msg->_impl_.from_; +} +CurrencyConversionRequest::CurrencyConversionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.CurrencyConversionRequest) +} +CurrencyConversionRequest::CurrencyConversionRequest(const CurrencyConversionRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + CurrencyConversionRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.to_code_){} + , decltype(_impl_.from_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.to_code_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.to_code_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_to_code().empty()) { + _this->_impl_.to_code_.Set(from._internal_to_code(), + _this->GetArenaForAllocation()); + } + if (from._internal_has_from()) { + _this->_impl_.from_ = new ::oteldemo::Money(*from._impl_.from_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.CurrencyConversionRequest) +} + +inline void CurrencyConversionRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.to_code_){} + , decltype(_impl_.from_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.to_code_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.to_code_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +CurrencyConversionRequest::~CurrencyConversionRequest() { + // @@protoc_insertion_point(destructor:oteldemo.CurrencyConversionRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void CurrencyConversionRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.to_code_.Destroy(); + if (this != internal_default_instance()) delete _impl_.from_; +} + +void CurrencyConversionRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void CurrencyConversionRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.CurrencyConversionRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.to_code_.ClearToEmpty(); + if (GetArenaForAllocation() == nullptr && _impl_.from_ != nullptr) { + delete _impl_.from_; + } + _impl_.from_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* CurrencyConversionRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .oteldemo.Money from = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_from(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // string to_code = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_to_code(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.CurrencyConversionRequest.to_code")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* CurrencyConversionRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.CurrencyConversionRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .oteldemo.Money from = 1; + if (this->_internal_has_from()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, _Internal::from(this), + _Internal::from(this).GetCachedSize(), target, stream); + } + + // string to_code = 2; + if (!this->_internal_to_code().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_to_code().data(), static_cast(this->_internal_to_code().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.CurrencyConversionRequest.to_code"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_to_code(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.CurrencyConversionRequest) + return target; +} + +size_t CurrencyConversionRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.CurrencyConversionRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string to_code = 2; + if (!this->_internal_to_code().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_to_code()); + } + + // .oteldemo.Money from = 1; + if (this->_internal_has_from()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.from_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CurrencyConversionRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + CurrencyConversionRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CurrencyConversionRequest::GetClassData() const { return &_class_data_; } + + +void CurrencyConversionRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.CurrencyConversionRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_to_code().empty()) { + _this->_internal_set_to_code(from._internal_to_code()); + } + if (from._internal_has_from()) { + _this->_internal_mutable_from()->::oteldemo::Money::MergeFrom( + from._internal_from()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void CurrencyConversionRequest::CopyFrom(const CurrencyConversionRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.CurrencyConversionRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool CurrencyConversionRequest::IsInitialized() const { + return true; +} + +void CurrencyConversionRequest::InternalSwap(CurrencyConversionRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.to_code_, lhs_arena, + &other->_impl_.to_code_, rhs_arena + ); + swap(_impl_.from_, other->_impl_.from_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata CurrencyConversionRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[20]); +} + +// =================================================================== + +class CreditCardInfo::_Internal { + public: +}; + +CreditCardInfo::CreditCardInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.CreditCardInfo) +} +CreditCardInfo::CreditCardInfo(const CreditCardInfo& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + CreditCardInfo* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.credit_card_number_){} + , decltype(_impl_.credit_card_cvv_){} + , decltype(_impl_.credit_card_expiration_year_){} + , decltype(_impl_.credit_card_expiration_month_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.credit_card_number_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.credit_card_number_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_credit_card_number().empty()) { + _this->_impl_.credit_card_number_.Set(from._internal_credit_card_number(), + _this->GetArenaForAllocation()); + } + ::memcpy(&_impl_.credit_card_cvv_, &from._impl_.credit_card_cvv_, + static_cast(reinterpret_cast(&_impl_.credit_card_expiration_month_) - + reinterpret_cast(&_impl_.credit_card_cvv_)) + sizeof(_impl_.credit_card_expiration_month_)); + // @@protoc_insertion_point(copy_constructor:oteldemo.CreditCardInfo) +} + +inline void CreditCardInfo::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.credit_card_number_){} + , decltype(_impl_.credit_card_cvv_){0} + , decltype(_impl_.credit_card_expiration_year_){0} + , decltype(_impl_.credit_card_expiration_month_){0} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.credit_card_number_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.credit_card_number_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +CreditCardInfo::~CreditCardInfo() { + // @@protoc_insertion_point(destructor:oteldemo.CreditCardInfo) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void CreditCardInfo::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.credit_card_number_.Destroy(); +} + +void CreditCardInfo::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void CreditCardInfo::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.CreditCardInfo) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.credit_card_number_.ClearToEmpty(); + ::memset(&_impl_.credit_card_cvv_, 0, static_cast( + reinterpret_cast(&_impl_.credit_card_expiration_month_) - + reinterpret_cast(&_impl_.credit_card_cvv_)) + sizeof(_impl_.credit_card_expiration_month_)); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* CreditCardInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string credit_card_number = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_credit_card_number(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.CreditCardInfo.credit_card_number")); + } else + goto handle_unusual; + continue; + // int32 credit_card_cvv = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { + _impl_.credit_card_cvv_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // int32 credit_card_expiration_year = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { + _impl_.credit_card_expiration_year_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // int32 credit_card_expiration_month = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { + _impl_.credit_card_expiration_month_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* CreditCardInfo::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.CreditCardInfo) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string credit_card_number = 1; + if (!this->_internal_credit_card_number().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_credit_card_number().data(), static_cast(this->_internal_credit_card_number().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.CreditCardInfo.credit_card_number"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_credit_card_number(), target); + } + + // int32 credit_card_cvv = 2; + if (this->_internal_credit_card_cvv() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_credit_card_cvv(), target); + } + + // int32 credit_card_expiration_year = 3; + if (this->_internal_credit_card_expiration_year() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_credit_card_expiration_year(), target); + } + + // int32 credit_card_expiration_month = 4; + if (this->_internal_credit_card_expiration_month() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(4, this->_internal_credit_card_expiration_month(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.CreditCardInfo) + return target; +} + +size_t CreditCardInfo::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.CreditCardInfo) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string credit_card_number = 1; + if (!this->_internal_credit_card_number().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_credit_card_number()); + } + + // int32 credit_card_cvv = 2; + if (this->_internal_credit_card_cvv() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_credit_card_cvv()); + } + + // int32 credit_card_expiration_year = 3; + if (this->_internal_credit_card_expiration_year() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_credit_card_expiration_year()); + } + + // int32 credit_card_expiration_month = 4; + if (this->_internal_credit_card_expiration_month() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_credit_card_expiration_month()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CreditCardInfo::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + CreditCardInfo::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CreditCardInfo::GetClassData() const { return &_class_data_; } + + +void CreditCardInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.CreditCardInfo) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_credit_card_number().empty()) { + _this->_internal_set_credit_card_number(from._internal_credit_card_number()); + } + if (from._internal_credit_card_cvv() != 0) { + _this->_internal_set_credit_card_cvv(from._internal_credit_card_cvv()); + } + if (from._internal_credit_card_expiration_year() != 0) { + _this->_internal_set_credit_card_expiration_year(from._internal_credit_card_expiration_year()); + } + if (from._internal_credit_card_expiration_month() != 0) { + _this->_internal_set_credit_card_expiration_month(from._internal_credit_card_expiration_month()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void CreditCardInfo::CopyFrom(const CreditCardInfo& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.CreditCardInfo) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool CreditCardInfo::IsInitialized() const { + return true; +} + +void CreditCardInfo::InternalSwap(CreditCardInfo* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.credit_card_number_, lhs_arena, + &other->_impl_.credit_card_number_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(CreditCardInfo, _impl_.credit_card_expiration_month_) + + sizeof(CreditCardInfo::_impl_.credit_card_expiration_month_) + - PROTOBUF_FIELD_OFFSET(CreditCardInfo, _impl_.credit_card_cvv_)>( + reinterpret_cast(&_impl_.credit_card_cvv_), + reinterpret_cast(&other->_impl_.credit_card_cvv_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata CreditCardInfo::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[21]); +} + +// =================================================================== + +class ChargeRequest::_Internal { + public: + static const ::oteldemo::Money& amount(const ChargeRequest* msg); + static const ::oteldemo::CreditCardInfo& credit_card(const ChargeRequest* msg); +}; + +const ::oteldemo::Money& +ChargeRequest::_Internal::amount(const ChargeRequest* msg) { + return *msg->_impl_.amount_; +} +const ::oteldemo::CreditCardInfo& +ChargeRequest::_Internal::credit_card(const ChargeRequest* msg) { + return *msg->_impl_.credit_card_; +} +ChargeRequest::ChargeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.ChargeRequest) +} +ChargeRequest::ChargeRequest(const ChargeRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + ChargeRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.amount_){nullptr} + , decltype(_impl_.credit_card_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_amount()) { + _this->_impl_.amount_ = new ::oteldemo::Money(*from._impl_.amount_); + } + if (from._internal_has_credit_card()) { + _this->_impl_.credit_card_ = new ::oteldemo::CreditCardInfo(*from._impl_.credit_card_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.ChargeRequest) +} + +inline void ChargeRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.amount_){nullptr} + , decltype(_impl_.credit_card_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +ChargeRequest::~ChargeRequest() { + // @@protoc_insertion_point(destructor:oteldemo.ChargeRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void ChargeRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + if (this != internal_default_instance()) delete _impl_.amount_; + if (this != internal_default_instance()) delete _impl_.credit_card_; +} + +void ChargeRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void ChargeRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.ChargeRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaForAllocation() == nullptr && _impl_.amount_ != nullptr) { + delete _impl_.amount_; + } + _impl_.amount_ = nullptr; + if (GetArenaForAllocation() == nullptr && _impl_.credit_card_ != nullptr) { + delete _impl_.credit_card_; + } + _impl_.credit_card_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* ChargeRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .oteldemo.Money amount = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_amount(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // .oteldemo.CreditCardInfo credit_card = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + ptr = ctx->ParseMessage(_internal_mutable_credit_card(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* ChargeRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.ChargeRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .oteldemo.Money amount = 1; + if (this->_internal_has_amount()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, _Internal::amount(this), + _Internal::amount(this).GetCachedSize(), target, stream); + } + + // .oteldemo.CreditCardInfo credit_card = 2; + if (this->_internal_has_credit_card()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(2, _Internal::credit_card(this), + _Internal::credit_card(this).GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.ChargeRequest) + return target; +} + +size_t ChargeRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.ChargeRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .oteldemo.Money amount = 1; + if (this->_internal_has_amount()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.amount_); + } + + // .oteldemo.CreditCardInfo credit_card = 2; + if (this->_internal_has_credit_card()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.credit_card_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ChargeRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + ChargeRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChargeRequest::GetClassData() const { return &_class_data_; } + + +void ChargeRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.ChargeRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_has_amount()) { + _this->_internal_mutable_amount()->::oteldemo::Money::MergeFrom( + from._internal_amount()); + } + if (from._internal_has_credit_card()) { + _this->_internal_mutable_credit_card()->::oteldemo::CreditCardInfo::MergeFrom( + from._internal_credit_card()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void ChargeRequest::CopyFrom(const ChargeRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.ChargeRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ChargeRequest::IsInitialized() const { + return true; +} + +void ChargeRequest::InternalSwap(ChargeRequest* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(ChargeRequest, _impl_.credit_card_) + + sizeof(ChargeRequest::_impl_.credit_card_) + - PROTOBUF_FIELD_OFFSET(ChargeRequest, _impl_.amount_)>( + reinterpret_cast(&_impl_.amount_), + reinterpret_cast(&other->_impl_.amount_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ChargeRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[22]); +} + +// =================================================================== + +class ChargeResponse::_Internal { + public: +}; + +ChargeResponse::ChargeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.ChargeResponse) +} +ChargeResponse::ChargeResponse(const ChargeResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + ChargeResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.transaction_id_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.transaction_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.transaction_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_transaction_id().empty()) { + _this->_impl_.transaction_id_.Set(from._internal_transaction_id(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.ChargeResponse) +} + +inline void ChargeResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.transaction_id_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.transaction_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.transaction_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +ChargeResponse::~ChargeResponse() { + // @@protoc_insertion_point(destructor:oteldemo.ChargeResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void ChargeResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.transaction_id_.Destroy(); +} + +void ChargeResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void ChargeResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.ChargeResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.transaction_id_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* ChargeResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string transaction_id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_transaction_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.ChargeResponse.transaction_id")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* ChargeResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.ChargeResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string transaction_id = 1; + if (!this->_internal_transaction_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_transaction_id().data(), static_cast(this->_internal_transaction_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.ChargeResponse.transaction_id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_transaction_id(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.ChargeResponse) + return target; +} + +size_t ChargeResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.ChargeResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string transaction_id = 1; + if (!this->_internal_transaction_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_transaction_id()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ChargeResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + ChargeResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChargeResponse::GetClassData() const { return &_class_data_; } + + +void ChargeResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.ChargeResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_transaction_id().empty()) { + _this->_internal_set_transaction_id(from._internal_transaction_id()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void ChargeResponse::CopyFrom(const ChargeResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.ChargeResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ChargeResponse::IsInitialized() const { + return true; +} + +void ChargeResponse::InternalSwap(ChargeResponse* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.transaction_id_, lhs_arena, + &other->_impl_.transaction_id_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ChargeResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[23]); +} + +// =================================================================== + +class OrderItem::_Internal { + public: + static const ::oteldemo::CartItem& item(const OrderItem* msg); + static const ::oteldemo::Money& cost(const OrderItem* msg); +}; + +const ::oteldemo::CartItem& +OrderItem::_Internal::item(const OrderItem* msg) { + return *msg->_impl_.item_; +} +const ::oteldemo::Money& +OrderItem::_Internal::cost(const OrderItem* msg) { + return *msg->_impl_.cost_; +} +OrderItem::OrderItem(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.OrderItem) +} +OrderItem::OrderItem(const OrderItem& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + OrderItem* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.item_){nullptr} + , decltype(_impl_.cost_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_item()) { + _this->_impl_.item_ = new ::oteldemo::CartItem(*from._impl_.item_); + } + if (from._internal_has_cost()) { + _this->_impl_.cost_ = new ::oteldemo::Money(*from._impl_.cost_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.OrderItem) +} + +inline void OrderItem::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.item_){nullptr} + , decltype(_impl_.cost_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +OrderItem::~OrderItem() { + // @@protoc_insertion_point(destructor:oteldemo.OrderItem) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void OrderItem::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + if (this != internal_default_instance()) delete _impl_.item_; + if (this != internal_default_instance()) delete _impl_.cost_; +} + +void OrderItem::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void OrderItem::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.OrderItem) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaForAllocation() == nullptr && _impl_.item_ != nullptr) { + delete _impl_.item_; + } + _impl_.item_ = nullptr; + if (GetArenaForAllocation() == nullptr && _impl_.cost_ != nullptr) { + delete _impl_.cost_; + } + _impl_.cost_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* OrderItem::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .oteldemo.CartItem item = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_item(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // .oteldemo.Money cost = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + ptr = ctx->ParseMessage(_internal_mutable_cost(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* OrderItem::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.OrderItem) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .oteldemo.CartItem item = 1; + if (this->_internal_has_item()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, _Internal::item(this), + _Internal::item(this).GetCachedSize(), target, stream); + } + + // .oteldemo.Money cost = 2; + if (this->_internal_has_cost()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(2, _Internal::cost(this), + _Internal::cost(this).GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.OrderItem) + return target; +} + +size_t OrderItem::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.OrderItem) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .oteldemo.CartItem item = 1; + if (this->_internal_has_item()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.item_); + } + + // .oteldemo.Money cost = 2; + if (this->_internal_has_cost()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.cost_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OrderItem::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + OrderItem::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OrderItem::GetClassData() const { return &_class_data_; } + + +void OrderItem::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.OrderItem) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_has_item()) { + _this->_internal_mutable_item()->::oteldemo::CartItem::MergeFrom( + from._internal_item()); + } + if (from._internal_has_cost()) { + _this->_internal_mutable_cost()->::oteldemo::Money::MergeFrom( + from._internal_cost()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void OrderItem::CopyFrom(const OrderItem& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.OrderItem) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool OrderItem::IsInitialized() const { + return true; +} + +void OrderItem::InternalSwap(OrderItem* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(OrderItem, _impl_.cost_) + + sizeof(OrderItem::_impl_.cost_) + - PROTOBUF_FIELD_OFFSET(OrderItem, _impl_.item_)>( + reinterpret_cast(&_impl_.item_), + reinterpret_cast(&other->_impl_.item_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata OrderItem::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[24]); +} + +// =================================================================== + +class OrderResult::_Internal { + public: + static const ::oteldemo::Money& shipping_cost(const OrderResult* msg); + static const ::oteldemo::Address& shipping_address(const OrderResult* msg); +}; + +const ::oteldemo::Money& +OrderResult::_Internal::shipping_cost(const OrderResult* msg) { + return *msg->_impl_.shipping_cost_; +} +const ::oteldemo::Address& +OrderResult::_Internal::shipping_address(const OrderResult* msg) { + return *msg->_impl_.shipping_address_; +} +OrderResult::OrderResult(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.OrderResult) +} +OrderResult::OrderResult(const OrderResult& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + OrderResult* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.items_){from._impl_.items_} + , decltype(_impl_.order_id_){} + , decltype(_impl_.shipping_tracking_id_){} + , decltype(_impl_.shipping_cost_){nullptr} + , decltype(_impl_.shipping_address_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.order_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.order_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_order_id().empty()) { + _this->_impl_.order_id_.Set(from._internal_order_id(), + _this->GetArenaForAllocation()); + } + _impl_.shipping_tracking_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.shipping_tracking_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_shipping_tracking_id().empty()) { + _this->_impl_.shipping_tracking_id_.Set(from._internal_shipping_tracking_id(), + _this->GetArenaForAllocation()); + } + if (from._internal_has_shipping_cost()) { + _this->_impl_.shipping_cost_ = new ::oteldemo::Money(*from._impl_.shipping_cost_); + } + if (from._internal_has_shipping_address()) { + _this->_impl_.shipping_address_ = new ::oteldemo::Address(*from._impl_.shipping_address_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.OrderResult) +} + +inline void OrderResult::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.items_){arena} + , decltype(_impl_.order_id_){} + , decltype(_impl_.shipping_tracking_id_){} + , decltype(_impl_.shipping_cost_){nullptr} + , decltype(_impl_.shipping_address_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.order_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.order_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.shipping_tracking_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.shipping_tracking_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +OrderResult::~OrderResult() { + // @@protoc_insertion_point(destructor:oteldemo.OrderResult) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void OrderResult::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.items_.~RepeatedPtrField(); + _impl_.order_id_.Destroy(); + _impl_.shipping_tracking_id_.Destroy(); + if (this != internal_default_instance()) delete _impl_.shipping_cost_; + if (this != internal_default_instance()) delete _impl_.shipping_address_; +} + +void OrderResult::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void OrderResult::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.OrderResult) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.items_.Clear(); + _impl_.order_id_.ClearToEmpty(); + _impl_.shipping_tracking_id_.ClearToEmpty(); + if (GetArenaForAllocation() == nullptr && _impl_.shipping_cost_ != nullptr) { + delete _impl_.shipping_cost_; + } + _impl_.shipping_cost_ = nullptr; + if (GetArenaForAllocation() == nullptr && _impl_.shipping_address_ != nullptr) { + delete _impl_.shipping_address_; + } + _impl_.shipping_address_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* OrderResult::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string order_id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_order_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.OrderResult.order_id")); + } else + goto handle_unusual; + continue; + // string shipping_tracking_id = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_shipping_tracking_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.OrderResult.shipping_tracking_id")); + } else + goto handle_unusual; + continue; + // .oteldemo.Money shipping_cost = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { + ptr = ctx->ParseMessage(_internal_mutable_shipping_cost(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // .oteldemo.Address shipping_address = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { + ptr = ctx->ParseMessage(_internal_mutable_shipping_address(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // repeated .oteldemo.OrderItem items = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 42)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_items(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* OrderResult::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.OrderResult) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string order_id = 1; + if (!this->_internal_order_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_order_id().data(), static_cast(this->_internal_order_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.OrderResult.order_id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_order_id(), target); + } + + // string shipping_tracking_id = 2; + if (!this->_internal_shipping_tracking_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_shipping_tracking_id().data(), static_cast(this->_internal_shipping_tracking_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.OrderResult.shipping_tracking_id"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_shipping_tracking_id(), target); + } + + // .oteldemo.Money shipping_cost = 3; + if (this->_internal_has_shipping_cost()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(3, _Internal::shipping_cost(this), + _Internal::shipping_cost(this).GetCachedSize(), target, stream); + } + + // .oteldemo.Address shipping_address = 4; + if (this->_internal_has_shipping_address()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(4, _Internal::shipping_address(this), + _Internal::shipping_address(this).GetCachedSize(), target, stream); + } + + // repeated .oteldemo.OrderItem items = 5; + for (unsigned i = 0, + n = static_cast(this->_internal_items_size()); i < n; i++) { + const auto& repfield = this->_internal_items(i); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(5, repfield, repfield.GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.OrderResult) + return target; +} + +size_t OrderResult::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.OrderResult) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .oteldemo.OrderItem items = 5; + total_size += 1UL * this->_internal_items_size(); + for (const auto& msg : this->_impl_.items_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + // string order_id = 1; + if (!this->_internal_order_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_order_id()); + } + + // string shipping_tracking_id = 2; + if (!this->_internal_shipping_tracking_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_shipping_tracking_id()); + } + + // .oteldemo.Money shipping_cost = 3; + if (this->_internal_has_shipping_cost()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.shipping_cost_); + } + + // .oteldemo.Address shipping_address = 4; + if (this->_internal_has_shipping_address()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.shipping_address_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OrderResult::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + OrderResult::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OrderResult::GetClassData() const { return &_class_data_; } + + +void OrderResult::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.OrderResult) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.items_.MergeFrom(from._impl_.items_); + if (!from._internal_order_id().empty()) { + _this->_internal_set_order_id(from._internal_order_id()); + } + if (!from._internal_shipping_tracking_id().empty()) { + _this->_internal_set_shipping_tracking_id(from._internal_shipping_tracking_id()); + } + if (from._internal_has_shipping_cost()) { + _this->_internal_mutable_shipping_cost()->::oteldemo::Money::MergeFrom( + from._internal_shipping_cost()); + } + if (from._internal_has_shipping_address()) { + _this->_internal_mutable_shipping_address()->::oteldemo::Address::MergeFrom( + from._internal_shipping_address()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void OrderResult::CopyFrom(const OrderResult& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.OrderResult) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool OrderResult::IsInitialized() const { + return true; +} + +void OrderResult::InternalSwap(OrderResult* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.items_.InternalSwap(&other->_impl_.items_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.order_id_, lhs_arena, + &other->_impl_.order_id_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.shipping_tracking_id_, lhs_arena, + &other->_impl_.shipping_tracking_id_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(OrderResult, _impl_.shipping_address_) + + sizeof(OrderResult::_impl_.shipping_address_) + - PROTOBUF_FIELD_OFFSET(OrderResult, _impl_.shipping_cost_)>( + reinterpret_cast(&_impl_.shipping_cost_), + reinterpret_cast(&other->_impl_.shipping_cost_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata OrderResult::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[25]); +} + +// =================================================================== + +class SendOrderConfirmationRequest::_Internal { + public: + static const ::oteldemo::OrderResult& order(const SendOrderConfirmationRequest* msg); +}; + +const ::oteldemo::OrderResult& +SendOrderConfirmationRequest::_Internal::order(const SendOrderConfirmationRequest* msg) { + return *msg->_impl_.order_; +} +SendOrderConfirmationRequest::SendOrderConfirmationRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.SendOrderConfirmationRequest) +} +SendOrderConfirmationRequest::SendOrderConfirmationRequest(const SendOrderConfirmationRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + SendOrderConfirmationRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.email_){} + , decltype(_impl_.order_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.email_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.email_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_email().empty()) { + _this->_impl_.email_.Set(from._internal_email(), + _this->GetArenaForAllocation()); + } + if (from._internal_has_order()) { + _this->_impl_.order_ = new ::oteldemo::OrderResult(*from._impl_.order_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.SendOrderConfirmationRequest) +} + +inline void SendOrderConfirmationRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.email_){} + , decltype(_impl_.order_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.email_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.email_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +SendOrderConfirmationRequest::~SendOrderConfirmationRequest() { + // @@protoc_insertion_point(destructor:oteldemo.SendOrderConfirmationRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void SendOrderConfirmationRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.email_.Destroy(); + if (this != internal_default_instance()) delete _impl_.order_; +} + +void SendOrderConfirmationRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void SendOrderConfirmationRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.SendOrderConfirmationRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.email_.ClearToEmpty(); + if (GetArenaForAllocation() == nullptr && _impl_.order_ != nullptr) { + delete _impl_.order_; + } + _impl_.order_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* SendOrderConfirmationRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string email = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_email(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.SendOrderConfirmationRequest.email")); + } else + goto handle_unusual; + continue; + // .oteldemo.OrderResult order = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + ptr = ctx->ParseMessage(_internal_mutable_order(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* SendOrderConfirmationRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.SendOrderConfirmationRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string email = 1; + if (!this->_internal_email().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_email().data(), static_cast(this->_internal_email().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.SendOrderConfirmationRequest.email"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_email(), target); + } + + // .oteldemo.OrderResult order = 2; + if (this->_internal_has_order()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(2, _Internal::order(this), + _Internal::order(this).GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.SendOrderConfirmationRequest) + return target; +} + +size_t SendOrderConfirmationRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.SendOrderConfirmationRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string email = 1; + if (!this->_internal_email().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_email()); + } + + // .oteldemo.OrderResult order = 2; + if (this->_internal_has_order()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.order_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SendOrderConfirmationRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + SendOrderConfirmationRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SendOrderConfirmationRequest::GetClassData() const { return &_class_data_; } + + +void SendOrderConfirmationRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.SendOrderConfirmationRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_email().empty()) { + _this->_internal_set_email(from._internal_email()); + } + if (from._internal_has_order()) { + _this->_internal_mutable_order()->::oteldemo::OrderResult::MergeFrom( + from._internal_order()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void SendOrderConfirmationRequest::CopyFrom(const SendOrderConfirmationRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.SendOrderConfirmationRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool SendOrderConfirmationRequest::IsInitialized() const { + return true; +} + +void SendOrderConfirmationRequest::InternalSwap(SendOrderConfirmationRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.email_, lhs_arena, + &other->_impl_.email_, rhs_arena + ); + swap(_impl_.order_, other->_impl_.order_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata SendOrderConfirmationRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[26]); +} + +// =================================================================== + +class PlaceOrderRequest::_Internal { + public: + static const ::oteldemo::Address& address(const PlaceOrderRequest* msg); + static const ::oteldemo::CreditCardInfo& credit_card(const PlaceOrderRequest* msg); +}; + +const ::oteldemo::Address& +PlaceOrderRequest::_Internal::address(const PlaceOrderRequest* msg) { + return *msg->_impl_.address_; +} +const ::oteldemo::CreditCardInfo& +PlaceOrderRequest::_Internal::credit_card(const PlaceOrderRequest* msg) { + return *msg->_impl_.credit_card_; +} +PlaceOrderRequest::PlaceOrderRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.PlaceOrderRequest) +} +PlaceOrderRequest::PlaceOrderRequest(const PlaceOrderRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + PlaceOrderRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.user_id_){} + , decltype(_impl_.user_currency_){} + , decltype(_impl_.email_){} + , decltype(_impl_.address_){nullptr} + , decltype(_impl_.credit_card_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_user_id().empty()) { + _this->_impl_.user_id_.Set(from._internal_user_id(), + _this->GetArenaForAllocation()); + } + _impl_.user_currency_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_currency_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_user_currency().empty()) { + _this->_impl_.user_currency_.Set(from._internal_user_currency(), + _this->GetArenaForAllocation()); + } + _impl_.email_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.email_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_email().empty()) { + _this->_impl_.email_.Set(from._internal_email(), + _this->GetArenaForAllocation()); + } + if (from._internal_has_address()) { + _this->_impl_.address_ = new ::oteldemo::Address(*from._impl_.address_); + } + if (from._internal_has_credit_card()) { + _this->_impl_.credit_card_ = new ::oteldemo::CreditCardInfo(*from._impl_.credit_card_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.PlaceOrderRequest) +} + +inline void PlaceOrderRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.user_id_){} + , decltype(_impl_.user_currency_){} + , decltype(_impl_.email_){} + , decltype(_impl_.address_){nullptr} + , decltype(_impl_.credit_card_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.user_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_currency_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.user_currency_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.email_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.email_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +PlaceOrderRequest::~PlaceOrderRequest() { + // @@protoc_insertion_point(destructor:oteldemo.PlaceOrderRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void PlaceOrderRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.user_id_.Destroy(); + _impl_.user_currency_.Destroy(); + _impl_.email_.Destroy(); + if (this != internal_default_instance()) delete _impl_.address_; + if (this != internal_default_instance()) delete _impl_.credit_card_; +} + +void PlaceOrderRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void PlaceOrderRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.PlaceOrderRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.user_id_.ClearToEmpty(); + _impl_.user_currency_.ClearToEmpty(); + _impl_.email_.ClearToEmpty(); + if (GetArenaForAllocation() == nullptr && _impl_.address_ != nullptr) { + delete _impl_.address_; + } + _impl_.address_ = nullptr; + if (GetArenaForAllocation() == nullptr && _impl_.credit_card_ != nullptr) { + delete _impl_.credit_card_; + } + _impl_.credit_card_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* PlaceOrderRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string user_id = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_user_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.PlaceOrderRequest.user_id")); + } else + goto handle_unusual; + continue; + // string user_currency = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_user_currency(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.PlaceOrderRequest.user_currency")); + } else + goto handle_unusual; + continue; + // .oteldemo.Address address = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { + ptr = ctx->ParseMessage(_internal_mutable_address(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // string email = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 42)) { + auto str = _internal_mutable_email(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.PlaceOrderRequest.email")); + } else + goto handle_unusual; + continue; + // .oteldemo.CreditCardInfo credit_card = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 50)) { + ptr = ctx->ParseMessage(_internal_mutable_credit_card(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* PlaceOrderRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.PlaceOrderRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_user_id().data(), static_cast(this->_internal_user_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.PlaceOrderRequest.user_id"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_user_id(), target); + } + + // string user_currency = 2; + if (!this->_internal_user_currency().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_user_currency().data(), static_cast(this->_internal_user_currency().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.PlaceOrderRequest.user_currency"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_user_currency(), target); + } + + // .oteldemo.Address address = 3; + if (this->_internal_has_address()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(3, _Internal::address(this), + _Internal::address(this).GetCachedSize(), target, stream); + } + + // string email = 5; + if (!this->_internal_email().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_email().data(), static_cast(this->_internal_email().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.PlaceOrderRequest.email"); + target = stream->WriteStringMaybeAliased( + 5, this->_internal_email(), target); + } + + // .oteldemo.CreditCardInfo credit_card = 6; + if (this->_internal_has_credit_card()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(6, _Internal::credit_card(this), + _Internal::credit_card(this).GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.PlaceOrderRequest) + return target; +} + +size_t PlaceOrderRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.PlaceOrderRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string user_id = 1; + if (!this->_internal_user_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_user_id()); + } + + // string user_currency = 2; + if (!this->_internal_user_currency().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_user_currency()); + } + + // string email = 5; + if (!this->_internal_email().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_email()); + } + + // .oteldemo.Address address = 3; + if (this->_internal_has_address()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.address_); + } + + // .oteldemo.CreditCardInfo credit_card = 6; + if (this->_internal_has_credit_card()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.credit_card_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PlaceOrderRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + PlaceOrderRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PlaceOrderRequest::GetClassData() const { return &_class_data_; } + + +void PlaceOrderRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.PlaceOrderRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_user_id().empty()) { + _this->_internal_set_user_id(from._internal_user_id()); + } + if (!from._internal_user_currency().empty()) { + _this->_internal_set_user_currency(from._internal_user_currency()); + } + if (!from._internal_email().empty()) { + _this->_internal_set_email(from._internal_email()); + } + if (from._internal_has_address()) { + _this->_internal_mutable_address()->::oteldemo::Address::MergeFrom( + from._internal_address()); + } + if (from._internal_has_credit_card()) { + _this->_internal_mutable_credit_card()->::oteldemo::CreditCardInfo::MergeFrom( + from._internal_credit_card()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void PlaceOrderRequest::CopyFrom(const PlaceOrderRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.PlaceOrderRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool PlaceOrderRequest::IsInitialized() const { + return true; +} + +void PlaceOrderRequest::InternalSwap(PlaceOrderRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.user_id_, lhs_arena, + &other->_impl_.user_id_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.user_currency_, lhs_arena, + &other->_impl_.user_currency_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.email_, lhs_arena, + &other->_impl_.email_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(PlaceOrderRequest, _impl_.credit_card_) + + sizeof(PlaceOrderRequest::_impl_.credit_card_) + - PROTOBUF_FIELD_OFFSET(PlaceOrderRequest, _impl_.address_)>( + reinterpret_cast(&_impl_.address_), + reinterpret_cast(&other->_impl_.address_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata PlaceOrderRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[27]); +} + +// =================================================================== + +class PlaceOrderResponse::_Internal { + public: + static const ::oteldemo::OrderResult& order(const PlaceOrderResponse* msg); +}; + +const ::oteldemo::OrderResult& +PlaceOrderResponse::_Internal::order(const PlaceOrderResponse* msg) { + return *msg->_impl_.order_; +} +PlaceOrderResponse::PlaceOrderResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.PlaceOrderResponse) +} +PlaceOrderResponse::PlaceOrderResponse(const PlaceOrderResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + PlaceOrderResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.order_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_order()) { + _this->_impl_.order_ = new ::oteldemo::OrderResult(*from._impl_.order_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.PlaceOrderResponse) +} + +inline void PlaceOrderResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.order_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +PlaceOrderResponse::~PlaceOrderResponse() { + // @@protoc_insertion_point(destructor:oteldemo.PlaceOrderResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void PlaceOrderResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + if (this != internal_default_instance()) delete _impl_.order_; +} + +void PlaceOrderResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void PlaceOrderResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.PlaceOrderResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaForAllocation() == nullptr && _impl_.order_ != nullptr) { + delete _impl_.order_; + } + _impl_.order_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* PlaceOrderResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .oteldemo.OrderResult order = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_order(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* PlaceOrderResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.PlaceOrderResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .oteldemo.OrderResult order = 1; + if (this->_internal_has_order()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, _Internal::order(this), + _Internal::order(this).GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.PlaceOrderResponse) + return target; +} + +size_t PlaceOrderResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.PlaceOrderResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .oteldemo.OrderResult order = 1; + if (this->_internal_has_order()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.order_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PlaceOrderResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + PlaceOrderResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PlaceOrderResponse::GetClassData() const { return &_class_data_; } + + +void PlaceOrderResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.PlaceOrderResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_has_order()) { + _this->_internal_mutable_order()->::oteldemo::OrderResult::MergeFrom( + from._internal_order()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void PlaceOrderResponse::CopyFrom(const PlaceOrderResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.PlaceOrderResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool PlaceOrderResponse::IsInitialized() const { + return true; +} + +void PlaceOrderResponse::InternalSwap(PlaceOrderResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + swap(_impl_.order_, other->_impl_.order_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata PlaceOrderResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[28]); +} + +// =================================================================== + +class AdRequest::_Internal { + public: +}; + +AdRequest::AdRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.AdRequest) +} +AdRequest::AdRequest(const AdRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + AdRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.context_keys_){from._impl_.context_keys_} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:oteldemo.AdRequest) +} + +inline void AdRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.context_keys_){arena} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +AdRequest::~AdRequest() { + // @@protoc_insertion_point(destructor:oteldemo.AdRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void AdRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.context_keys_.~RepeatedPtrField(); +} + +void AdRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void AdRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.AdRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.context_keys_.Clear(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* AdRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // repeated string context_keys = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_context_keys(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.AdRequest.context_keys")); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* AdRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.AdRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // repeated string context_keys = 1; + for (int i = 0, n = this->_internal_context_keys_size(); i < n; i++) { + const auto& s = this->_internal_context_keys(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.AdRequest.context_keys"); + target = stream->WriteString(1, s, target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.AdRequest) + return target; +} + +size_t AdRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.AdRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated string context_keys = 1; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.context_keys_.size()); + for (int i = 0, n = _impl_.context_keys_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + _impl_.context_keys_.Get(i)); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AdRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + AdRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AdRequest::GetClassData() const { return &_class_data_; } + + +void AdRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.AdRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.context_keys_.MergeFrom(from._impl_.context_keys_); + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void AdRequest::CopyFrom(const AdRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.AdRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool AdRequest::IsInitialized() const { + return true; +} + +void AdRequest::InternalSwap(AdRequest* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.context_keys_.InternalSwap(&other->_impl_.context_keys_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata AdRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[29]); +} + +// =================================================================== + +class AdResponse::_Internal { + public: +}; + +AdResponse::AdResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.AdResponse) +} +AdResponse::AdResponse(const AdResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + AdResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.ads_){from._impl_.ads_} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:oteldemo.AdResponse) +} + +inline void AdResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.ads_){arena} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +AdResponse::~AdResponse() { + // @@protoc_insertion_point(destructor:oteldemo.AdResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void AdResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.ads_.~RepeatedPtrField(); +} + +void AdResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void AdResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.AdResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.ads_.Clear(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* AdResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // repeated .oteldemo.Ad ads = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_ads(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* AdResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.AdResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // repeated .oteldemo.Ad ads = 1; + for (unsigned i = 0, + n = static_cast(this->_internal_ads_size()); i < n; i++) { + const auto& repfield = this->_internal_ads(i); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.AdResponse) + return target; +} + +size_t AdResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.AdResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .oteldemo.Ad ads = 1; + total_size += 1UL * this->_internal_ads_size(); + for (const auto& msg : this->_impl_.ads_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AdResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + AdResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AdResponse::GetClassData() const { return &_class_data_; } + + +void AdResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.AdResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.ads_.MergeFrom(from._impl_.ads_); + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void AdResponse::CopyFrom(const AdResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.AdResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool AdResponse::IsInitialized() const { + return true; +} + +void AdResponse::InternalSwap(AdResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.ads_.InternalSwap(&other->_impl_.ads_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata AdResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[30]); +} + +// =================================================================== + +class Ad::_Internal { + public: +}; + +Ad::Ad(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.Ad) +} +Ad::Ad(const Ad& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + Ad* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.redirect_url_){} + , decltype(_impl_.text_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.redirect_url_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.redirect_url_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_redirect_url().empty()) { + _this->_impl_.redirect_url_.Set(from._internal_redirect_url(), + _this->GetArenaForAllocation()); + } + _impl_.text_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.text_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_text().empty()) { + _this->_impl_.text_.Set(from._internal_text(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.Ad) +} + +inline void Ad::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.redirect_url_){} + , decltype(_impl_.text_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.redirect_url_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.redirect_url_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.text_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.text_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +Ad::~Ad() { + // @@protoc_insertion_point(destructor:oteldemo.Ad) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void Ad::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.redirect_url_.Destroy(); + _impl_.text_.Destroy(); +} + +void Ad::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void Ad::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.Ad) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.redirect_url_.ClearToEmpty(); + _impl_.text_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* Ad::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string redirect_url = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_redirect_url(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Ad.redirect_url")); + } else + goto handle_unusual; + continue; + // string text = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_text(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Ad.text")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* Ad::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.Ad) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string redirect_url = 1; + if (!this->_internal_redirect_url().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_redirect_url().data(), static_cast(this->_internal_redirect_url().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Ad.redirect_url"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_redirect_url(), target); + } + + // string text = 2; + if (!this->_internal_text().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_text().data(), static_cast(this->_internal_text().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Ad.text"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_text(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.Ad) + return target; +} + +size_t Ad::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.Ad) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string redirect_url = 1; + if (!this->_internal_redirect_url().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_redirect_url()); + } + + // string text = 2; + if (!this->_internal_text().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_text()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Ad::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + Ad::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Ad::GetClassData() const { return &_class_data_; } + + +void Ad::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.Ad) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_redirect_url().empty()) { + _this->_internal_set_redirect_url(from._internal_redirect_url()); + } + if (!from._internal_text().empty()) { + _this->_internal_set_text(from._internal_text()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void Ad::CopyFrom(const Ad& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.Ad) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Ad::IsInitialized() const { + return true; +} + +void Ad::InternalSwap(Ad* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.redirect_url_, lhs_arena, + &other->_impl_.redirect_url_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.text_, lhs_arena, + &other->_impl_.text_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Ad::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[31]); +} + +// =================================================================== + +class Flag::_Internal { + public: +}; + +Flag::Flag(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.Flag) +} +Flag::Flag(const Flag& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + Flag* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.name_){} + , decltype(_impl_.description_){} + , decltype(_impl_.enabled_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_name().empty()) { + _this->_impl_.name_.Set(from._internal_name(), + _this->GetArenaForAllocation()); + } + _impl_.description_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.description_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_description().empty()) { + _this->_impl_.description_.Set(from._internal_description(), + _this->GetArenaForAllocation()); + } + _this->_impl_.enabled_ = from._impl_.enabled_; + // @@protoc_insertion_point(copy_constructor:oteldemo.Flag) +} + +inline void Flag::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.name_){} + , decltype(_impl_.description_){} + , decltype(_impl_.enabled_){false} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.description_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.description_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +Flag::~Flag() { + // @@protoc_insertion_point(destructor:oteldemo.Flag) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void Flag::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.name_.Destroy(); + _impl_.description_.Destroy(); +} + +void Flag::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void Flag::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.Flag) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.name_.ClearToEmpty(); + _impl_.description_.ClearToEmpty(); + _impl_.enabled_ = false; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* Flag::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string name = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_name(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Flag.name")); + } else + goto handle_unusual; + continue; + // string description = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_description(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.Flag.description")); + } else + goto handle_unusual; + continue; + // bool enabled = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { + _impl_.enabled_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* Flag::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.Flag) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string name = 1; + if (!this->_internal_name().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_name().data(), static_cast(this->_internal_name().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Flag.name"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_name(), target); + } + + // string description = 2; + if (!this->_internal_description().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_description().data(), static_cast(this->_internal_description().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.Flag.description"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_description(), target); + } + + // bool enabled = 3; + if (this->_internal_enabled() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteBoolToArray(3, this->_internal_enabled(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.Flag) + return target; +} + +size_t Flag::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.Flag) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string name = 1; + if (!this->_internal_name().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_name()); + } + + // string description = 2; + if (!this->_internal_description().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_description()); + } + + // bool enabled = 3; + if (this->_internal_enabled() != 0) { + total_size += 1 + 1; + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Flag::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + Flag::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Flag::GetClassData() const { return &_class_data_; } + + +void Flag::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.Flag) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_name().empty()) { + _this->_internal_set_name(from._internal_name()); + } + if (!from._internal_description().empty()) { + _this->_internal_set_description(from._internal_description()); + } + if (from._internal_enabled() != 0) { + _this->_internal_set_enabled(from._internal_enabled()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void Flag::CopyFrom(const Flag& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.Flag) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Flag::IsInitialized() const { + return true; +} + +void Flag::InternalSwap(Flag* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.name_, lhs_arena, + &other->_impl_.name_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.description_, lhs_arena, + &other->_impl_.description_, rhs_arena + ); + swap(_impl_.enabled_, other->_impl_.enabled_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Flag::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[32]); +} + +// =================================================================== + +class GetFlagRequest::_Internal { + public: +}; + +GetFlagRequest::GetFlagRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.GetFlagRequest) +} +GetFlagRequest::GetFlagRequest(const GetFlagRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + GetFlagRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.name_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_name().empty()) { + _this->_impl_.name_.Set(from._internal_name(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.GetFlagRequest) +} + +inline void GetFlagRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.name_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +GetFlagRequest::~GetFlagRequest() { + // @@protoc_insertion_point(destructor:oteldemo.GetFlagRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void GetFlagRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.name_.Destroy(); +} + +void GetFlagRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void GetFlagRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.GetFlagRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.name_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* GetFlagRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string name = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_name(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.GetFlagRequest.name")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* GetFlagRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.GetFlagRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string name = 1; + if (!this->_internal_name().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_name().data(), static_cast(this->_internal_name().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.GetFlagRequest.name"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_name(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.GetFlagRequest) + return target; +} + +size_t GetFlagRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.GetFlagRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string name = 1; + if (!this->_internal_name().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_name()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GetFlagRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + GetFlagRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetFlagRequest::GetClassData() const { return &_class_data_; } + + +void GetFlagRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.GetFlagRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_name().empty()) { + _this->_internal_set_name(from._internal_name()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void GetFlagRequest::CopyFrom(const GetFlagRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.GetFlagRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetFlagRequest::IsInitialized() const { + return true; +} + +void GetFlagRequest::InternalSwap(GetFlagRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.name_, lhs_arena, + &other->_impl_.name_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetFlagRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[33]); +} + +// =================================================================== + +class GetFlagResponse::_Internal { + public: + static const ::oteldemo::Flag& flag(const GetFlagResponse* msg); +}; + +const ::oteldemo::Flag& +GetFlagResponse::_Internal::flag(const GetFlagResponse* msg) { + return *msg->_impl_.flag_; +} +GetFlagResponse::GetFlagResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.GetFlagResponse) +} +GetFlagResponse::GetFlagResponse(const GetFlagResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + GetFlagResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.flag_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_flag()) { + _this->_impl_.flag_ = new ::oteldemo::Flag(*from._impl_.flag_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.GetFlagResponse) +} + +inline void GetFlagResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.flag_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +GetFlagResponse::~GetFlagResponse() { + // @@protoc_insertion_point(destructor:oteldemo.GetFlagResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void GetFlagResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + if (this != internal_default_instance()) delete _impl_.flag_; +} + +void GetFlagResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void GetFlagResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.GetFlagResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaForAllocation() == nullptr && _impl_.flag_ != nullptr) { + delete _impl_.flag_; + } + _impl_.flag_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* GetFlagResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .oteldemo.Flag flag = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_flag(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* GetFlagResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.GetFlagResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .oteldemo.Flag flag = 1; + if (this->_internal_has_flag()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, _Internal::flag(this), + _Internal::flag(this).GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.GetFlagResponse) + return target; +} + +size_t GetFlagResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.GetFlagResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .oteldemo.Flag flag = 1; + if (this->_internal_has_flag()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.flag_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GetFlagResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + GetFlagResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetFlagResponse::GetClassData() const { return &_class_data_; } + + +void GetFlagResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.GetFlagResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_has_flag()) { + _this->_internal_mutable_flag()->::oteldemo::Flag::MergeFrom( + from._internal_flag()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void GetFlagResponse::CopyFrom(const GetFlagResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.GetFlagResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetFlagResponse::IsInitialized() const { + return true; +} + +void GetFlagResponse::InternalSwap(GetFlagResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + swap(_impl_.flag_, other->_impl_.flag_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetFlagResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[34]); +} + +// =================================================================== + +class CreateFlagRequest::_Internal { + public: +}; + +CreateFlagRequest::CreateFlagRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.CreateFlagRequest) +} +CreateFlagRequest::CreateFlagRequest(const CreateFlagRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + CreateFlagRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.name_){} + , decltype(_impl_.description_){} + , decltype(_impl_.enabled_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_name().empty()) { + _this->_impl_.name_.Set(from._internal_name(), + _this->GetArenaForAllocation()); + } + _impl_.description_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.description_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_description().empty()) { + _this->_impl_.description_.Set(from._internal_description(), + _this->GetArenaForAllocation()); + } + _this->_impl_.enabled_ = from._impl_.enabled_; + // @@protoc_insertion_point(copy_constructor:oteldemo.CreateFlagRequest) +} + +inline void CreateFlagRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.name_){} + , decltype(_impl_.description_){} + , decltype(_impl_.enabled_){false} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.description_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.description_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +CreateFlagRequest::~CreateFlagRequest() { + // @@protoc_insertion_point(destructor:oteldemo.CreateFlagRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void CreateFlagRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.name_.Destroy(); + _impl_.description_.Destroy(); +} + +void CreateFlagRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void CreateFlagRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.CreateFlagRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.name_.ClearToEmpty(); + _impl_.description_.ClearToEmpty(); + _impl_.enabled_ = false; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* CreateFlagRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string name = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_name(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.CreateFlagRequest.name")); + } else + goto handle_unusual; + continue; + // string description = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_description(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.CreateFlagRequest.description")); + } else + goto handle_unusual; + continue; + // bool enabled = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { + _impl_.enabled_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* CreateFlagRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.CreateFlagRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string name = 1; + if (!this->_internal_name().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_name().data(), static_cast(this->_internal_name().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.CreateFlagRequest.name"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_name(), target); + } + + // string description = 2; + if (!this->_internal_description().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_description().data(), static_cast(this->_internal_description().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.CreateFlagRequest.description"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_description(), target); + } + + // bool enabled = 3; + if (this->_internal_enabled() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteBoolToArray(3, this->_internal_enabled(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.CreateFlagRequest) + return target; +} + +size_t CreateFlagRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.CreateFlagRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string name = 1; + if (!this->_internal_name().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_name()); + } + + // string description = 2; + if (!this->_internal_description().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_description()); + } + + // bool enabled = 3; + if (this->_internal_enabled() != 0) { + total_size += 1 + 1; + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CreateFlagRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + CreateFlagRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CreateFlagRequest::GetClassData() const { return &_class_data_; } + + +void CreateFlagRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.CreateFlagRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_name().empty()) { + _this->_internal_set_name(from._internal_name()); + } + if (!from._internal_description().empty()) { + _this->_internal_set_description(from._internal_description()); + } + if (from._internal_enabled() != 0) { + _this->_internal_set_enabled(from._internal_enabled()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void CreateFlagRequest::CopyFrom(const CreateFlagRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.CreateFlagRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool CreateFlagRequest::IsInitialized() const { + return true; +} + +void CreateFlagRequest::InternalSwap(CreateFlagRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.name_, lhs_arena, + &other->_impl_.name_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.description_, lhs_arena, + &other->_impl_.description_, rhs_arena + ); + swap(_impl_.enabled_, other->_impl_.enabled_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata CreateFlagRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[35]); +} + +// =================================================================== + +class CreateFlagResponse::_Internal { + public: + static const ::oteldemo::Flag& flag(const CreateFlagResponse* msg); +}; + +const ::oteldemo::Flag& +CreateFlagResponse::_Internal::flag(const CreateFlagResponse* msg) { + return *msg->_impl_.flag_; +} +CreateFlagResponse::CreateFlagResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.CreateFlagResponse) +} +CreateFlagResponse::CreateFlagResponse(const CreateFlagResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + CreateFlagResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.flag_){nullptr} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + if (from._internal_has_flag()) { + _this->_impl_.flag_ = new ::oteldemo::Flag(*from._impl_.flag_); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.CreateFlagResponse) +} + +inline void CreateFlagResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.flag_){nullptr} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +CreateFlagResponse::~CreateFlagResponse() { + // @@protoc_insertion_point(destructor:oteldemo.CreateFlagResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void CreateFlagResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + if (this != internal_default_instance()) delete _impl_.flag_; +} + +void CreateFlagResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void CreateFlagResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.CreateFlagResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaForAllocation() == nullptr && _impl_.flag_ != nullptr) { + delete _impl_.flag_; + } + _impl_.flag_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* CreateFlagResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .oteldemo.Flag flag = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_flag(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* CreateFlagResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.CreateFlagResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .oteldemo.Flag flag = 1; + if (this->_internal_has_flag()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, _Internal::flag(this), + _Internal::flag(this).GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.CreateFlagResponse) + return target; +} + +size_t CreateFlagResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.CreateFlagResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .oteldemo.Flag flag = 1; + if (this->_internal_has_flag()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.flag_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CreateFlagResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + CreateFlagResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CreateFlagResponse::GetClassData() const { return &_class_data_; } + + +void CreateFlagResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.CreateFlagResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_has_flag()) { + _this->_internal_mutable_flag()->::oteldemo::Flag::MergeFrom( + from._internal_flag()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void CreateFlagResponse::CopyFrom(const CreateFlagResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.CreateFlagResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool CreateFlagResponse::IsInitialized() const { + return true; +} + +void CreateFlagResponse::InternalSwap(CreateFlagResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + swap(_impl_.flag_, other->_impl_.flag_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata CreateFlagResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[36]); +} + +// =================================================================== + +class UpdateFlagRequest::_Internal { + public: +}; + +UpdateFlagRequest::UpdateFlagRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.UpdateFlagRequest) +} +UpdateFlagRequest::UpdateFlagRequest(const UpdateFlagRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + UpdateFlagRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.name_){} + , decltype(_impl_.enabled_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_name().empty()) { + _this->_impl_.name_.Set(from._internal_name(), + _this->GetArenaForAllocation()); + } + _this->_impl_.enabled_ = from._impl_.enabled_; + // @@protoc_insertion_point(copy_constructor:oteldemo.UpdateFlagRequest) +} + +inline void UpdateFlagRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.name_){} + , decltype(_impl_.enabled_){false} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +UpdateFlagRequest::~UpdateFlagRequest() { + // @@protoc_insertion_point(destructor:oteldemo.UpdateFlagRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void UpdateFlagRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.name_.Destroy(); +} + +void UpdateFlagRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void UpdateFlagRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.UpdateFlagRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.name_.ClearToEmpty(); + _impl_.enabled_ = false; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* UpdateFlagRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string name = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_name(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.UpdateFlagRequest.name")); + } else + goto handle_unusual; + continue; + // bool enabled = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { + _impl_.enabled_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* UpdateFlagRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.UpdateFlagRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string name = 1; + if (!this->_internal_name().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_name().data(), static_cast(this->_internal_name().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.UpdateFlagRequest.name"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_name(), target); + } + + // bool enabled = 2; + if (this->_internal_enabled() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteBoolToArray(2, this->_internal_enabled(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.UpdateFlagRequest) + return target; +} + +size_t UpdateFlagRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.UpdateFlagRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string name = 1; + if (!this->_internal_name().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_name()); + } + + // bool enabled = 2; + if (this->_internal_enabled() != 0) { + total_size += 1 + 1; + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UpdateFlagRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + UpdateFlagRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UpdateFlagRequest::GetClassData() const { return &_class_data_; } + + +void UpdateFlagRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.UpdateFlagRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_name().empty()) { + _this->_internal_set_name(from._internal_name()); + } + if (from._internal_enabled() != 0) { + _this->_internal_set_enabled(from._internal_enabled()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void UpdateFlagRequest::CopyFrom(const UpdateFlagRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.UpdateFlagRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool UpdateFlagRequest::IsInitialized() const { + return true; +} + +void UpdateFlagRequest::InternalSwap(UpdateFlagRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.name_, lhs_arena, + &other->_impl_.name_, rhs_arena + ); + swap(_impl_.enabled_, other->_impl_.enabled_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata UpdateFlagRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[37]); +} + +// =================================================================== + +class UpdateFlagResponse::_Internal { + public: +}; + +UpdateFlagResponse::UpdateFlagResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) { + // @@protoc_insertion_point(arena_constructor:oteldemo.UpdateFlagResponse) +} +UpdateFlagResponse::UpdateFlagResponse(const UpdateFlagResponse& from) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() { + UpdateFlagResponse* const _this = this; (void)_this; + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:oteldemo.UpdateFlagResponse) +} + + + + + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UpdateFlagResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl, + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl, +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UpdateFlagResponse::GetClassData() const { return &_class_data_; } + + + + + + + +::PROTOBUF_NAMESPACE_ID::Metadata UpdateFlagResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[38]); +} + +// =================================================================== + +class ListFlagsRequest::_Internal { + public: +}; + +ListFlagsRequest::ListFlagsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) { + // @@protoc_insertion_point(arena_constructor:oteldemo.ListFlagsRequest) +} +ListFlagsRequest::ListFlagsRequest(const ListFlagsRequest& from) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() { + ListFlagsRequest* const _this = this; (void)_this; + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:oteldemo.ListFlagsRequest) +} + + + + + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ListFlagsRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl, + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl, +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ListFlagsRequest::GetClassData() const { return &_class_data_; } + + + + + + + +::PROTOBUF_NAMESPACE_ID::Metadata ListFlagsRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[39]); +} + +// =================================================================== + +class ListFlagsResponse::_Internal { + public: +}; + +ListFlagsResponse::ListFlagsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.ListFlagsResponse) +} +ListFlagsResponse::ListFlagsResponse(const ListFlagsResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + ListFlagsResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.flag_){from._impl_.flag_} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:oteldemo.ListFlagsResponse) +} + +inline void ListFlagsResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.flag_){arena} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +ListFlagsResponse::~ListFlagsResponse() { + // @@protoc_insertion_point(destructor:oteldemo.ListFlagsResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void ListFlagsResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.flag_.~RepeatedPtrField(); +} + +void ListFlagsResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void ListFlagsResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.ListFlagsResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.flag_.Clear(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* ListFlagsResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // repeated .oteldemo.Flag flag = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_flag(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* ListFlagsResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.ListFlagsResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // repeated .oteldemo.Flag flag = 1; + for (unsigned i = 0, + n = static_cast(this->_internal_flag_size()); i < n; i++) { + const auto& repfield = this->_internal_flag(i); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.ListFlagsResponse) + return target; +} + +size_t ListFlagsResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.ListFlagsResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .oteldemo.Flag flag = 1; + total_size += 1UL * this->_internal_flag_size(); + for (const auto& msg : this->_impl_.flag_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ListFlagsResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + ListFlagsResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ListFlagsResponse::GetClassData() const { return &_class_data_; } + + +void ListFlagsResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.ListFlagsResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + _this->_impl_.flag_.MergeFrom(from._impl_.flag_); + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void ListFlagsResponse::CopyFrom(const ListFlagsResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.ListFlagsResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ListFlagsResponse::IsInitialized() const { + return true; +} + +void ListFlagsResponse::InternalSwap(ListFlagsResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.flag_.InternalSwap(&other->_impl_.flag_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ListFlagsResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[40]); +} + +// =================================================================== + +class DeleteFlagRequest::_Internal { + public: +}; + +DeleteFlagRequest::DeleteFlagRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:oteldemo.DeleteFlagRequest) +} +DeleteFlagRequest::DeleteFlagRequest(const DeleteFlagRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + DeleteFlagRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.name_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_name().empty()) { + _this->_impl_.name_.Set(from._internal_name(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:oteldemo.DeleteFlagRequest) +} + +inline void DeleteFlagRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.name_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +DeleteFlagRequest::~DeleteFlagRequest() { + // @@protoc_insertion_point(destructor:oteldemo.DeleteFlagRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void DeleteFlagRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.name_.Destroy(); +} + +void DeleteFlagRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void DeleteFlagRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:oteldemo.DeleteFlagRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.name_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* DeleteFlagRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string name = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_name(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "oteldemo.DeleteFlagRequest.name")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* DeleteFlagRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:oteldemo.DeleteFlagRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string name = 1; + if (!this->_internal_name().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_name().data(), static_cast(this->_internal_name().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "oteldemo.DeleteFlagRequest.name"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_name(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:oteldemo.DeleteFlagRequest) + return target; +} + +size_t DeleteFlagRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:oteldemo.DeleteFlagRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string name = 1; + if (!this->_internal_name().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_name()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData DeleteFlagRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + DeleteFlagRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*DeleteFlagRequest::GetClassData() const { return &_class_data_; } + + +void DeleteFlagRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:oteldemo.DeleteFlagRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_name().empty()) { + _this->_internal_set_name(from._internal_name()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void DeleteFlagRequest::CopyFrom(const DeleteFlagRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:oteldemo.DeleteFlagRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool DeleteFlagRequest::IsInitialized() const { + return true; +} + +void DeleteFlagRequest::InternalSwap(DeleteFlagRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.name_, lhs_arena, + &other->_impl_.name_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata DeleteFlagRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[41]); +} + +// =================================================================== + +class DeleteFlagResponse::_Internal { + public: +}; + +DeleteFlagResponse::DeleteFlagResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) { + // @@protoc_insertion_point(arena_constructor:oteldemo.DeleteFlagResponse) +} +DeleteFlagResponse::DeleteFlagResponse(const DeleteFlagResponse& from) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() { + DeleteFlagResponse* const _this = this; (void)_this; + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:oteldemo.DeleteFlagResponse) +} + + + + + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData DeleteFlagResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl, + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl, +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*DeleteFlagResponse::GetClassData() const { return &_class_data_; } + + + + + + + +::PROTOBUF_NAMESPACE_ID::Metadata DeleteFlagResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_demo_2eproto_getter, &descriptor_table_demo_2eproto_once, + file_level_metadata_demo_2eproto[42]); +} + +// @@protoc_insertion_point(namespace_scope) +} // namespace oteldemo +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::oteldemo::CartItem* +Arena::CreateMaybeMessage< ::oteldemo::CartItem >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::CartItem >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::AddItemRequest* +Arena::CreateMaybeMessage< ::oteldemo::AddItemRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::AddItemRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::EmptyCartRequest* +Arena::CreateMaybeMessage< ::oteldemo::EmptyCartRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::EmptyCartRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::GetCartRequest* +Arena::CreateMaybeMessage< ::oteldemo::GetCartRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::GetCartRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::Cart* +Arena::CreateMaybeMessage< ::oteldemo::Cart >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::Cart >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::Empty* +Arena::CreateMaybeMessage< ::oteldemo::Empty >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::Empty >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::ListRecommendationsRequest* +Arena::CreateMaybeMessage< ::oteldemo::ListRecommendationsRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::ListRecommendationsRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::ListRecommendationsResponse* +Arena::CreateMaybeMessage< ::oteldemo::ListRecommendationsResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::ListRecommendationsResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::Product* +Arena::CreateMaybeMessage< ::oteldemo::Product >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::Product >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::ListProductsResponse* +Arena::CreateMaybeMessage< ::oteldemo::ListProductsResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::ListProductsResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::GetProductRequest* +Arena::CreateMaybeMessage< ::oteldemo::GetProductRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::GetProductRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::SearchProductsRequest* +Arena::CreateMaybeMessage< ::oteldemo::SearchProductsRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::SearchProductsRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::SearchProductsResponse* +Arena::CreateMaybeMessage< ::oteldemo::SearchProductsResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::SearchProductsResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::GetQuoteRequest* +Arena::CreateMaybeMessage< ::oteldemo::GetQuoteRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::GetQuoteRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::GetQuoteResponse* +Arena::CreateMaybeMessage< ::oteldemo::GetQuoteResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::GetQuoteResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::ShipOrderRequest* +Arena::CreateMaybeMessage< ::oteldemo::ShipOrderRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::ShipOrderRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::ShipOrderResponse* +Arena::CreateMaybeMessage< ::oteldemo::ShipOrderResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::ShipOrderResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::Address* +Arena::CreateMaybeMessage< ::oteldemo::Address >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::Address >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::Money* +Arena::CreateMaybeMessage< ::oteldemo::Money >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::Money >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::GetSupportedCurrenciesResponse* +Arena::CreateMaybeMessage< ::oteldemo::GetSupportedCurrenciesResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::GetSupportedCurrenciesResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::CurrencyConversionRequest* +Arena::CreateMaybeMessage< ::oteldemo::CurrencyConversionRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::CurrencyConversionRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::CreditCardInfo* +Arena::CreateMaybeMessage< ::oteldemo::CreditCardInfo >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::CreditCardInfo >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::ChargeRequest* +Arena::CreateMaybeMessage< ::oteldemo::ChargeRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::ChargeRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::ChargeResponse* +Arena::CreateMaybeMessage< ::oteldemo::ChargeResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::ChargeResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::OrderItem* +Arena::CreateMaybeMessage< ::oteldemo::OrderItem >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::OrderItem >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::OrderResult* +Arena::CreateMaybeMessage< ::oteldemo::OrderResult >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::OrderResult >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::SendOrderConfirmationRequest* +Arena::CreateMaybeMessage< ::oteldemo::SendOrderConfirmationRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::SendOrderConfirmationRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::PlaceOrderRequest* +Arena::CreateMaybeMessage< ::oteldemo::PlaceOrderRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::PlaceOrderRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::PlaceOrderResponse* +Arena::CreateMaybeMessage< ::oteldemo::PlaceOrderResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::PlaceOrderResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::AdRequest* +Arena::CreateMaybeMessage< ::oteldemo::AdRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::AdRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::AdResponse* +Arena::CreateMaybeMessage< ::oteldemo::AdResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::AdResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::Ad* +Arena::CreateMaybeMessage< ::oteldemo::Ad >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::Ad >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::Flag* +Arena::CreateMaybeMessage< ::oteldemo::Flag >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::Flag >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::GetFlagRequest* +Arena::CreateMaybeMessage< ::oteldemo::GetFlagRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::GetFlagRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::GetFlagResponse* +Arena::CreateMaybeMessage< ::oteldemo::GetFlagResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::GetFlagResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::CreateFlagRequest* +Arena::CreateMaybeMessage< ::oteldemo::CreateFlagRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::CreateFlagRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::CreateFlagResponse* +Arena::CreateMaybeMessage< ::oteldemo::CreateFlagResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::CreateFlagResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::UpdateFlagRequest* +Arena::CreateMaybeMessage< ::oteldemo::UpdateFlagRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::UpdateFlagRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::UpdateFlagResponse* +Arena::CreateMaybeMessage< ::oteldemo::UpdateFlagResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::UpdateFlagResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::ListFlagsRequest* +Arena::CreateMaybeMessage< ::oteldemo::ListFlagsRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::ListFlagsRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::ListFlagsResponse* +Arena::CreateMaybeMessage< ::oteldemo::ListFlagsResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::ListFlagsResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::DeleteFlagRequest* +Arena::CreateMaybeMessage< ::oteldemo::DeleteFlagRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::DeleteFlagRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::oteldemo::DeleteFlagResponse* +Arena::CreateMaybeMessage< ::oteldemo::DeleteFlagResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::oteldemo::DeleteFlagResponse >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include diff --git a/src/currency/build/generated/proto/demo.pb.h b/src/currency/build/generated/proto/demo.pb.h new file mode 100644 index 0000000000..e1606a794f --- /dev/null +++ b/src/currency/build/generated/proto/demo.pb.h @@ -0,0 +1,12001 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: demo.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_demo_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_demo_2eproto + +#include +#include + +#include +#if PROTOBUF_VERSION < 3021000 +#error This file was generated by a newer version of protoc which is +#error incompatible with your Protocol Buffer headers. Please update +#error your headers. +#endif +#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION +#error This file was generated by an older version of protoc which is +#error incompatible with your Protocol Buffer headers. Please +#error regenerate this file with a newer version of protoc. +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // IWYU pragma: export +#include // IWYU pragma: export +#include +// @@protoc_insertion_point(includes) +#include +#define PROTOBUF_INTERNAL_EXPORT_demo_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_demo_2eproto { + static const uint32_t offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_demo_2eproto; +namespace oteldemo { +class Ad; +struct AdDefaultTypeInternal; +extern AdDefaultTypeInternal _Ad_default_instance_; +class AdRequest; +struct AdRequestDefaultTypeInternal; +extern AdRequestDefaultTypeInternal _AdRequest_default_instance_; +class AdResponse; +struct AdResponseDefaultTypeInternal; +extern AdResponseDefaultTypeInternal _AdResponse_default_instance_; +class AddItemRequest; +struct AddItemRequestDefaultTypeInternal; +extern AddItemRequestDefaultTypeInternal _AddItemRequest_default_instance_; +class Address; +struct AddressDefaultTypeInternal; +extern AddressDefaultTypeInternal _Address_default_instance_; +class Cart; +struct CartDefaultTypeInternal; +extern CartDefaultTypeInternal _Cart_default_instance_; +class CartItem; +struct CartItemDefaultTypeInternal; +extern CartItemDefaultTypeInternal _CartItem_default_instance_; +class ChargeRequest; +struct ChargeRequestDefaultTypeInternal; +extern ChargeRequestDefaultTypeInternal _ChargeRequest_default_instance_; +class ChargeResponse; +struct ChargeResponseDefaultTypeInternal; +extern ChargeResponseDefaultTypeInternal _ChargeResponse_default_instance_; +class CreateFlagRequest; +struct CreateFlagRequestDefaultTypeInternal; +extern CreateFlagRequestDefaultTypeInternal _CreateFlagRequest_default_instance_; +class CreateFlagResponse; +struct CreateFlagResponseDefaultTypeInternal; +extern CreateFlagResponseDefaultTypeInternal _CreateFlagResponse_default_instance_; +class CreditCardInfo; +struct CreditCardInfoDefaultTypeInternal; +extern CreditCardInfoDefaultTypeInternal _CreditCardInfo_default_instance_; +class CurrencyConversionRequest; +struct CurrencyConversionRequestDefaultTypeInternal; +extern CurrencyConversionRequestDefaultTypeInternal _CurrencyConversionRequest_default_instance_; +class DeleteFlagRequest; +struct DeleteFlagRequestDefaultTypeInternal; +extern DeleteFlagRequestDefaultTypeInternal _DeleteFlagRequest_default_instance_; +class DeleteFlagResponse; +struct DeleteFlagResponseDefaultTypeInternal; +extern DeleteFlagResponseDefaultTypeInternal _DeleteFlagResponse_default_instance_; +class Empty; +struct EmptyDefaultTypeInternal; +extern EmptyDefaultTypeInternal _Empty_default_instance_; +class EmptyCartRequest; +struct EmptyCartRequestDefaultTypeInternal; +extern EmptyCartRequestDefaultTypeInternal _EmptyCartRequest_default_instance_; +class Flag; +struct FlagDefaultTypeInternal; +extern FlagDefaultTypeInternal _Flag_default_instance_; +class GetCartRequest; +struct GetCartRequestDefaultTypeInternal; +extern GetCartRequestDefaultTypeInternal _GetCartRequest_default_instance_; +class GetFlagRequest; +struct GetFlagRequestDefaultTypeInternal; +extern GetFlagRequestDefaultTypeInternal _GetFlagRequest_default_instance_; +class GetFlagResponse; +struct GetFlagResponseDefaultTypeInternal; +extern GetFlagResponseDefaultTypeInternal _GetFlagResponse_default_instance_; +class GetProductRequest; +struct GetProductRequestDefaultTypeInternal; +extern GetProductRequestDefaultTypeInternal _GetProductRequest_default_instance_; +class GetQuoteRequest; +struct GetQuoteRequestDefaultTypeInternal; +extern GetQuoteRequestDefaultTypeInternal _GetQuoteRequest_default_instance_; +class GetQuoteResponse; +struct GetQuoteResponseDefaultTypeInternal; +extern GetQuoteResponseDefaultTypeInternal _GetQuoteResponse_default_instance_; +class GetSupportedCurrenciesResponse; +struct GetSupportedCurrenciesResponseDefaultTypeInternal; +extern GetSupportedCurrenciesResponseDefaultTypeInternal _GetSupportedCurrenciesResponse_default_instance_; +class ListFlagsRequest; +struct ListFlagsRequestDefaultTypeInternal; +extern ListFlagsRequestDefaultTypeInternal _ListFlagsRequest_default_instance_; +class ListFlagsResponse; +struct ListFlagsResponseDefaultTypeInternal; +extern ListFlagsResponseDefaultTypeInternal _ListFlagsResponse_default_instance_; +class ListProductsResponse; +struct ListProductsResponseDefaultTypeInternal; +extern ListProductsResponseDefaultTypeInternal _ListProductsResponse_default_instance_; +class ListRecommendationsRequest; +struct ListRecommendationsRequestDefaultTypeInternal; +extern ListRecommendationsRequestDefaultTypeInternal _ListRecommendationsRequest_default_instance_; +class ListRecommendationsResponse; +struct ListRecommendationsResponseDefaultTypeInternal; +extern ListRecommendationsResponseDefaultTypeInternal _ListRecommendationsResponse_default_instance_; +class Money; +struct MoneyDefaultTypeInternal; +extern MoneyDefaultTypeInternal _Money_default_instance_; +class OrderItem; +struct OrderItemDefaultTypeInternal; +extern OrderItemDefaultTypeInternal _OrderItem_default_instance_; +class OrderResult; +struct OrderResultDefaultTypeInternal; +extern OrderResultDefaultTypeInternal _OrderResult_default_instance_; +class PlaceOrderRequest; +struct PlaceOrderRequestDefaultTypeInternal; +extern PlaceOrderRequestDefaultTypeInternal _PlaceOrderRequest_default_instance_; +class PlaceOrderResponse; +struct PlaceOrderResponseDefaultTypeInternal; +extern PlaceOrderResponseDefaultTypeInternal _PlaceOrderResponse_default_instance_; +class Product; +struct ProductDefaultTypeInternal; +extern ProductDefaultTypeInternal _Product_default_instance_; +class SearchProductsRequest; +struct SearchProductsRequestDefaultTypeInternal; +extern SearchProductsRequestDefaultTypeInternal _SearchProductsRequest_default_instance_; +class SearchProductsResponse; +struct SearchProductsResponseDefaultTypeInternal; +extern SearchProductsResponseDefaultTypeInternal _SearchProductsResponse_default_instance_; +class SendOrderConfirmationRequest; +struct SendOrderConfirmationRequestDefaultTypeInternal; +extern SendOrderConfirmationRequestDefaultTypeInternal _SendOrderConfirmationRequest_default_instance_; +class ShipOrderRequest; +struct ShipOrderRequestDefaultTypeInternal; +extern ShipOrderRequestDefaultTypeInternal _ShipOrderRequest_default_instance_; +class ShipOrderResponse; +struct ShipOrderResponseDefaultTypeInternal; +extern ShipOrderResponseDefaultTypeInternal _ShipOrderResponse_default_instance_; +class UpdateFlagRequest; +struct UpdateFlagRequestDefaultTypeInternal; +extern UpdateFlagRequestDefaultTypeInternal _UpdateFlagRequest_default_instance_; +class UpdateFlagResponse; +struct UpdateFlagResponseDefaultTypeInternal; +extern UpdateFlagResponseDefaultTypeInternal _UpdateFlagResponse_default_instance_; +} // namespace oteldemo +PROTOBUF_NAMESPACE_OPEN +template<> ::oteldemo::Ad* Arena::CreateMaybeMessage<::oteldemo::Ad>(Arena*); +template<> ::oteldemo::AdRequest* Arena::CreateMaybeMessage<::oteldemo::AdRequest>(Arena*); +template<> ::oteldemo::AdResponse* Arena::CreateMaybeMessage<::oteldemo::AdResponse>(Arena*); +template<> ::oteldemo::AddItemRequest* Arena::CreateMaybeMessage<::oteldemo::AddItemRequest>(Arena*); +template<> ::oteldemo::Address* Arena::CreateMaybeMessage<::oteldemo::Address>(Arena*); +template<> ::oteldemo::Cart* Arena::CreateMaybeMessage<::oteldemo::Cart>(Arena*); +template<> ::oteldemo::CartItem* Arena::CreateMaybeMessage<::oteldemo::CartItem>(Arena*); +template<> ::oteldemo::ChargeRequest* Arena::CreateMaybeMessage<::oteldemo::ChargeRequest>(Arena*); +template<> ::oteldemo::ChargeResponse* Arena::CreateMaybeMessage<::oteldemo::ChargeResponse>(Arena*); +template<> ::oteldemo::CreateFlagRequest* Arena::CreateMaybeMessage<::oteldemo::CreateFlagRequest>(Arena*); +template<> ::oteldemo::CreateFlagResponse* Arena::CreateMaybeMessage<::oteldemo::CreateFlagResponse>(Arena*); +template<> ::oteldemo::CreditCardInfo* Arena::CreateMaybeMessage<::oteldemo::CreditCardInfo>(Arena*); +template<> ::oteldemo::CurrencyConversionRequest* Arena::CreateMaybeMessage<::oteldemo::CurrencyConversionRequest>(Arena*); +template<> ::oteldemo::DeleteFlagRequest* Arena::CreateMaybeMessage<::oteldemo::DeleteFlagRequest>(Arena*); +template<> ::oteldemo::DeleteFlagResponse* Arena::CreateMaybeMessage<::oteldemo::DeleteFlagResponse>(Arena*); +template<> ::oteldemo::Empty* Arena::CreateMaybeMessage<::oteldemo::Empty>(Arena*); +template<> ::oteldemo::EmptyCartRequest* Arena::CreateMaybeMessage<::oteldemo::EmptyCartRequest>(Arena*); +template<> ::oteldemo::Flag* Arena::CreateMaybeMessage<::oteldemo::Flag>(Arena*); +template<> ::oteldemo::GetCartRequest* Arena::CreateMaybeMessage<::oteldemo::GetCartRequest>(Arena*); +template<> ::oteldemo::GetFlagRequest* Arena::CreateMaybeMessage<::oteldemo::GetFlagRequest>(Arena*); +template<> ::oteldemo::GetFlagResponse* Arena::CreateMaybeMessage<::oteldemo::GetFlagResponse>(Arena*); +template<> ::oteldemo::GetProductRequest* Arena::CreateMaybeMessage<::oteldemo::GetProductRequest>(Arena*); +template<> ::oteldemo::GetQuoteRequest* Arena::CreateMaybeMessage<::oteldemo::GetQuoteRequest>(Arena*); +template<> ::oteldemo::GetQuoteResponse* Arena::CreateMaybeMessage<::oteldemo::GetQuoteResponse>(Arena*); +template<> ::oteldemo::GetSupportedCurrenciesResponse* Arena::CreateMaybeMessage<::oteldemo::GetSupportedCurrenciesResponse>(Arena*); +template<> ::oteldemo::ListFlagsRequest* Arena::CreateMaybeMessage<::oteldemo::ListFlagsRequest>(Arena*); +template<> ::oteldemo::ListFlagsResponse* Arena::CreateMaybeMessage<::oteldemo::ListFlagsResponse>(Arena*); +template<> ::oteldemo::ListProductsResponse* Arena::CreateMaybeMessage<::oteldemo::ListProductsResponse>(Arena*); +template<> ::oteldemo::ListRecommendationsRequest* Arena::CreateMaybeMessage<::oteldemo::ListRecommendationsRequest>(Arena*); +template<> ::oteldemo::ListRecommendationsResponse* Arena::CreateMaybeMessage<::oteldemo::ListRecommendationsResponse>(Arena*); +template<> ::oteldemo::Money* Arena::CreateMaybeMessage<::oteldemo::Money>(Arena*); +template<> ::oteldemo::OrderItem* Arena::CreateMaybeMessage<::oteldemo::OrderItem>(Arena*); +template<> ::oteldemo::OrderResult* Arena::CreateMaybeMessage<::oteldemo::OrderResult>(Arena*); +template<> ::oteldemo::PlaceOrderRequest* Arena::CreateMaybeMessage<::oteldemo::PlaceOrderRequest>(Arena*); +template<> ::oteldemo::PlaceOrderResponse* Arena::CreateMaybeMessage<::oteldemo::PlaceOrderResponse>(Arena*); +template<> ::oteldemo::Product* Arena::CreateMaybeMessage<::oteldemo::Product>(Arena*); +template<> ::oteldemo::SearchProductsRequest* Arena::CreateMaybeMessage<::oteldemo::SearchProductsRequest>(Arena*); +template<> ::oteldemo::SearchProductsResponse* Arena::CreateMaybeMessage<::oteldemo::SearchProductsResponse>(Arena*); +template<> ::oteldemo::SendOrderConfirmationRequest* Arena::CreateMaybeMessage<::oteldemo::SendOrderConfirmationRequest>(Arena*); +template<> ::oteldemo::ShipOrderRequest* Arena::CreateMaybeMessage<::oteldemo::ShipOrderRequest>(Arena*); +template<> ::oteldemo::ShipOrderResponse* Arena::CreateMaybeMessage<::oteldemo::ShipOrderResponse>(Arena*); +template<> ::oteldemo::UpdateFlagRequest* Arena::CreateMaybeMessage<::oteldemo::UpdateFlagRequest>(Arena*); +template<> ::oteldemo::UpdateFlagResponse* Arena::CreateMaybeMessage<::oteldemo::UpdateFlagResponse>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace oteldemo { + +// =================================================================== + +class CartItem final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.CartItem) */ { + public: + inline CartItem() : CartItem(nullptr) {} + ~CartItem() override; + explicit PROTOBUF_CONSTEXPR CartItem(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + CartItem(const CartItem& from); + CartItem(CartItem&& from) noexcept + : CartItem() { + *this = ::std::move(from); + } + + inline CartItem& operator=(const CartItem& from) { + CopyFrom(from); + return *this; + } + inline CartItem& operator=(CartItem&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const CartItem& default_instance() { + return *internal_default_instance(); + } + static inline const CartItem* internal_default_instance() { + return reinterpret_cast( + &_CartItem_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(CartItem& a, CartItem& b) { + a.Swap(&b); + } + inline void Swap(CartItem* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(CartItem* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + CartItem* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const CartItem& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const CartItem& from) { + CartItem::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(CartItem* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.CartItem"; + } + protected: + explicit CartItem(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kProductIdFieldNumber = 1, + kQuantityFieldNumber = 2, + }; + // string product_id = 1; + void clear_product_id(); + const std::string& product_id() const; + template + void set_product_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_product_id(); + PROTOBUF_NODISCARD std::string* release_product_id(); + void set_allocated_product_id(std::string* product_id); + private: + const std::string& _internal_product_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_product_id(const std::string& value); + std::string* _internal_mutable_product_id(); + public: + + // int32 quantity = 2; + void clear_quantity(); + int32_t quantity() const; + void set_quantity(int32_t value); + private: + int32_t _internal_quantity() const; + void _internal_set_quantity(int32_t value); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.CartItem) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr product_id_; + int32_t quantity_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class AddItemRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.AddItemRequest) */ { + public: + inline AddItemRequest() : AddItemRequest(nullptr) {} + ~AddItemRequest() override; + explicit PROTOBUF_CONSTEXPR AddItemRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + AddItemRequest(const AddItemRequest& from); + AddItemRequest(AddItemRequest&& from) noexcept + : AddItemRequest() { + *this = ::std::move(from); + } + + inline AddItemRequest& operator=(const AddItemRequest& from) { + CopyFrom(from); + return *this; + } + inline AddItemRequest& operator=(AddItemRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const AddItemRequest& default_instance() { + return *internal_default_instance(); + } + static inline const AddItemRequest* internal_default_instance() { + return reinterpret_cast( + &_AddItemRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(AddItemRequest& a, AddItemRequest& b) { + a.Swap(&b); + } + inline void Swap(AddItemRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(AddItemRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + AddItemRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const AddItemRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const AddItemRequest& from) { + AddItemRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(AddItemRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.AddItemRequest"; + } + protected: + explicit AddItemRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kUserIdFieldNumber = 1, + kItemFieldNumber = 2, + }; + // string user_id = 1; + void clear_user_id(); + const std::string& user_id() const; + template + void set_user_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_user_id(); + PROTOBUF_NODISCARD std::string* release_user_id(); + void set_allocated_user_id(std::string* user_id); + private: + const std::string& _internal_user_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_user_id(const std::string& value); + std::string* _internal_mutable_user_id(); + public: + + // .oteldemo.CartItem item = 2; + bool has_item() const; + private: + bool _internal_has_item() const; + public: + void clear_item(); + const ::oteldemo::CartItem& item() const; + PROTOBUF_NODISCARD ::oteldemo::CartItem* release_item(); + ::oteldemo::CartItem* mutable_item(); + void set_allocated_item(::oteldemo::CartItem* item); + private: + const ::oteldemo::CartItem& _internal_item() const; + ::oteldemo::CartItem* _internal_mutable_item(); + public: + void unsafe_arena_set_allocated_item( + ::oteldemo::CartItem* item); + ::oteldemo::CartItem* unsafe_arena_release_item(); + + // @@protoc_insertion_point(class_scope:oteldemo.AddItemRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr user_id_; + ::oteldemo::CartItem* item_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class EmptyCartRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.EmptyCartRequest) */ { + public: + inline EmptyCartRequest() : EmptyCartRequest(nullptr) {} + ~EmptyCartRequest() override; + explicit PROTOBUF_CONSTEXPR EmptyCartRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + EmptyCartRequest(const EmptyCartRequest& from); + EmptyCartRequest(EmptyCartRequest&& from) noexcept + : EmptyCartRequest() { + *this = ::std::move(from); + } + + inline EmptyCartRequest& operator=(const EmptyCartRequest& from) { + CopyFrom(from); + return *this; + } + inline EmptyCartRequest& operator=(EmptyCartRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const EmptyCartRequest& default_instance() { + return *internal_default_instance(); + } + static inline const EmptyCartRequest* internal_default_instance() { + return reinterpret_cast( + &_EmptyCartRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 2; + + friend void swap(EmptyCartRequest& a, EmptyCartRequest& b) { + a.Swap(&b); + } + inline void Swap(EmptyCartRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(EmptyCartRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + EmptyCartRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const EmptyCartRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const EmptyCartRequest& from) { + EmptyCartRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(EmptyCartRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.EmptyCartRequest"; + } + protected: + explicit EmptyCartRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kUserIdFieldNumber = 1, + }; + // string user_id = 1; + void clear_user_id(); + const std::string& user_id() const; + template + void set_user_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_user_id(); + PROTOBUF_NODISCARD std::string* release_user_id(); + void set_allocated_user_id(std::string* user_id); + private: + const std::string& _internal_user_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_user_id(const std::string& value); + std::string* _internal_mutable_user_id(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.EmptyCartRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr user_id_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class GetCartRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.GetCartRequest) */ { + public: + inline GetCartRequest() : GetCartRequest(nullptr) {} + ~GetCartRequest() override; + explicit PROTOBUF_CONSTEXPR GetCartRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + GetCartRequest(const GetCartRequest& from); + GetCartRequest(GetCartRequest&& from) noexcept + : GetCartRequest() { + *this = ::std::move(from); + } + + inline GetCartRequest& operator=(const GetCartRequest& from) { + CopyFrom(from); + return *this; + } + inline GetCartRequest& operator=(GetCartRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const GetCartRequest& default_instance() { + return *internal_default_instance(); + } + static inline const GetCartRequest* internal_default_instance() { + return reinterpret_cast( + &_GetCartRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 3; + + friend void swap(GetCartRequest& a, GetCartRequest& b) { + a.Swap(&b); + } + inline void Swap(GetCartRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(GetCartRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + GetCartRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const GetCartRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const GetCartRequest& from) { + GetCartRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetCartRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.GetCartRequest"; + } + protected: + explicit GetCartRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kUserIdFieldNumber = 1, + }; + // string user_id = 1; + void clear_user_id(); + const std::string& user_id() const; + template + void set_user_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_user_id(); + PROTOBUF_NODISCARD std::string* release_user_id(); + void set_allocated_user_id(std::string* user_id); + private: + const std::string& _internal_user_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_user_id(const std::string& value); + std::string* _internal_mutable_user_id(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.GetCartRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr user_id_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class Cart final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.Cart) */ { + public: + inline Cart() : Cart(nullptr) {} + ~Cart() override; + explicit PROTOBUF_CONSTEXPR Cart(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + Cart(const Cart& from); + Cart(Cart&& from) noexcept + : Cart() { + *this = ::std::move(from); + } + + inline Cart& operator=(const Cart& from) { + CopyFrom(from); + return *this; + } + inline Cart& operator=(Cart&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const Cart& default_instance() { + return *internal_default_instance(); + } + static inline const Cart* internal_default_instance() { + return reinterpret_cast( + &_Cart_default_instance_); + } + static constexpr int kIndexInFileMessages = + 4; + + friend void swap(Cart& a, Cart& b) { + a.Swap(&b); + } + inline void Swap(Cart* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(Cart* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + Cart* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const Cart& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const Cart& from) { + Cart::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Cart* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.Cart"; + } + protected: + explicit Cart(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kItemsFieldNumber = 2, + kUserIdFieldNumber = 1, + }; + // repeated .oteldemo.CartItem items = 2; + int items_size() const; + private: + int _internal_items_size() const; + public: + void clear_items(); + ::oteldemo::CartItem* mutable_items(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >* + mutable_items(); + private: + const ::oteldemo::CartItem& _internal_items(int index) const; + ::oteldemo::CartItem* _internal_add_items(); + public: + const ::oteldemo::CartItem& items(int index) const; + ::oteldemo::CartItem* add_items(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >& + items() const; + + // string user_id = 1; + void clear_user_id(); + const std::string& user_id() const; + template + void set_user_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_user_id(); + PROTOBUF_NODISCARD std::string* release_user_id(); + void set_allocated_user_id(std::string* user_id); + private: + const std::string& _internal_user_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_user_id(const std::string& value); + std::string* _internal_mutable_user_id(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.Cart) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem > items_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr user_id_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class Empty final : + public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:oteldemo.Empty) */ { + public: + inline Empty() : Empty(nullptr) {} + explicit PROTOBUF_CONSTEXPR Empty(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + Empty(const Empty& from); + Empty(Empty&& from) noexcept + : Empty() { + *this = ::std::move(from); + } + + inline Empty& operator=(const Empty& from) { + CopyFrom(from); + return *this; + } + inline Empty& operator=(Empty&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const Empty& default_instance() { + return *internal_default_instance(); + } + static inline const Empty* internal_default_instance() { + return reinterpret_cast( + &_Empty_default_instance_); + } + static constexpr int kIndexInFileMessages = + 5; + + friend void swap(Empty& a, Empty& b) { + a.Swap(&b); + } + inline void Swap(Empty* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(Empty* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + Empty* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom; + inline void CopyFrom(const Empty& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(*this, from); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom; + void MergeFrom(const Empty& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(*this, from); + } + public: + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.Empty"; + } + protected: + explicit Empty(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:oteldemo.Empty) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class ListRecommendationsRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.ListRecommendationsRequest) */ { + public: + inline ListRecommendationsRequest() : ListRecommendationsRequest(nullptr) {} + ~ListRecommendationsRequest() override; + explicit PROTOBUF_CONSTEXPR ListRecommendationsRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + ListRecommendationsRequest(const ListRecommendationsRequest& from); + ListRecommendationsRequest(ListRecommendationsRequest&& from) noexcept + : ListRecommendationsRequest() { + *this = ::std::move(from); + } + + inline ListRecommendationsRequest& operator=(const ListRecommendationsRequest& from) { + CopyFrom(from); + return *this; + } + inline ListRecommendationsRequest& operator=(ListRecommendationsRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ListRecommendationsRequest& default_instance() { + return *internal_default_instance(); + } + static inline const ListRecommendationsRequest* internal_default_instance() { + return reinterpret_cast( + &_ListRecommendationsRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 6; + + friend void swap(ListRecommendationsRequest& a, ListRecommendationsRequest& b) { + a.Swap(&b); + } + inline void Swap(ListRecommendationsRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ListRecommendationsRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ListRecommendationsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const ListRecommendationsRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const ListRecommendationsRequest& from) { + ListRecommendationsRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ListRecommendationsRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.ListRecommendationsRequest"; + } + protected: + explicit ListRecommendationsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kProductIdsFieldNumber = 2, + kUserIdFieldNumber = 1, + }; + // repeated string product_ids = 2; + int product_ids_size() const; + private: + int _internal_product_ids_size() const; + public: + void clear_product_ids(); + const std::string& product_ids(int index) const; + std::string* mutable_product_ids(int index); + void set_product_ids(int index, const std::string& value); + void set_product_ids(int index, std::string&& value); + void set_product_ids(int index, const char* value); + void set_product_ids(int index, const char* value, size_t size); + std::string* add_product_ids(); + void add_product_ids(const std::string& value); + void add_product_ids(std::string&& value); + void add_product_ids(const char* value); + void add_product_ids(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& product_ids() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_product_ids(); + private: + const std::string& _internal_product_ids(int index) const; + std::string* _internal_add_product_ids(); + public: + + // string user_id = 1; + void clear_user_id(); + const std::string& user_id() const; + template + void set_user_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_user_id(); + PROTOBUF_NODISCARD std::string* release_user_id(); + void set_allocated_user_id(std::string* user_id); + private: + const std::string& _internal_user_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_user_id(const std::string& value); + std::string* _internal_mutable_user_id(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.ListRecommendationsRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField product_ids_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr user_id_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class ListRecommendationsResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.ListRecommendationsResponse) */ { + public: + inline ListRecommendationsResponse() : ListRecommendationsResponse(nullptr) {} + ~ListRecommendationsResponse() override; + explicit PROTOBUF_CONSTEXPR ListRecommendationsResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + ListRecommendationsResponse(const ListRecommendationsResponse& from); + ListRecommendationsResponse(ListRecommendationsResponse&& from) noexcept + : ListRecommendationsResponse() { + *this = ::std::move(from); + } + + inline ListRecommendationsResponse& operator=(const ListRecommendationsResponse& from) { + CopyFrom(from); + return *this; + } + inline ListRecommendationsResponse& operator=(ListRecommendationsResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ListRecommendationsResponse& default_instance() { + return *internal_default_instance(); + } + static inline const ListRecommendationsResponse* internal_default_instance() { + return reinterpret_cast( + &_ListRecommendationsResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 7; + + friend void swap(ListRecommendationsResponse& a, ListRecommendationsResponse& b) { + a.Swap(&b); + } + inline void Swap(ListRecommendationsResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ListRecommendationsResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ListRecommendationsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const ListRecommendationsResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const ListRecommendationsResponse& from) { + ListRecommendationsResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ListRecommendationsResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.ListRecommendationsResponse"; + } + protected: + explicit ListRecommendationsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kProductIdsFieldNumber = 1, + }; + // repeated string product_ids = 1; + int product_ids_size() const; + private: + int _internal_product_ids_size() const; + public: + void clear_product_ids(); + const std::string& product_ids(int index) const; + std::string* mutable_product_ids(int index); + void set_product_ids(int index, const std::string& value); + void set_product_ids(int index, std::string&& value); + void set_product_ids(int index, const char* value); + void set_product_ids(int index, const char* value, size_t size); + std::string* add_product_ids(); + void add_product_ids(const std::string& value); + void add_product_ids(std::string&& value); + void add_product_ids(const char* value); + void add_product_ids(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& product_ids() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_product_ids(); + private: + const std::string& _internal_product_ids(int index) const; + std::string* _internal_add_product_ids(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.ListRecommendationsResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField product_ids_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class Product final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.Product) */ { + public: + inline Product() : Product(nullptr) {} + ~Product() override; + explicit PROTOBUF_CONSTEXPR Product(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + Product(const Product& from); + Product(Product&& from) noexcept + : Product() { + *this = ::std::move(from); + } + + inline Product& operator=(const Product& from) { + CopyFrom(from); + return *this; + } + inline Product& operator=(Product&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const Product& default_instance() { + return *internal_default_instance(); + } + static inline const Product* internal_default_instance() { + return reinterpret_cast( + &_Product_default_instance_); + } + static constexpr int kIndexInFileMessages = + 8; + + friend void swap(Product& a, Product& b) { + a.Swap(&b); + } + inline void Swap(Product* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(Product* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + Product* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const Product& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const Product& from) { + Product::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Product* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.Product"; + } + protected: + explicit Product(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kCategoriesFieldNumber = 6, + kIdFieldNumber = 1, + kNameFieldNumber = 2, + kDescriptionFieldNumber = 3, + kPictureFieldNumber = 4, + kPriceUsdFieldNumber = 5, + }; + // repeated string categories = 6; + int categories_size() const; + private: + int _internal_categories_size() const; + public: + void clear_categories(); + const std::string& categories(int index) const; + std::string* mutable_categories(int index); + void set_categories(int index, const std::string& value); + void set_categories(int index, std::string&& value); + void set_categories(int index, const char* value); + void set_categories(int index, const char* value, size_t size); + std::string* add_categories(); + void add_categories(const std::string& value); + void add_categories(std::string&& value); + void add_categories(const char* value); + void add_categories(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& categories() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_categories(); + private: + const std::string& _internal_categories(int index) const; + std::string* _internal_add_categories(); + public: + + // string id = 1; + void clear_id(); + const std::string& id() const; + template + void set_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_id(); + PROTOBUF_NODISCARD std::string* release_id(); + void set_allocated_id(std::string* id); + private: + const std::string& _internal_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_id(const std::string& value); + std::string* _internal_mutable_id(); + public: + + // string name = 2; + void clear_name(); + const std::string& name() const; + template + void set_name(ArgT0&& arg0, ArgT... args); + std::string* mutable_name(); + PROTOBUF_NODISCARD std::string* release_name(); + void set_allocated_name(std::string* name); + private: + const std::string& _internal_name() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value); + std::string* _internal_mutable_name(); + public: + + // string description = 3; + void clear_description(); + const std::string& description() const; + template + void set_description(ArgT0&& arg0, ArgT... args); + std::string* mutable_description(); + PROTOBUF_NODISCARD std::string* release_description(); + void set_allocated_description(std::string* description); + private: + const std::string& _internal_description() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(const std::string& value); + std::string* _internal_mutable_description(); + public: + + // string picture = 4; + void clear_picture(); + const std::string& picture() const; + template + void set_picture(ArgT0&& arg0, ArgT... args); + std::string* mutable_picture(); + PROTOBUF_NODISCARD std::string* release_picture(); + void set_allocated_picture(std::string* picture); + private: + const std::string& _internal_picture() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_picture(const std::string& value); + std::string* _internal_mutable_picture(); + public: + + // .oteldemo.Money price_usd = 5; + bool has_price_usd() const; + private: + bool _internal_has_price_usd() const; + public: + void clear_price_usd(); + const ::oteldemo::Money& price_usd() const; + PROTOBUF_NODISCARD ::oteldemo::Money* release_price_usd(); + ::oteldemo::Money* mutable_price_usd(); + void set_allocated_price_usd(::oteldemo::Money* price_usd); + private: + const ::oteldemo::Money& _internal_price_usd() const; + ::oteldemo::Money* _internal_mutable_price_usd(); + public: + void unsafe_arena_set_allocated_price_usd( + ::oteldemo::Money* price_usd); + ::oteldemo::Money* unsafe_arena_release_price_usd(); + + // @@protoc_insertion_point(class_scope:oteldemo.Product) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField categories_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr id_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr description_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr picture_; + ::oteldemo::Money* price_usd_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class ListProductsResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.ListProductsResponse) */ { + public: + inline ListProductsResponse() : ListProductsResponse(nullptr) {} + ~ListProductsResponse() override; + explicit PROTOBUF_CONSTEXPR ListProductsResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + ListProductsResponse(const ListProductsResponse& from); + ListProductsResponse(ListProductsResponse&& from) noexcept + : ListProductsResponse() { + *this = ::std::move(from); + } + + inline ListProductsResponse& operator=(const ListProductsResponse& from) { + CopyFrom(from); + return *this; + } + inline ListProductsResponse& operator=(ListProductsResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ListProductsResponse& default_instance() { + return *internal_default_instance(); + } + static inline const ListProductsResponse* internal_default_instance() { + return reinterpret_cast( + &_ListProductsResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 9; + + friend void swap(ListProductsResponse& a, ListProductsResponse& b) { + a.Swap(&b); + } + inline void Swap(ListProductsResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ListProductsResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ListProductsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const ListProductsResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const ListProductsResponse& from) { + ListProductsResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ListProductsResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.ListProductsResponse"; + } + protected: + explicit ListProductsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kProductsFieldNumber = 1, + }; + // repeated .oteldemo.Product products = 1; + int products_size() const; + private: + int _internal_products_size() const; + public: + void clear_products(); + ::oteldemo::Product* mutable_products(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Product >* + mutable_products(); + private: + const ::oteldemo::Product& _internal_products(int index) const; + ::oteldemo::Product* _internal_add_products(); + public: + const ::oteldemo::Product& products(int index) const; + ::oteldemo::Product* add_products(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Product >& + products() const; + + // @@protoc_insertion_point(class_scope:oteldemo.ListProductsResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Product > products_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class GetProductRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.GetProductRequest) */ { + public: + inline GetProductRequest() : GetProductRequest(nullptr) {} + ~GetProductRequest() override; + explicit PROTOBUF_CONSTEXPR GetProductRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + GetProductRequest(const GetProductRequest& from); + GetProductRequest(GetProductRequest&& from) noexcept + : GetProductRequest() { + *this = ::std::move(from); + } + + inline GetProductRequest& operator=(const GetProductRequest& from) { + CopyFrom(from); + return *this; + } + inline GetProductRequest& operator=(GetProductRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const GetProductRequest& default_instance() { + return *internal_default_instance(); + } + static inline const GetProductRequest* internal_default_instance() { + return reinterpret_cast( + &_GetProductRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 10; + + friend void swap(GetProductRequest& a, GetProductRequest& b) { + a.Swap(&b); + } + inline void Swap(GetProductRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(GetProductRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + GetProductRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const GetProductRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const GetProductRequest& from) { + GetProductRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetProductRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.GetProductRequest"; + } + protected: + explicit GetProductRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kIdFieldNumber = 1, + }; + // string id = 1; + void clear_id(); + const std::string& id() const; + template + void set_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_id(); + PROTOBUF_NODISCARD std::string* release_id(); + void set_allocated_id(std::string* id); + private: + const std::string& _internal_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_id(const std::string& value); + std::string* _internal_mutable_id(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.GetProductRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr id_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class SearchProductsRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.SearchProductsRequest) */ { + public: + inline SearchProductsRequest() : SearchProductsRequest(nullptr) {} + ~SearchProductsRequest() override; + explicit PROTOBUF_CONSTEXPR SearchProductsRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + SearchProductsRequest(const SearchProductsRequest& from); + SearchProductsRequest(SearchProductsRequest&& from) noexcept + : SearchProductsRequest() { + *this = ::std::move(from); + } + + inline SearchProductsRequest& operator=(const SearchProductsRequest& from) { + CopyFrom(from); + return *this; + } + inline SearchProductsRequest& operator=(SearchProductsRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const SearchProductsRequest& default_instance() { + return *internal_default_instance(); + } + static inline const SearchProductsRequest* internal_default_instance() { + return reinterpret_cast( + &_SearchProductsRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 11; + + friend void swap(SearchProductsRequest& a, SearchProductsRequest& b) { + a.Swap(&b); + } + inline void Swap(SearchProductsRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(SearchProductsRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + SearchProductsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const SearchProductsRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const SearchProductsRequest& from) { + SearchProductsRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(SearchProductsRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.SearchProductsRequest"; + } + protected: + explicit SearchProductsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kQueryFieldNumber = 1, + }; + // string query = 1; + void clear_query(); + const std::string& query() const; + template + void set_query(ArgT0&& arg0, ArgT... args); + std::string* mutable_query(); + PROTOBUF_NODISCARD std::string* release_query(); + void set_allocated_query(std::string* query); + private: + const std::string& _internal_query() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_query(const std::string& value); + std::string* _internal_mutable_query(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.SearchProductsRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr query_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class SearchProductsResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.SearchProductsResponse) */ { + public: + inline SearchProductsResponse() : SearchProductsResponse(nullptr) {} + ~SearchProductsResponse() override; + explicit PROTOBUF_CONSTEXPR SearchProductsResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + SearchProductsResponse(const SearchProductsResponse& from); + SearchProductsResponse(SearchProductsResponse&& from) noexcept + : SearchProductsResponse() { + *this = ::std::move(from); + } + + inline SearchProductsResponse& operator=(const SearchProductsResponse& from) { + CopyFrom(from); + return *this; + } + inline SearchProductsResponse& operator=(SearchProductsResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const SearchProductsResponse& default_instance() { + return *internal_default_instance(); + } + static inline const SearchProductsResponse* internal_default_instance() { + return reinterpret_cast( + &_SearchProductsResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 12; + + friend void swap(SearchProductsResponse& a, SearchProductsResponse& b) { + a.Swap(&b); + } + inline void Swap(SearchProductsResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(SearchProductsResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + SearchProductsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const SearchProductsResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const SearchProductsResponse& from) { + SearchProductsResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(SearchProductsResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.SearchProductsResponse"; + } + protected: + explicit SearchProductsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kResultsFieldNumber = 1, + }; + // repeated .oteldemo.Product results = 1; + int results_size() const; + private: + int _internal_results_size() const; + public: + void clear_results(); + ::oteldemo::Product* mutable_results(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Product >* + mutable_results(); + private: + const ::oteldemo::Product& _internal_results(int index) const; + ::oteldemo::Product* _internal_add_results(); + public: + const ::oteldemo::Product& results(int index) const; + ::oteldemo::Product* add_results(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Product >& + results() const; + + // @@protoc_insertion_point(class_scope:oteldemo.SearchProductsResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Product > results_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class GetQuoteRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.GetQuoteRequest) */ { + public: + inline GetQuoteRequest() : GetQuoteRequest(nullptr) {} + ~GetQuoteRequest() override; + explicit PROTOBUF_CONSTEXPR GetQuoteRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + GetQuoteRequest(const GetQuoteRequest& from); + GetQuoteRequest(GetQuoteRequest&& from) noexcept + : GetQuoteRequest() { + *this = ::std::move(from); + } + + inline GetQuoteRequest& operator=(const GetQuoteRequest& from) { + CopyFrom(from); + return *this; + } + inline GetQuoteRequest& operator=(GetQuoteRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const GetQuoteRequest& default_instance() { + return *internal_default_instance(); + } + static inline const GetQuoteRequest* internal_default_instance() { + return reinterpret_cast( + &_GetQuoteRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 13; + + friend void swap(GetQuoteRequest& a, GetQuoteRequest& b) { + a.Swap(&b); + } + inline void Swap(GetQuoteRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(GetQuoteRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + GetQuoteRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const GetQuoteRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const GetQuoteRequest& from) { + GetQuoteRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetQuoteRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.GetQuoteRequest"; + } + protected: + explicit GetQuoteRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kItemsFieldNumber = 2, + kAddressFieldNumber = 1, + }; + // repeated .oteldemo.CartItem items = 2; + int items_size() const; + private: + int _internal_items_size() const; + public: + void clear_items(); + ::oteldemo::CartItem* mutable_items(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >* + mutable_items(); + private: + const ::oteldemo::CartItem& _internal_items(int index) const; + ::oteldemo::CartItem* _internal_add_items(); + public: + const ::oteldemo::CartItem& items(int index) const; + ::oteldemo::CartItem* add_items(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >& + items() const; + + // .oteldemo.Address address = 1; + bool has_address() const; + private: + bool _internal_has_address() const; + public: + void clear_address(); + const ::oteldemo::Address& address() const; + PROTOBUF_NODISCARD ::oteldemo::Address* release_address(); + ::oteldemo::Address* mutable_address(); + void set_allocated_address(::oteldemo::Address* address); + private: + const ::oteldemo::Address& _internal_address() const; + ::oteldemo::Address* _internal_mutable_address(); + public: + void unsafe_arena_set_allocated_address( + ::oteldemo::Address* address); + ::oteldemo::Address* unsafe_arena_release_address(); + + // @@protoc_insertion_point(class_scope:oteldemo.GetQuoteRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem > items_; + ::oteldemo::Address* address_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class GetQuoteResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.GetQuoteResponse) */ { + public: + inline GetQuoteResponse() : GetQuoteResponse(nullptr) {} + ~GetQuoteResponse() override; + explicit PROTOBUF_CONSTEXPR GetQuoteResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + GetQuoteResponse(const GetQuoteResponse& from); + GetQuoteResponse(GetQuoteResponse&& from) noexcept + : GetQuoteResponse() { + *this = ::std::move(from); + } + + inline GetQuoteResponse& operator=(const GetQuoteResponse& from) { + CopyFrom(from); + return *this; + } + inline GetQuoteResponse& operator=(GetQuoteResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const GetQuoteResponse& default_instance() { + return *internal_default_instance(); + } + static inline const GetQuoteResponse* internal_default_instance() { + return reinterpret_cast( + &_GetQuoteResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 14; + + friend void swap(GetQuoteResponse& a, GetQuoteResponse& b) { + a.Swap(&b); + } + inline void Swap(GetQuoteResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(GetQuoteResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + GetQuoteResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const GetQuoteResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const GetQuoteResponse& from) { + GetQuoteResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetQuoteResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.GetQuoteResponse"; + } + protected: + explicit GetQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kCostUsdFieldNumber = 1, + }; + // .oteldemo.Money cost_usd = 1; + bool has_cost_usd() const; + private: + bool _internal_has_cost_usd() const; + public: + void clear_cost_usd(); + const ::oteldemo::Money& cost_usd() const; + PROTOBUF_NODISCARD ::oteldemo::Money* release_cost_usd(); + ::oteldemo::Money* mutable_cost_usd(); + void set_allocated_cost_usd(::oteldemo::Money* cost_usd); + private: + const ::oteldemo::Money& _internal_cost_usd() const; + ::oteldemo::Money* _internal_mutable_cost_usd(); + public: + void unsafe_arena_set_allocated_cost_usd( + ::oteldemo::Money* cost_usd); + ::oteldemo::Money* unsafe_arena_release_cost_usd(); + + // @@protoc_insertion_point(class_scope:oteldemo.GetQuoteResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::oteldemo::Money* cost_usd_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class ShipOrderRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.ShipOrderRequest) */ { + public: + inline ShipOrderRequest() : ShipOrderRequest(nullptr) {} + ~ShipOrderRequest() override; + explicit PROTOBUF_CONSTEXPR ShipOrderRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + ShipOrderRequest(const ShipOrderRequest& from); + ShipOrderRequest(ShipOrderRequest&& from) noexcept + : ShipOrderRequest() { + *this = ::std::move(from); + } + + inline ShipOrderRequest& operator=(const ShipOrderRequest& from) { + CopyFrom(from); + return *this; + } + inline ShipOrderRequest& operator=(ShipOrderRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ShipOrderRequest& default_instance() { + return *internal_default_instance(); + } + static inline const ShipOrderRequest* internal_default_instance() { + return reinterpret_cast( + &_ShipOrderRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 15; + + friend void swap(ShipOrderRequest& a, ShipOrderRequest& b) { + a.Swap(&b); + } + inline void Swap(ShipOrderRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ShipOrderRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ShipOrderRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const ShipOrderRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const ShipOrderRequest& from) { + ShipOrderRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ShipOrderRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.ShipOrderRequest"; + } + protected: + explicit ShipOrderRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kItemsFieldNumber = 2, + kAddressFieldNumber = 1, + }; + // repeated .oteldemo.CartItem items = 2; + int items_size() const; + private: + int _internal_items_size() const; + public: + void clear_items(); + ::oteldemo::CartItem* mutable_items(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >* + mutable_items(); + private: + const ::oteldemo::CartItem& _internal_items(int index) const; + ::oteldemo::CartItem* _internal_add_items(); + public: + const ::oteldemo::CartItem& items(int index) const; + ::oteldemo::CartItem* add_items(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >& + items() const; + + // .oteldemo.Address address = 1; + bool has_address() const; + private: + bool _internal_has_address() const; + public: + void clear_address(); + const ::oteldemo::Address& address() const; + PROTOBUF_NODISCARD ::oteldemo::Address* release_address(); + ::oteldemo::Address* mutable_address(); + void set_allocated_address(::oteldemo::Address* address); + private: + const ::oteldemo::Address& _internal_address() const; + ::oteldemo::Address* _internal_mutable_address(); + public: + void unsafe_arena_set_allocated_address( + ::oteldemo::Address* address); + ::oteldemo::Address* unsafe_arena_release_address(); + + // @@protoc_insertion_point(class_scope:oteldemo.ShipOrderRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem > items_; + ::oteldemo::Address* address_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class ShipOrderResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.ShipOrderResponse) */ { + public: + inline ShipOrderResponse() : ShipOrderResponse(nullptr) {} + ~ShipOrderResponse() override; + explicit PROTOBUF_CONSTEXPR ShipOrderResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + ShipOrderResponse(const ShipOrderResponse& from); + ShipOrderResponse(ShipOrderResponse&& from) noexcept + : ShipOrderResponse() { + *this = ::std::move(from); + } + + inline ShipOrderResponse& operator=(const ShipOrderResponse& from) { + CopyFrom(from); + return *this; + } + inline ShipOrderResponse& operator=(ShipOrderResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ShipOrderResponse& default_instance() { + return *internal_default_instance(); + } + static inline const ShipOrderResponse* internal_default_instance() { + return reinterpret_cast( + &_ShipOrderResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 16; + + friend void swap(ShipOrderResponse& a, ShipOrderResponse& b) { + a.Swap(&b); + } + inline void Swap(ShipOrderResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ShipOrderResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ShipOrderResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const ShipOrderResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const ShipOrderResponse& from) { + ShipOrderResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ShipOrderResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.ShipOrderResponse"; + } + protected: + explicit ShipOrderResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kTrackingIdFieldNumber = 1, + }; + // string tracking_id = 1; + void clear_tracking_id(); + const std::string& tracking_id() const; + template + void set_tracking_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_tracking_id(); + PROTOBUF_NODISCARD std::string* release_tracking_id(); + void set_allocated_tracking_id(std::string* tracking_id); + private: + const std::string& _internal_tracking_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_tracking_id(const std::string& value); + std::string* _internal_mutable_tracking_id(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.ShipOrderResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr tracking_id_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class Address final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.Address) */ { + public: + inline Address() : Address(nullptr) {} + ~Address() override; + explicit PROTOBUF_CONSTEXPR Address(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + Address(const Address& from); + Address(Address&& from) noexcept + : Address() { + *this = ::std::move(from); + } + + inline Address& operator=(const Address& from) { + CopyFrom(from); + return *this; + } + inline Address& operator=(Address&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const Address& default_instance() { + return *internal_default_instance(); + } + static inline const Address* internal_default_instance() { + return reinterpret_cast( + &_Address_default_instance_); + } + static constexpr int kIndexInFileMessages = + 17; + + friend void swap(Address& a, Address& b) { + a.Swap(&b); + } + inline void Swap(Address* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(Address* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + Address* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage

(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const Address& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const Address& from) { + Address::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Address* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.Address"; + } + protected: + explicit Address(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kStreetAddressFieldNumber = 1, + kCityFieldNumber = 2, + kStateFieldNumber = 3, + kCountryFieldNumber = 4, + kZipCodeFieldNumber = 5, + }; + // string street_address = 1; + void clear_street_address(); + const std::string& street_address() const; + template + void set_street_address(ArgT0&& arg0, ArgT... args); + std::string* mutable_street_address(); + PROTOBUF_NODISCARD std::string* release_street_address(); + void set_allocated_street_address(std::string* street_address); + private: + const std::string& _internal_street_address() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_street_address(const std::string& value); + std::string* _internal_mutable_street_address(); + public: + + // string city = 2; + void clear_city(); + const std::string& city() const; + template + void set_city(ArgT0&& arg0, ArgT... args); + std::string* mutable_city(); + PROTOBUF_NODISCARD std::string* release_city(); + void set_allocated_city(std::string* city); + private: + const std::string& _internal_city() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_city(const std::string& value); + std::string* _internal_mutable_city(); + public: + + // string state = 3; + void clear_state(); + const std::string& state() const; + template + void set_state(ArgT0&& arg0, ArgT... args); + std::string* mutable_state(); + PROTOBUF_NODISCARD std::string* release_state(); + void set_allocated_state(std::string* state); + private: + const std::string& _internal_state() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_state(const std::string& value); + std::string* _internal_mutable_state(); + public: + + // string country = 4; + void clear_country(); + const std::string& country() const; + template + void set_country(ArgT0&& arg0, ArgT... args); + std::string* mutable_country(); + PROTOBUF_NODISCARD std::string* release_country(); + void set_allocated_country(std::string* country); + private: + const std::string& _internal_country() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_country(const std::string& value); + std::string* _internal_mutable_country(); + public: + + // string zip_code = 5; + void clear_zip_code(); + const std::string& zip_code() const; + template + void set_zip_code(ArgT0&& arg0, ArgT... args); + std::string* mutable_zip_code(); + PROTOBUF_NODISCARD std::string* release_zip_code(); + void set_allocated_zip_code(std::string* zip_code); + private: + const std::string& _internal_zip_code() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_zip_code(const std::string& value); + std::string* _internal_mutable_zip_code(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.Address) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr street_address_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr city_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr state_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr country_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr zip_code_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class Money final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.Money) */ { + public: + inline Money() : Money(nullptr) {} + ~Money() override; + explicit PROTOBUF_CONSTEXPR Money(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + Money(const Money& from); + Money(Money&& from) noexcept + : Money() { + *this = ::std::move(from); + } + + inline Money& operator=(const Money& from) { + CopyFrom(from); + return *this; + } + inline Money& operator=(Money&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const Money& default_instance() { + return *internal_default_instance(); + } + static inline const Money* internal_default_instance() { + return reinterpret_cast( + &_Money_default_instance_); + } + static constexpr int kIndexInFileMessages = + 18; + + friend void swap(Money& a, Money& b) { + a.Swap(&b); + } + inline void Swap(Money* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(Money* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + Money* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const Money& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const Money& from) { + Money::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Money* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.Money"; + } + protected: + explicit Money(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kCurrencyCodeFieldNumber = 1, + kUnitsFieldNumber = 2, + kNanosFieldNumber = 3, + }; + // string currency_code = 1; + void clear_currency_code(); + const std::string& currency_code() const; + template + void set_currency_code(ArgT0&& arg0, ArgT... args); + std::string* mutable_currency_code(); + PROTOBUF_NODISCARD std::string* release_currency_code(); + void set_allocated_currency_code(std::string* currency_code); + private: + const std::string& _internal_currency_code() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_currency_code(const std::string& value); + std::string* _internal_mutable_currency_code(); + public: + + // int64 units = 2; + void clear_units(); + int64_t units() const; + void set_units(int64_t value); + private: + int64_t _internal_units() const; + void _internal_set_units(int64_t value); + public: + + // int32 nanos = 3; + void clear_nanos(); + int32_t nanos() const; + void set_nanos(int32_t value); + private: + int32_t _internal_nanos() const; + void _internal_set_nanos(int32_t value); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.Money) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr currency_code_; + int64_t units_; + int32_t nanos_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class GetSupportedCurrenciesResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.GetSupportedCurrenciesResponse) */ { + public: + inline GetSupportedCurrenciesResponse() : GetSupportedCurrenciesResponse(nullptr) {} + ~GetSupportedCurrenciesResponse() override; + explicit PROTOBUF_CONSTEXPR GetSupportedCurrenciesResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + GetSupportedCurrenciesResponse(const GetSupportedCurrenciesResponse& from); + GetSupportedCurrenciesResponse(GetSupportedCurrenciesResponse&& from) noexcept + : GetSupportedCurrenciesResponse() { + *this = ::std::move(from); + } + + inline GetSupportedCurrenciesResponse& operator=(const GetSupportedCurrenciesResponse& from) { + CopyFrom(from); + return *this; + } + inline GetSupportedCurrenciesResponse& operator=(GetSupportedCurrenciesResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const GetSupportedCurrenciesResponse& default_instance() { + return *internal_default_instance(); + } + static inline const GetSupportedCurrenciesResponse* internal_default_instance() { + return reinterpret_cast( + &_GetSupportedCurrenciesResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 19; + + friend void swap(GetSupportedCurrenciesResponse& a, GetSupportedCurrenciesResponse& b) { + a.Swap(&b); + } + inline void Swap(GetSupportedCurrenciesResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(GetSupportedCurrenciesResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + GetSupportedCurrenciesResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const GetSupportedCurrenciesResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const GetSupportedCurrenciesResponse& from) { + GetSupportedCurrenciesResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetSupportedCurrenciesResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.GetSupportedCurrenciesResponse"; + } + protected: + explicit GetSupportedCurrenciesResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kCurrencyCodesFieldNumber = 1, + }; + // repeated string currency_codes = 1; + int currency_codes_size() const; + private: + int _internal_currency_codes_size() const; + public: + void clear_currency_codes(); + const std::string& currency_codes(int index) const; + std::string* mutable_currency_codes(int index); + void set_currency_codes(int index, const std::string& value); + void set_currency_codes(int index, std::string&& value); + void set_currency_codes(int index, const char* value); + void set_currency_codes(int index, const char* value, size_t size); + std::string* add_currency_codes(); + void add_currency_codes(const std::string& value); + void add_currency_codes(std::string&& value); + void add_currency_codes(const char* value); + void add_currency_codes(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& currency_codes() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_currency_codes(); + private: + const std::string& _internal_currency_codes(int index) const; + std::string* _internal_add_currency_codes(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.GetSupportedCurrenciesResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField currency_codes_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class CurrencyConversionRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.CurrencyConversionRequest) */ { + public: + inline CurrencyConversionRequest() : CurrencyConversionRequest(nullptr) {} + ~CurrencyConversionRequest() override; + explicit PROTOBUF_CONSTEXPR CurrencyConversionRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + CurrencyConversionRequest(const CurrencyConversionRequest& from); + CurrencyConversionRequest(CurrencyConversionRequest&& from) noexcept + : CurrencyConversionRequest() { + *this = ::std::move(from); + } + + inline CurrencyConversionRequest& operator=(const CurrencyConversionRequest& from) { + CopyFrom(from); + return *this; + } + inline CurrencyConversionRequest& operator=(CurrencyConversionRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const CurrencyConversionRequest& default_instance() { + return *internal_default_instance(); + } + static inline const CurrencyConversionRequest* internal_default_instance() { + return reinterpret_cast( + &_CurrencyConversionRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 20; + + friend void swap(CurrencyConversionRequest& a, CurrencyConversionRequest& b) { + a.Swap(&b); + } + inline void Swap(CurrencyConversionRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(CurrencyConversionRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + CurrencyConversionRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const CurrencyConversionRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const CurrencyConversionRequest& from) { + CurrencyConversionRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(CurrencyConversionRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.CurrencyConversionRequest"; + } + protected: + explicit CurrencyConversionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kToCodeFieldNumber = 2, + kFromFieldNumber = 1, + }; + // string to_code = 2; + void clear_to_code(); + const std::string& to_code() const; + template + void set_to_code(ArgT0&& arg0, ArgT... args); + std::string* mutable_to_code(); + PROTOBUF_NODISCARD std::string* release_to_code(); + void set_allocated_to_code(std::string* to_code); + private: + const std::string& _internal_to_code() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_to_code(const std::string& value); + std::string* _internal_mutable_to_code(); + public: + + // .oteldemo.Money from = 1; + bool has_from() const; + private: + bool _internal_has_from() const; + public: + void clear_from(); + const ::oteldemo::Money& from() const; + PROTOBUF_NODISCARD ::oteldemo::Money* release_from(); + ::oteldemo::Money* mutable_from(); + void set_allocated_from(::oteldemo::Money* from); + private: + const ::oteldemo::Money& _internal_from() const; + ::oteldemo::Money* _internal_mutable_from(); + public: + void unsafe_arena_set_allocated_from( + ::oteldemo::Money* from); + ::oteldemo::Money* unsafe_arena_release_from(); + + // @@protoc_insertion_point(class_scope:oteldemo.CurrencyConversionRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr to_code_; + ::oteldemo::Money* from_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class CreditCardInfo final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.CreditCardInfo) */ { + public: + inline CreditCardInfo() : CreditCardInfo(nullptr) {} + ~CreditCardInfo() override; + explicit PROTOBUF_CONSTEXPR CreditCardInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + CreditCardInfo(const CreditCardInfo& from); + CreditCardInfo(CreditCardInfo&& from) noexcept + : CreditCardInfo() { + *this = ::std::move(from); + } + + inline CreditCardInfo& operator=(const CreditCardInfo& from) { + CopyFrom(from); + return *this; + } + inline CreditCardInfo& operator=(CreditCardInfo&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const CreditCardInfo& default_instance() { + return *internal_default_instance(); + } + static inline const CreditCardInfo* internal_default_instance() { + return reinterpret_cast( + &_CreditCardInfo_default_instance_); + } + static constexpr int kIndexInFileMessages = + 21; + + friend void swap(CreditCardInfo& a, CreditCardInfo& b) { + a.Swap(&b); + } + inline void Swap(CreditCardInfo* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(CreditCardInfo* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + CreditCardInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const CreditCardInfo& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const CreditCardInfo& from) { + CreditCardInfo::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(CreditCardInfo* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.CreditCardInfo"; + } + protected: + explicit CreditCardInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kCreditCardNumberFieldNumber = 1, + kCreditCardCvvFieldNumber = 2, + kCreditCardExpirationYearFieldNumber = 3, + kCreditCardExpirationMonthFieldNumber = 4, + }; + // string credit_card_number = 1; + void clear_credit_card_number(); + const std::string& credit_card_number() const; + template + void set_credit_card_number(ArgT0&& arg0, ArgT... args); + std::string* mutable_credit_card_number(); + PROTOBUF_NODISCARD std::string* release_credit_card_number(); + void set_allocated_credit_card_number(std::string* credit_card_number); + private: + const std::string& _internal_credit_card_number() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_credit_card_number(const std::string& value); + std::string* _internal_mutable_credit_card_number(); + public: + + // int32 credit_card_cvv = 2; + void clear_credit_card_cvv(); + int32_t credit_card_cvv() const; + void set_credit_card_cvv(int32_t value); + private: + int32_t _internal_credit_card_cvv() const; + void _internal_set_credit_card_cvv(int32_t value); + public: + + // int32 credit_card_expiration_year = 3; + void clear_credit_card_expiration_year(); + int32_t credit_card_expiration_year() const; + void set_credit_card_expiration_year(int32_t value); + private: + int32_t _internal_credit_card_expiration_year() const; + void _internal_set_credit_card_expiration_year(int32_t value); + public: + + // int32 credit_card_expiration_month = 4; + void clear_credit_card_expiration_month(); + int32_t credit_card_expiration_month() const; + void set_credit_card_expiration_month(int32_t value); + private: + int32_t _internal_credit_card_expiration_month() const; + void _internal_set_credit_card_expiration_month(int32_t value); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.CreditCardInfo) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr credit_card_number_; + int32_t credit_card_cvv_; + int32_t credit_card_expiration_year_; + int32_t credit_card_expiration_month_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class ChargeRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.ChargeRequest) */ { + public: + inline ChargeRequest() : ChargeRequest(nullptr) {} + ~ChargeRequest() override; + explicit PROTOBUF_CONSTEXPR ChargeRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + ChargeRequest(const ChargeRequest& from); + ChargeRequest(ChargeRequest&& from) noexcept + : ChargeRequest() { + *this = ::std::move(from); + } + + inline ChargeRequest& operator=(const ChargeRequest& from) { + CopyFrom(from); + return *this; + } + inline ChargeRequest& operator=(ChargeRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ChargeRequest& default_instance() { + return *internal_default_instance(); + } + static inline const ChargeRequest* internal_default_instance() { + return reinterpret_cast( + &_ChargeRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 22; + + friend void swap(ChargeRequest& a, ChargeRequest& b) { + a.Swap(&b); + } + inline void Swap(ChargeRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ChargeRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ChargeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const ChargeRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const ChargeRequest& from) { + ChargeRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ChargeRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.ChargeRequest"; + } + protected: + explicit ChargeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kAmountFieldNumber = 1, + kCreditCardFieldNumber = 2, + }; + // .oteldemo.Money amount = 1; + bool has_amount() const; + private: + bool _internal_has_amount() const; + public: + void clear_amount(); + const ::oteldemo::Money& amount() const; + PROTOBUF_NODISCARD ::oteldemo::Money* release_amount(); + ::oteldemo::Money* mutable_amount(); + void set_allocated_amount(::oteldemo::Money* amount); + private: + const ::oteldemo::Money& _internal_amount() const; + ::oteldemo::Money* _internal_mutable_amount(); + public: + void unsafe_arena_set_allocated_amount( + ::oteldemo::Money* amount); + ::oteldemo::Money* unsafe_arena_release_amount(); + + // .oteldemo.CreditCardInfo credit_card = 2; + bool has_credit_card() const; + private: + bool _internal_has_credit_card() const; + public: + void clear_credit_card(); + const ::oteldemo::CreditCardInfo& credit_card() const; + PROTOBUF_NODISCARD ::oteldemo::CreditCardInfo* release_credit_card(); + ::oteldemo::CreditCardInfo* mutable_credit_card(); + void set_allocated_credit_card(::oteldemo::CreditCardInfo* credit_card); + private: + const ::oteldemo::CreditCardInfo& _internal_credit_card() const; + ::oteldemo::CreditCardInfo* _internal_mutable_credit_card(); + public: + void unsafe_arena_set_allocated_credit_card( + ::oteldemo::CreditCardInfo* credit_card); + ::oteldemo::CreditCardInfo* unsafe_arena_release_credit_card(); + + // @@protoc_insertion_point(class_scope:oteldemo.ChargeRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::oteldemo::Money* amount_; + ::oteldemo::CreditCardInfo* credit_card_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class ChargeResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.ChargeResponse) */ { + public: + inline ChargeResponse() : ChargeResponse(nullptr) {} + ~ChargeResponse() override; + explicit PROTOBUF_CONSTEXPR ChargeResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + ChargeResponse(const ChargeResponse& from); + ChargeResponse(ChargeResponse&& from) noexcept + : ChargeResponse() { + *this = ::std::move(from); + } + + inline ChargeResponse& operator=(const ChargeResponse& from) { + CopyFrom(from); + return *this; + } + inline ChargeResponse& operator=(ChargeResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ChargeResponse& default_instance() { + return *internal_default_instance(); + } + static inline const ChargeResponse* internal_default_instance() { + return reinterpret_cast( + &_ChargeResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 23; + + friend void swap(ChargeResponse& a, ChargeResponse& b) { + a.Swap(&b); + } + inline void Swap(ChargeResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ChargeResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ChargeResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const ChargeResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const ChargeResponse& from) { + ChargeResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ChargeResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.ChargeResponse"; + } + protected: + explicit ChargeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kTransactionIdFieldNumber = 1, + }; + // string transaction_id = 1; + void clear_transaction_id(); + const std::string& transaction_id() const; + template + void set_transaction_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_transaction_id(); + PROTOBUF_NODISCARD std::string* release_transaction_id(); + void set_allocated_transaction_id(std::string* transaction_id); + private: + const std::string& _internal_transaction_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_transaction_id(const std::string& value); + std::string* _internal_mutable_transaction_id(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.ChargeResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr transaction_id_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class OrderItem final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.OrderItem) */ { + public: + inline OrderItem() : OrderItem(nullptr) {} + ~OrderItem() override; + explicit PROTOBUF_CONSTEXPR OrderItem(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + OrderItem(const OrderItem& from); + OrderItem(OrderItem&& from) noexcept + : OrderItem() { + *this = ::std::move(from); + } + + inline OrderItem& operator=(const OrderItem& from) { + CopyFrom(from); + return *this; + } + inline OrderItem& operator=(OrderItem&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const OrderItem& default_instance() { + return *internal_default_instance(); + } + static inline const OrderItem* internal_default_instance() { + return reinterpret_cast( + &_OrderItem_default_instance_); + } + static constexpr int kIndexInFileMessages = + 24; + + friend void swap(OrderItem& a, OrderItem& b) { + a.Swap(&b); + } + inline void Swap(OrderItem* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(OrderItem* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + OrderItem* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const OrderItem& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const OrderItem& from) { + OrderItem::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(OrderItem* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.OrderItem"; + } + protected: + explicit OrderItem(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kItemFieldNumber = 1, + kCostFieldNumber = 2, + }; + // .oteldemo.CartItem item = 1; + bool has_item() const; + private: + bool _internal_has_item() const; + public: + void clear_item(); + const ::oteldemo::CartItem& item() const; + PROTOBUF_NODISCARD ::oteldemo::CartItem* release_item(); + ::oteldemo::CartItem* mutable_item(); + void set_allocated_item(::oteldemo::CartItem* item); + private: + const ::oteldemo::CartItem& _internal_item() const; + ::oteldemo::CartItem* _internal_mutable_item(); + public: + void unsafe_arena_set_allocated_item( + ::oteldemo::CartItem* item); + ::oteldemo::CartItem* unsafe_arena_release_item(); + + // .oteldemo.Money cost = 2; + bool has_cost() const; + private: + bool _internal_has_cost() const; + public: + void clear_cost(); + const ::oteldemo::Money& cost() const; + PROTOBUF_NODISCARD ::oteldemo::Money* release_cost(); + ::oteldemo::Money* mutable_cost(); + void set_allocated_cost(::oteldemo::Money* cost); + private: + const ::oteldemo::Money& _internal_cost() const; + ::oteldemo::Money* _internal_mutable_cost(); + public: + void unsafe_arena_set_allocated_cost( + ::oteldemo::Money* cost); + ::oteldemo::Money* unsafe_arena_release_cost(); + + // @@protoc_insertion_point(class_scope:oteldemo.OrderItem) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::oteldemo::CartItem* item_; + ::oteldemo::Money* cost_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class OrderResult final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.OrderResult) */ { + public: + inline OrderResult() : OrderResult(nullptr) {} + ~OrderResult() override; + explicit PROTOBUF_CONSTEXPR OrderResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + OrderResult(const OrderResult& from); + OrderResult(OrderResult&& from) noexcept + : OrderResult() { + *this = ::std::move(from); + } + + inline OrderResult& operator=(const OrderResult& from) { + CopyFrom(from); + return *this; + } + inline OrderResult& operator=(OrderResult&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const OrderResult& default_instance() { + return *internal_default_instance(); + } + static inline const OrderResult* internal_default_instance() { + return reinterpret_cast( + &_OrderResult_default_instance_); + } + static constexpr int kIndexInFileMessages = + 25; + + friend void swap(OrderResult& a, OrderResult& b) { + a.Swap(&b); + } + inline void Swap(OrderResult* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(OrderResult* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + OrderResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const OrderResult& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const OrderResult& from) { + OrderResult::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(OrderResult* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.OrderResult"; + } + protected: + explicit OrderResult(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kItemsFieldNumber = 5, + kOrderIdFieldNumber = 1, + kShippingTrackingIdFieldNumber = 2, + kShippingCostFieldNumber = 3, + kShippingAddressFieldNumber = 4, + }; + // repeated .oteldemo.OrderItem items = 5; + int items_size() const; + private: + int _internal_items_size() const; + public: + void clear_items(); + ::oteldemo::OrderItem* mutable_items(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::OrderItem >* + mutable_items(); + private: + const ::oteldemo::OrderItem& _internal_items(int index) const; + ::oteldemo::OrderItem* _internal_add_items(); + public: + const ::oteldemo::OrderItem& items(int index) const; + ::oteldemo::OrderItem* add_items(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::OrderItem >& + items() const; + + // string order_id = 1; + void clear_order_id(); + const std::string& order_id() const; + template + void set_order_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_order_id(); + PROTOBUF_NODISCARD std::string* release_order_id(); + void set_allocated_order_id(std::string* order_id); + private: + const std::string& _internal_order_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_order_id(const std::string& value); + std::string* _internal_mutable_order_id(); + public: + + // string shipping_tracking_id = 2; + void clear_shipping_tracking_id(); + const std::string& shipping_tracking_id() const; + template + void set_shipping_tracking_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_shipping_tracking_id(); + PROTOBUF_NODISCARD std::string* release_shipping_tracking_id(); + void set_allocated_shipping_tracking_id(std::string* shipping_tracking_id); + private: + const std::string& _internal_shipping_tracking_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_shipping_tracking_id(const std::string& value); + std::string* _internal_mutable_shipping_tracking_id(); + public: + + // .oteldemo.Money shipping_cost = 3; + bool has_shipping_cost() const; + private: + bool _internal_has_shipping_cost() const; + public: + void clear_shipping_cost(); + const ::oteldemo::Money& shipping_cost() const; + PROTOBUF_NODISCARD ::oteldemo::Money* release_shipping_cost(); + ::oteldemo::Money* mutable_shipping_cost(); + void set_allocated_shipping_cost(::oteldemo::Money* shipping_cost); + private: + const ::oteldemo::Money& _internal_shipping_cost() const; + ::oteldemo::Money* _internal_mutable_shipping_cost(); + public: + void unsafe_arena_set_allocated_shipping_cost( + ::oteldemo::Money* shipping_cost); + ::oteldemo::Money* unsafe_arena_release_shipping_cost(); + + // .oteldemo.Address shipping_address = 4; + bool has_shipping_address() const; + private: + bool _internal_has_shipping_address() const; + public: + void clear_shipping_address(); + const ::oteldemo::Address& shipping_address() const; + PROTOBUF_NODISCARD ::oteldemo::Address* release_shipping_address(); + ::oteldemo::Address* mutable_shipping_address(); + void set_allocated_shipping_address(::oteldemo::Address* shipping_address); + private: + const ::oteldemo::Address& _internal_shipping_address() const; + ::oteldemo::Address* _internal_mutable_shipping_address(); + public: + void unsafe_arena_set_allocated_shipping_address( + ::oteldemo::Address* shipping_address); + ::oteldemo::Address* unsafe_arena_release_shipping_address(); + + // @@protoc_insertion_point(class_scope:oteldemo.OrderResult) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::OrderItem > items_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr order_id_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr shipping_tracking_id_; + ::oteldemo::Money* shipping_cost_; + ::oteldemo::Address* shipping_address_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class SendOrderConfirmationRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.SendOrderConfirmationRequest) */ { + public: + inline SendOrderConfirmationRequest() : SendOrderConfirmationRequest(nullptr) {} + ~SendOrderConfirmationRequest() override; + explicit PROTOBUF_CONSTEXPR SendOrderConfirmationRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + SendOrderConfirmationRequest(const SendOrderConfirmationRequest& from); + SendOrderConfirmationRequest(SendOrderConfirmationRequest&& from) noexcept + : SendOrderConfirmationRequest() { + *this = ::std::move(from); + } + + inline SendOrderConfirmationRequest& operator=(const SendOrderConfirmationRequest& from) { + CopyFrom(from); + return *this; + } + inline SendOrderConfirmationRequest& operator=(SendOrderConfirmationRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const SendOrderConfirmationRequest& default_instance() { + return *internal_default_instance(); + } + static inline const SendOrderConfirmationRequest* internal_default_instance() { + return reinterpret_cast( + &_SendOrderConfirmationRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 26; + + friend void swap(SendOrderConfirmationRequest& a, SendOrderConfirmationRequest& b) { + a.Swap(&b); + } + inline void Swap(SendOrderConfirmationRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(SendOrderConfirmationRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + SendOrderConfirmationRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const SendOrderConfirmationRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const SendOrderConfirmationRequest& from) { + SendOrderConfirmationRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(SendOrderConfirmationRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.SendOrderConfirmationRequest"; + } + protected: + explicit SendOrderConfirmationRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kEmailFieldNumber = 1, + kOrderFieldNumber = 2, + }; + // string email = 1; + void clear_email(); + const std::string& email() const; + template + void set_email(ArgT0&& arg0, ArgT... args); + std::string* mutable_email(); + PROTOBUF_NODISCARD std::string* release_email(); + void set_allocated_email(std::string* email); + private: + const std::string& _internal_email() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_email(const std::string& value); + std::string* _internal_mutable_email(); + public: + + // .oteldemo.OrderResult order = 2; + bool has_order() const; + private: + bool _internal_has_order() const; + public: + void clear_order(); + const ::oteldemo::OrderResult& order() const; + PROTOBUF_NODISCARD ::oteldemo::OrderResult* release_order(); + ::oteldemo::OrderResult* mutable_order(); + void set_allocated_order(::oteldemo::OrderResult* order); + private: + const ::oteldemo::OrderResult& _internal_order() const; + ::oteldemo::OrderResult* _internal_mutable_order(); + public: + void unsafe_arena_set_allocated_order( + ::oteldemo::OrderResult* order); + ::oteldemo::OrderResult* unsafe_arena_release_order(); + + // @@protoc_insertion_point(class_scope:oteldemo.SendOrderConfirmationRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr email_; + ::oteldemo::OrderResult* order_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class PlaceOrderRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.PlaceOrderRequest) */ { + public: + inline PlaceOrderRequest() : PlaceOrderRequest(nullptr) {} + ~PlaceOrderRequest() override; + explicit PROTOBUF_CONSTEXPR PlaceOrderRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + PlaceOrderRequest(const PlaceOrderRequest& from); + PlaceOrderRequest(PlaceOrderRequest&& from) noexcept + : PlaceOrderRequest() { + *this = ::std::move(from); + } + + inline PlaceOrderRequest& operator=(const PlaceOrderRequest& from) { + CopyFrom(from); + return *this; + } + inline PlaceOrderRequest& operator=(PlaceOrderRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const PlaceOrderRequest& default_instance() { + return *internal_default_instance(); + } + static inline const PlaceOrderRequest* internal_default_instance() { + return reinterpret_cast( + &_PlaceOrderRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 27; + + friend void swap(PlaceOrderRequest& a, PlaceOrderRequest& b) { + a.Swap(&b); + } + inline void Swap(PlaceOrderRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(PlaceOrderRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + PlaceOrderRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const PlaceOrderRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const PlaceOrderRequest& from) { + PlaceOrderRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(PlaceOrderRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.PlaceOrderRequest"; + } + protected: + explicit PlaceOrderRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kUserIdFieldNumber = 1, + kUserCurrencyFieldNumber = 2, + kEmailFieldNumber = 5, + kAddressFieldNumber = 3, + kCreditCardFieldNumber = 6, + }; + // string user_id = 1; + void clear_user_id(); + const std::string& user_id() const; + template + void set_user_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_user_id(); + PROTOBUF_NODISCARD std::string* release_user_id(); + void set_allocated_user_id(std::string* user_id); + private: + const std::string& _internal_user_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_user_id(const std::string& value); + std::string* _internal_mutable_user_id(); + public: + + // string user_currency = 2; + void clear_user_currency(); + const std::string& user_currency() const; + template + void set_user_currency(ArgT0&& arg0, ArgT... args); + std::string* mutable_user_currency(); + PROTOBUF_NODISCARD std::string* release_user_currency(); + void set_allocated_user_currency(std::string* user_currency); + private: + const std::string& _internal_user_currency() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_user_currency(const std::string& value); + std::string* _internal_mutable_user_currency(); + public: + + // string email = 5; + void clear_email(); + const std::string& email() const; + template + void set_email(ArgT0&& arg0, ArgT... args); + std::string* mutable_email(); + PROTOBUF_NODISCARD std::string* release_email(); + void set_allocated_email(std::string* email); + private: + const std::string& _internal_email() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_email(const std::string& value); + std::string* _internal_mutable_email(); + public: + + // .oteldemo.Address address = 3; + bool has_address() const; + private: + bool _internal_has_address() const; + public: + void clear_address(); + const ::oteldemo::Address& address() const; + PROTOBUF_NODISCARD ::oteldemo::Address* release_address(); + ::oteldemo::Address* mutable_address(); + void set_allocated_address(::oteldemo::Address* address); + private: + const ::oteldemo::Address& _internal_address() const; + ::oteldemo::Address* _internal_mutable_address(); + public: + void unsafe_arena_set_allocated_address( + ::oteldemo::Address* address); + ::oteldemo::Address* unsafe_arena_release_address(); + + // .oteldemo.CreditCardInfo credit_card = 6; + bool has_credit_card() const; + private: + bool _internal_has_credit_card() const; + public: + void clear_credit_card(); + const ::oteldemo::CreditCardInfo& credit_card() const; + PROTOBUF_NODISCARD ::oteldemo::CreditCardInfo* release_credit_card(); + ::oteldemo::CreditCardInfo* mutable_credit_card(); + void set_allocated_credit_card(::oteldemo::CreditCardInfo* credit_card); + private: + const ::oteldemo::CreditCardInfo& _internal_credit_card() const; + ::oteldemo::CreditCardInfo* _internal_mutable_credit_card(); + public: + void unsafe_arena_set_allocated_credit_card( + ::oteldemo::CreditCardInfo* credit_card); + ::oteldemo::CreditCardInfo* unsafe_arena_release_credit_card(); + + // @@protoc_insertion_point(class_scope:oteldemo.PlaceOrderRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr user_id_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr user_currency_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr email_; + ::oteldemo::Address* address_; + ::oteldemo::CreditCardInfo* credit_card_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class PlaceOrderResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.PlaceOrderResponse) */ { + public: + inline PlaceOrderResponse() : PlaceOrderResponse(nullptr) {} + ~PlaceOrderResponse() override; + explicit PROTOBUF_CONSTEXPR PlaceOrderResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + PlaceOrderResponse(const PlaceOrderResponse& from); + PlaceOrderResponse(PlaceOrderResponse&& from) noexcept + : PlaceOrderResponse() { + *this = ::std::move(from); + } + + inline PlaceOrderResponse& operator=(const PlaceOrderResponse& from) { + CopyFrom(from); + return *this; + } + inline PlaceOrderResponse& operator=(PlaceOrderResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const PlaceOrderResponse& default_instance() { + return *internal_default_instance(); + } + static inline const PlaceOrderResponse* internal_default_instance() { + return reinterpret_cast( + &_PlaceOrderResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 28; + + friend void swap(PlaceOrderResponse& a, PlaceOrderResponse& b) { + a.Swap(&b); + } + inline void Swap(PlaceOrderResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(PlaceOrderResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + PlaceOrderResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const PlaceOrderResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const PlaceOrderResponse& from) { + PlaceOrderResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(PlaceOrderResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.PlaceOrderResponse"; + } + protected: + explicit PlaceOrderResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kOrderFieldNumber = 1, + }; + // .oteldemo.OrderResult order = 1; + bool has_order() const; + private: + bool _internal_has_order() const; + public: + void clear_order(); + const ::oteldemo::OrderResult& order() const; + PROTOBUF_NODISCARD ::oteldemo::OrderResult* release_order(); + ::oteldemo::OrderResult* mutable_order(); + void set_allocated_order(::oteldemo::OrderResult* order); + private: + const ::oteldemo::OrderResult& _internal_order() const; + ::oteldemo::OrderResult* _internal_mutable_order(); + public: + void unsafe_arena_set_allocated_order( + ::oteldemo::OrderResult* order); + ::oteldemo::OrderResult* unsafe_arena_release_order(); + + // @@protoc_insertion_point(class_scope:oteldemo.PlaceOrderResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::oteldemo::OrderResult* order_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class AdRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.AdRequest) */ { + public: + inline AdRequest() : AdRequest(nullptr) {} + ~AdRequest() override; + explicit PROTOBUF_CONSTEXPR AdRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + AdRequest(const AdRequest& from); + AdRequest(AdRequest&& from) noexcept + : AdRequest() { + *this = ::std::move(from); + } + + inline AdRequest& operator=(const AdRequest& from) { + CopyFrom(from); + return *this; + } + inline AdRequest& operator=(AdRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const AdRequest& default_instance() { + return *internal_default_instance(); + } + static inline const AdRequest* internal_default_instance() { + return reinterpret_cast( + &_AdRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 29; + + friend void swap(AdRequest& a, AdRequest& b) { + a.Swap(&b); + } + inline void Swap(AdRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(AdRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + AdRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const AdRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const AdRequest& from) { + AdRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(AdRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.AdRequest"; + } + protected: + explicit AdRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kContextKeysFieldNumber = 1, + }; + // repeated string context_keys = 1; + int context_keys_size() const; + private: + int _internal_context_keys_size() const; + public: + void clear_context_keys(); + const std::string& context_keys(int index) const; + std::string* mutable_context_keys(int index); + void set_context_keys(int index, const std::string& value); + void set_context_keys(int index, std::string&& value); + void set_context_keys(int index, const char* value); + void set_context_keys(int index, const char* value, size_t size); + std::string* add_context_keys(); + void add_context_keys(const std::string& value); + void add_context_keys(std::string&& value); + void add_context_keys(const char* value); + void add_context_keys(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& context_keys() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_context_keys(); + private: + const std::string& _internal_context_keys(int index) const; + std::string* _internal_add_context_keys(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.AdRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField context_keys_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class AdResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.AdResponse) */ { + public: + inline AdResponse() : AdResponse(nullptr) {} + ~AdResponse() override; + explicit PROTOBUF_CONSTEXPR AdResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + AdResponse(const AdResponse& from); + AdResponse(AdResponse&& from) noexcept + : AdResponse() { + *this = ::std::move(from); + } + + inline AdResponse& operator=(const AdResponse& from) { + CopyFrom(from); + return *this; + } + inline AdResponse& operator=(AdResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const AdResponse& default_instance() { + return *internal_default_instance(); + } + static inline const AdResponse* internal_default_instance() { + return reinterpret_cast( + &_AdResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 30; + + friend void swap(AdResponse& a, AdResponse& b) { + a.Swap(&b); + } + inline void Swap(AdResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(AdResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + AdResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const AdResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const AdResponse& from) { + AdResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(AdResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.AdResponse"; + } + protected: + explicit AdResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kAdsFieldNumber = 1, + }; + // repeated .oteldemo.Ad ads = 1; + int ads_size() const; + private: + int _internal_ads_size() const; + public: + void clear_ads(); + ::oteldemo::Ad* mutable_ads(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Ad >* + mutable_ads(); + private: + const ::oteldemo::Ad& _internal_ads(int index) const; + ::oteldemo::Ad* _internal_add_ads(); + public: + const ::oteldemo::Ad& ads(int index) const; + ::oteldemo::Ad* add_ads(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Ad >& + ads() const; + + // @@protoc_insertion_point(class_scope:oteldemo.AdResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Ad > ads_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class Ad final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.Ad) */ { + public: + inline Ad() : Ad(nullptr) {} + ~Ad() override; + explicit PROTOBUF_CONSTEXPR Ad(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + Ad(const Ad& from); + Ad(Ad&& from) noexcept + : Ad() { + *this = ::std::move(from); + } + + inline Ad& operator=(const Ad& from) { + CopyFrom(from); + return *this; + } + inline Ad& operator=(Ad&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const Ad& default_instance() { + return *internal_default_instance(); + } + static inline const Ad* internal_default_instance() { + return reinterpret_cast( + &_Ad_default_instance_); + } + static constexpr int kIndexInFileMessages = + 31; + + friend void swap(Ad& a, Ad& b) { + a.Swap(&b); + } + inline void Swap(Ad* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(Ad* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + Ad* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const Ad& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const Ad& from) { + Ad::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Ad* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.Ad"; + } + protected: + explicit Ad(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kRedirectUrlFieldNumber = 1, + kTextFieldNumber = 2, + }; + // string redirect_url = 1; + void clear_redirect_url(); + const std::string& redirect_url() const; + template + void set_redirect_url(ArgT0&& arg0, ArgT... args); + std::string* mutable_redirect_url(); + PROTOBUF_NODISCARD std::string* release_redirect_url(); + void set_allocated_redirect_url(std::string* redirect_url); + private: + const std::string& _internal_redirect_url() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_redirect_url(const std::string& value); + std::string* _internal_mutable_redirect_url(); + public: + + // string text = 2; + void clear_text(); + const std::string& text() const; + template + void set_text(ArgT0&& arg0, ArgT... args); + std::string* mutable_text(); + PROTOBUF_NODISCARD std::string* release_text(); + void set_allocated_text(std::string* text); + private: + const std::string& _internal_text() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_text(const std::string& value); + std::string* _internal_mutable_text(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.Ad) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr redirect_url_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr text_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class Flag final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.Flag) */ { + public: + inline Flag() : Flag(nullptr) {} + ~Flag() override; + explicit PROTOBUF_CONSTEXPR Flag(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + Flag(const Flag& from); + Flag(Flag&& from) noexcept + : Flag() { + *this = ::std::move(from); + } + + inline Flag& operator=(const Flag& from) { + CopyFrom(from); + return *this; + } + inline Flag& operator=(Flag&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const Flag& default_instance() { + return *internal_default_instance(); + } + static inline const Flag* internal_default_instance() { + return reinterpret_cast( + &_Flag_default_instance_); + } + static constexpr int kIndexInFileMessages = + 32; + + friend void swap(Flag& a, Flag& b) { + a.Swap(&b); + } + inline void Swap(Flag* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(Flag* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + Flag* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const Flag& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const Flag& from) { + Flag::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Flag* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.Flag"; + } + protected: + explicit Flag(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kNameFieldNumber = 1, + kDescriptionFieldNumber = 2, + kEnabledFieldNumber = 3, + }; + // string name = 1; + void clear_name(); + const std::string& name() const; + template + void set_name(ArgT0&& arg0, ArgT... args); + std::string* mutable_name(); + PROTOBUF_NODISCARD std::string* release_name(); + void set_allocated_name(std::string* name); + private: + const std::string& _internal_name() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value); + std::string* _internal_mutable_name(); + public: + + // string description = 2; + void clear_description(); + const std::string& description() const; + template + void set_description(ArgT0&& arg0, ArgT... args); + std::string* mutable_description(); + PROTOBUF_NODISCARD std::string* release_description(); + void set_allocated_description(std::string* description); + private: + const std::string& _internal_description() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(const std::string& value); + std::string* _internal_mutable_description(); + public: + + // bool enabled = 3; + void clear_enabled(); + bool enabled() const; + void set_enabled(bool value); + private: + bool _internal_enabled() const; + void _internal_set_enabled(bool value); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.Flag) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr description_; + bool enabled_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class GetFlagRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.GetFlagRequest) */ { + public: + inline GetFlagRequest() : GetFlagRequest(nullptr) {} + ~GetFlagRequest() override; + explicit PROTOBUF_CONSTEXPR GetFlagRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + GetFlagRequest(const GetFlagRequest& from); + GetFlagRequest(GetFlagRequest&& from) noexcept + : GetFlagRequest() { + *this = ::std::move(from); + } + + inline GetFlagRequest& operator=(const GetFlagRequest& from) { + CopyFrom(from); + return *this; + } + inline GetFlagRequest& operator=(GetFlagRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const GetFlagRequest& default_instance() { + return *internal_default_instance(); + } + static inline const GetFlagRequest* internal_default_instance() { + return reinterpret_cast( + &_GetFlagRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 33; + + friend void swap(GetFlagRequest& a, GetFlagRequest& b) { + a.Swap(&b); + } + inline void Swap(GetFlagRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(GetFlagRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + GetFlagRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const GetFlagRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const GetFlagRequest& from) { + GetFlagRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetFlagRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.GetFlagRequest"; + } + protected: + explicit GetFlagRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kNameFieldNumber = 1, + }; + // string name = 1; + void clear_name(); + const std::string& name() const; + template + void set_name(ArgT0&& arg0, ArgT... args); + std::string* mutable_name(); + PROTOBUF_NODISCARD std::string* release_name(); + void set_allocated_name(std::string* name); + private: + const std::string& _internal_name() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value); + std::string* _internal_mutable_name(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.GetFlagRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class GetFlagResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.GetFlagResponse) */ { + public: + inline GetFlagResponse() : GetFlagResponse(nullptr) {} + ~GetFlagResponse() override; + explicit PROTOBUF_CONSTEXPR GetFlagResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + GetFlagResponse(const GetFlagResponse& from); + GetFlagResponse(GetFlagResponse&& from) noexcept + : GetFlagResponse() { + *this = ::std::move(from); + } + + inline GetFlagResponse& operator=(const GetFlagResponse& from) { + CopyFrom(from); + return *this; + } + inline GetFlagResponse& operator=(GetFlagResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const GetFlagResponse& default_instance() { + return *internal_default_instance(); + } + static inline const GetFlagResponse* internal_default_instance() { + return reinterpret_cast( + &_GetFlagResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 34; + + friend void swap(GetFlagResponse& a, GetFlagResponse& b) { + a.Swap(&b); + } + inline void Swap(GetFlagResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(GetFlagResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + GetFlagResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const GetFlagResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const GetFlagResponse& from) { + GetFlagResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetFlagResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.GetFlagResponse"; + } + protected: + explicit GetFlagResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kFlagFieldNumber = 1, + }; + // .oteldemo.Flag flag = 1; + bool has_flag() const; + private: + bool _internal_has_flag() const; + public: + void clear_flag(); + const ::oteldemo::Flag& flag() const; + PROTOBUF_NODISCARD ::oteldemo::Flag* release_flag(); + ::oteldemo::Flag* mutable_flag(); + void set_allocated_flag(::oteldemo::Flag* flag); + private: + const ::oteldemo::Flag& _internal_flag() const; + ::oteldemo::Flag* _internal_mutable_flag(); + public: + void unsafe_arena_set_allocated_flag( + ::oteldemo::Flag* flag); + ::oteldemo::Flag* unsafe_arena_release_flag(); + + // @@protoc_insertion_point(class_scope:oteldemo.GetFlagResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::oteldemo::Flag* flag_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class CreateFlagRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.CreateFlagRequest) */ { + public: + inline CreateFlagRequest() : CreateFlagRequest(nullptr) {} + ~CreateFlagRequest() override; + explicit PROTOBUF_CONSTEXPR CreateFlagRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + CreateFlagRequest(const CreateFlagRequest& from); + CreateFlagRequest(CreateFlagRequest&& from) noexcept + : CreateFlagRequest() { + *this = ::std::move(from); + } + + inline CreateFlagRequest& operator=(const CreateFlagRequest& from) { + CopyFrom(from); + return *this; + } + inline CreateFlagRequest& operator=(CreateFlagRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const CreateFlagRequest& default_instance() { + return *internal_default_instance(); + } + static inline const CreateFlagRequest* internal_default_instance() { + return reinterpret_cast( + &_CreateFlagRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 35; + + friend void swap(CreateFlagRequest& a, CreateFlagRequest& b) { + a.Swap(&b); + } + inline void Swap(CreateFlagRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(CreateFlagRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + CreateFlagRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const CreateFlagRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const CreateFlagRequest& from) { + CreateFlagRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(CreateFlagRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.CreateFlagRequest"; + } + protected: + explicit CreateFlagRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kNameFieldNumber = 1, + kDescriptionFieldNumber = 2, + kEnabledFieldNumber = 3, + }; + // string name = 1; + void clear_name(); + const std::string& name() const; + template + void set_name(ArgT0&& arg0, ArgT... args); + std::string* mutable_name(); + PROTOBUF_NODISCARD std::string* release_name(); + void set_allocated_name(std::string* name); + private: + const std::string& _internal_name() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value); + std::string* _internal_mutable_name(); + public: + + // string description = 2; + void clear_description(); + const std::string& description() const; + template + void set_description(ArgT0&& arg0, ArgT... args); + std::string* mutable_description(); + PROTOBUF_NODISCARD std::string* release_description(); + void set_allocated_description(std::string* description); + private: + const std::string& _internal_description() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(const std::string& value); + std::string* _internal_mutable_description(); + public: + + // bool enabled = 3; + void clear_enabled(); + bool enabled() const; + void set_enabled(bool value); + private: + bool _internal_enabled() const; + void _internal_set_enabled(bool value); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.CreateFlagRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr description_; + bool enabled_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class CreateFlagResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.CreateFlagResponse) */ { + public: + inline CreateFlagResponse() : CreateFlagResponse(nullptr) {} + ~CreateFlagResponse() override; + explicit PROTOBUF_CONSTEXPR CreateFlagResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + CreateFlagResponse(const CreateFlagResponse& from); + CreateFlagResponse(CreateFlagResponse&& from) noexcept + : CreateFlagResponse() { + *this = ::std::move(from); + } + + inline CreateFlagResponse& operator=(const CreateFlagResponse& from) { + CopyFrom(from); + return *this; + } + inline CreateFlagResponse& operator=(CreateFlagResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const CreateFlagResponse& default_instance() { + return *internal_default_instance(); + } + static inline const CreateFlagResponse* internal_default_instance() { + return reinterpret_cast( + &_CreateFlagResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 36; + + friend void swap(CreateFlagResponse& a, CreateFlagResponse& b) { + a.Swap(&b); + } + inline void Swap(CreateFlagResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(CreateFlagResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + CreateFlagResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const CreateFlagResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const CreateFlagResponse& from) { + CreateFlagResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(CreateFlagResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.CreateFlagResponse"; + } + protected: + explicit CreateFlagResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kFlagFieldNumber = 1, + }; + // .oteldemo.Flag flag = 1; + bool has_flag() const; + private: + bool _internal_has_flag() const; + public: + void clear_flag(); + const ::oteldemo::Flag& flag() const; + PROTOBUF_NODISCARD ::oteldemo::Flag* release_flag(); + ::oteldemo::Flag* mutable_flag(); + void set_allocated_flag(::oteldemo::Flag* flag); + private: + const ::oteldemo::Flag& _internal_flag() const; + ::oteldemo::Flag* _internal_mutable_flag(); + public: + void unsafe_arena_set_allocated_flag( + ::oteldemo::Flag* flag); + ::oteldemo::Flag* unsafe_arena_release_flag(); + + // @@protoc_insertion_point(class_scope:oteldemo.CreateFlagResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::oteldemo::Flag* flag_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class UpdateFlagRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.UpdateFlagRequest) */ { + public: + inline UpdateFlagRequest() : UpdateFlagRequest(nullptr) {} + ~UpdateFlagRequest() override; + explicit PROTOBUF_CONSTEXPR UpdateFlagRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + UpdateFlagRequest(const UpdateFlagRequest& from); + UpdateFlagRequest(UpdateFlagRequest&& from) noexcept + : UpdateFlagRequest() { + *this = ::std::move(from); + } + + inline UpdateFlagRequest& operator=(const UpdateFlagRequest& from) { + CopyFrom(from); + return *this; + } + inline UpdateFlagRequest& operator=(UpdateFlagRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const UpdateFlagRequest& default_instance() { + return *internal_default_instance(); + } + static inline const UpdateFlagRequest* internal_default_instance() { + return reinterpret_cast( + &_UpdateFlagRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 37; + + friend void swap(UpdateFlagRequest& a, UpdateFlagRequest& b) { + a.Swap(&b); + } + inline void Swap(UpdateFlagRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(UpdateFlagRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + UpdateFlagRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const UpdateFlagRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const UpdateFlagRequest& from) { + UpdateFlagRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(UpdateFlagRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.UpdateFlagRequest"; + } + protected: + explicit UpdateFlagRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kNameFieldNumber = 1, + kEnabledFieldNumber = 2, + }; + // string name = 1; + void clear_name(); + const std::string& name() const; + template + void set_name(ArgT0&& arg0, ArgT... args); + std::string* mutable_name(); + PROTOBUF_NODISCARD std::string* release_name(); + void set_allocated_name(std::string* name); + private: + const std::string& _internal_name() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value); + std::string* _internal_mutable_name(); + public: + + // bool enabled = 2; + void clear_enabled(); + bool enabled() const; + void set_enabled(bool value); + private: + bool _internal_enabled() const; + void _internal_set_enabled(bool value); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.UpdateFlagRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_; + bool enabled_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class UpdateFlagResponse final : + public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:oteldemo.UpdateFlagResponse) */ { + public: + inline UpdateFlagResponse() : UpdateFlagResponse(nullptr) {} + explicit PROTOBUF_CONSTEXPR UpdateFlagResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + UpdateFlagResponse(const UpdateFlagResponse& from); + UpdateFlagResponse(UpdateFlagResponse&& from) noexcept + : UpdateFlagResponse() { + *this = ::std::move(from); + } + + inline UpdateFlagResponse& operator=(const UpdateFlagResponse& from) { + CopyFrom(from); + return *this; + } + inline UpdateFlagResponse& operator=(UpdateFlagResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const UpdateFlagResponse& default_instance() { + return *internal_default_instance(); + } + static inline const UpdateFlagResponse* internal_default_instance() { + return reinterpret_cast( + &_UpdateFlagResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 38; + + friend void swap(UpdateFlagResponse& a, UpdateFlagResponse& b) { + a.Swap(&b); + } + inline void Swap(UpdateFlagResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(UpdateFlagResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + UpdateFlagResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom; + inline void CopyFrom(const UpdateFlagResponse& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(*this, from); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom; + void MergeFrom(const UpdateFlagResponse& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(*this, from); + } + public: + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.UpdateFlagResponse"; + } + protected: + explicit UpdateFlagResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:oteldemo.UpdateFlagResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class ListFlagsRequest final : + public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:oteldemo.ListFlagsRequest) */ { + public: + inline ListFlagsRequest() : ListFlagsRequest(nullptr) {} + explicit PROTOBUF_CONSTEXPR ListFlagsRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + ListFlagsRequest(const ListFlagsRequest& from); + ListFlagsRequest(ListFlagsRequest&& from) noexcept + : ListFlagsRequest() { + *this = ::std::move(from); + } + + inline ListFlagsRequest& operator=(const ListFlagsRequest& from) { + CopyFrom(from); + return *this; + } + inline ListFlagsRequest& operator=(ListFlagsRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ListFlagsRequest& default_instance() { + return *internal_default_instance(); + } + static inline const ListFlagsRequest* internal_default_instance() { + return reinterpret_cast( + &_ListFlagsRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 39; + + friend void swap(ListFlagsRequest& a, ListFlagsRequest& b) { + a.Swap(&b); + } + inline void Swap(ListFlagsRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ListFlagsRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ListFlagsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom; + inline void CopyFrom(const ListFlagsRequest& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(*this, from); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom; + void MergeFrom(const ListFlagsRequest& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(*this, from); + } + public: + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.ListFlagsRequest"; + } + protected: + explicit ListFlagsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:oteldemo.ListFlagsRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class ListFlagsResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.ListFlagsResponse) */ { + public: + inline ListFlagsResponse() : ListFlagsResponse(nullptr) {} + ~ListFlagsResponse() override; + explicit PROTOBUF_CONSTEXPR ListFlagsResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + ListFlagsResponse(const ListFlagsResponse& from); + ListFlagsResponse(ListFlagsResponse&& from) noexcept + : ListFlagsResponse() { + *this = ::std::move(from); + } + + inline ListFlagsResponse& operator=(const ListFlagsResponse& from) { + CopyFrom(from); + return *this; + } + inline ListFlagsResponse& operator=(ListFlagsResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ListFlagsResponse& default_instance() { + return *internal_default_instance(); + } + static inline const ListFlagsResponse* internal_default_instance() { + return reinterpret_cast( + &_ListFlagsResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 40; + + friend void swap(ListFlagsResponse& a, ListFlagsResponse& b) { + a.Swap(&b); + } + inline void Swap(ListFlagsResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ListFlagsResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ListFlagsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const ListFlagsResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const ListFlagsResponse& from) { + ListFlagsResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ListFlagsResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.ListFlagsResponse"; + } + protected: + explicit ListFlagsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kFlagFieldNumber = 1, + }; + // repeated .oteldemo.Flag flag = 1; + int flag_size() const; + private: + int _internal_flag_size() const; + public: + void clear_flag(); + ::oteldemo::Flag* mutable_flag(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Flag >* + mutable_flag(); + private: + const ::oteldemo::Flag& _internal_flag(int index) const; + ::oteldemo::Flag* _internal_add_flag(); + public: + const ::oteldemo::Flag& flag(int index) const; + ::oteldemo::Flag* add_flag(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Flag >& + flag() const; + + // @@protoc_insertion_point(class_scope:oteldemo.ListFlagsResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Flag > flag_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class DeleteFlagRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:oteldemo.DeleteFlagRequest) */ { + public: + inline DeleteFlagRequest() : DeleteFlagRequest(nullptr) {} + ~DeleteFlagRequest() override; + explicit PROTOBUF_CONSTEXPR DeleteFlagRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + DeleteFlagRequest(const DeleteFlagRequest& from); + DeleteFlagRequest(DeleteFlagRequest&& from) noexcept + : DeleteFlagRequest() { + *this = ::std::move(from); + } + + inline DeleteFlagRequest& operator=(const DeleteFlagRequest& from) { + CopyFrom(from); + return *this; + } + inline DeleteFlagRequest& operator=(DeleteFlagRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const DeleteFlagRequest& default_instance() { + return *internal_default_instance(); + } + static inline const DeleteFlagRequest* internal_default_instance() { + return reinterpret_cast( + &_DeleteFlagRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 41; + + friend void swap(DeleteFlagRequest& a, DeleteFlagRequest& b) { + a.Swap(&b); + } + inline void Swap(DeleteFlagRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(DeleteFlagRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + DeleteFlagRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const DeleteFlagRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const DeleteFlagRequest& from) { + DeleteFlagRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(DeleteFlagRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.DeleteFlagRequest"; + } + protected: + explicit DeleteFlagRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kNameFieldNumber = 1, + }; + // string name = 1; + void clear_name(); + const std::string& name() const; + template + void set_name(ArgT0&& arg0, ArgT... args); + std::string* mutable_name(); + PROTOBUF_NODISCARD std::string* release_name(); + void set_allocated_name(std::string* name); + private: + const std::string& _internal_name() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value); + std::string* _internal_mutable_name(); + public: + + // @@protoc_insertion_point(class_scope:oteldemo.DeleteFlagRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_demo_2eproto; +}; +// ------------------------------------------------------------------- + +class DeleteFlagResponse final : + public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:oteldemo.DeleteFlagResponse) */ { + public: + inline DeleteFlagResponse() : DeleteFlagResponse(nullptr) {} + explicit PROTOBUF_CONSTEXPR DeleteFlagResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + DeleteFlagResponse(const DeleteFlagResponse& from); + DeleteFlagResponse(DeleteFlagResponse&& from) noexcept + : DeleteFlagResponse() { + *this = ::std::move(from); + } + + inline DeleteFlagResponse& operator=(const DeleteFlagResponse& from) { + CopyFrom(from); + return *this; + } + inline DeleteFlagResponse& operator=(DeleteFlagResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const DeleteFlagResponse& default_instance() { + return *internal_default_instance(); + } + static inline const DeleteFlagResponse* internal_default_instance() { + return reinterpret_cast( + &_DeleteFlagResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 42; + + friend void swap(DeleteFlagResponse& a, DeleteFlagResponse& b) { + a.Swap(&b); + } + inline void Swap(DeleteFlagResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(DeleteFlagResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + DeleteFlagResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom; + inline void CopyFrom(const DeleteFlagResponse& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(*this, from); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom; + void MergeFrom(const DeleteFlagResponse& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(*this, from); + } + public: + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "oteldemo.DeleteFlagResponse"; + } + protected: + explicit DeleteFlagResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:oteldemo.DeleteFlagResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + }; + friend struct ::TableStruct_demo_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// CartItem + +// string product_id = 1; +inline void CartItem::clear_product_id() { + _impl_.product_id_.ClearToEmpty(); +} +inline const std::string& CartItem::product_id() const { + // @@protoc_insertion_point(field_get:oteldemo.CartItem.product_id) + return _internal_product_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void CartItem::set_product_id(ArgT0&& arg0, ArgT... args) { + + _impl_.product_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.CartItem.product_id) +} +inline std::string* CartItem::mutable_product_id() { + std::string* _s = _internal_mutable_product_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.CartItem.product_id) + return _s; +} +inline const std::string& CartItem::_internal_product_id() const { + return _impl_.product_id_.Get(); +} +inline void CartItem::_internal_set_product_id(const std::string& value) { + + _impl_.product_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* CartItem::_internal_mutable_product_id() { + + return _impl_.product_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* CartItem::release_product_id() { + // @@protoc_insertion_point(field_release:oteldemo.CartItem.product_id) + return _impl_.product_id_.Release(); +} +inline void CartItem::set_allocated_product_id(std::string* product_id) { + if (product_id != nullptr) { + + } else { + + } + _impl_.product_id_.SetAllocated(product_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.product_id_.IsDefault()) { + _impl_.product_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.CartItem.product_id) +} + +// int32 quantity = 2; +inline void CartItem::clear_quantity() { + _impl_.quantity_ = 0; +} +inline int32_t CartItem::_internal_quantity() const { + return _impl_.quantity_; +} +inline int32_t CartItem::quantity() const { + // @@protoc_insertion_point(field_get:oteldemo.CartItem.quantity) + return _internal_quantity(); +} +inline void CartItem::_internal_set_quantity(int32_t value) { + + _impl_.quantity_ = value; +} +inline void CartItem::set_quantity(int32_t value) { + _internal_set_quantity(value); + // @@protoc_insertion_point(field_set:oteldemo.CartItem.quantity) +} + +// ------------------------------------------------------------------- + +// AddItemRequest + +// string user_id = 1; +inline void AddItemRequest::clear_user_id() { + _impl_.user_id_.ClearToEmpty(); +} +inline const std::string& AddItemRequest::user_id() const { + // @@protoc_insertion_point(field_get:oteldemo.AddItemRequest.user_id) + return _internal_user_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void AddItemRequest::set_user_id(ArgT0&& arg0, ArgT... args) { + + _impl_.user_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.AddItemRequest.user_id) +} +inline std::string* AddItemRequest::mutable_user_id() { + std::string* _s = _internal_mutable_user_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.AddItemRequest.user_id) + return _s; +} +inline const std::string& AddItemRequest::_internal_user_id() const { + return _impl_.user_id_.Get(); +} +inline void AddItemRequest::_internal_set_user_id(const std::string& value) { + + _impl_.user_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* AddItemRequest::_internal_mutable_user_id() { + + return _impl_.user_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* AddItemRequest::release_user_id() { + // @@protoc_insertion_point(field_release:oteldemo.AddItemRequest.user_id) + return _impl_.user_id_.Release(); +} +inline void AddItemRequest::set_allocated_user_id(std::string* user_id) { + if (user_id != nullptr) { + + } else { + + } + _impl_.user_id_.SetAllocated(user_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.user_id_.IsDefault()) { + _impl_.user_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.AddItemRequest.user_id) +} + +// .oteldemo.CartItem item = 2; +inline bool AddItemRequest::_internal_has_item() const { + return this != internal_default_instance() && _impl_.item_ != nullptr; +} +inline bool AddItemRequest::has_item() const { + return _internal_has_item(); +} +inline void AddItemRequest::clear_item() { + if (GetArenaForAllocation() == nullptr && _impl_.item_ != nullptr) { + delete _impl_.item_; + } + _impl_.item_ = nullptr; +} +inline const ::oteldemo::CartItem& AddItemRequest::_internal_item() const { + const ::oteldemo::CartItem* p = _impl_.item_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_CartItem_default_instance_); +} +inline const ::oteldemo::CartItem& AddItemRequest::item() const { + // @@protoc_insertion_point(field_get:oteldemo.AddItemRequest.item) + return _internal_item(); +} +inline void AddItemRequest::unsafe_arena_set_allocated_item( + ::oteldemo::CartItem* item) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.item_); + } + _impl_.item_ = item; + if (item) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.AddItemRequest.item) +} +inline ::oteldemo::CartItem* AddItemRequest::release_item() { + + ::oteldemo::CartItem* temp = _impl_.item_; + _impl_.item_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::CartItem* AddItemRequest::unsafe_arena_release_item() { + // @@protoc_insertion_point(field_release:oteldemo.AddItemRequest.item) + + ::oteldemo::CartItem* temp = _impl_.item_; + _impl_.item_ = nullptr; + return temp; +} +inline ::oteldemo::CartItem* AddItemRequest::_internal_mutable_item() { + + if (_impl_.item_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::CartItem>(GetArenaForAllocation()); + _impl_.item_ = p; + } + return _impl_.item_; +} +inline ::oteldemo::CartItem* AddItemRequest::mutable_item() { + ::oteldemo::CartItem* _msg = _internal_mutable_item(); + // @@protoc_insertion_point(field_mutable:oteldemo.AddItemRequest.item) + return _msg; +} +inline void AddItemRequest::set_allocated_item(::oteldemo::CartItem* item) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.item_; + } + if (item) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(item); + if (message_arena != submessage_arena) { + item = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, item, submessage_arena); + } + + } else { + + } + _impl_.item_ = item; + // @@protoc_insertion_point(field_set_allocated:oteldemo.AddItemRequest.item) +} + +// ------------------------------------------------------------------- + +// EmptyCartRequest + +// string user_id = 1; +inline void EmptyCartRequest::clear_user_id() { + _impl_.user_id_.ClearToEmpty(); +} +inline const std::string& EmptyCartRequest::user_id() const { + // @@protoc_insertion_point(field_get:oteldemo.EmptyCartRequest.user_id) + return _internal_user_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void EmptyCartRequest::set_user_id(ArgT0&& arg0, ArgT... args) { + + _impl_.user_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.EmptyCartRequest.user_id) +} +inline std::string* EmptyCartRequest::mutable_user_id() { + std::string* _s = _internal_mutable_user_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.EmptyCartRequest.user_id) + return _s; +} +inline const std::string& EmptyCartRequest::_internal_user_id() const { + return _impl_.user_id_.Get(); +} +inline void EmptyCartRequest::_internal_set_user_id(const std::string& value) { + + _impl_.user_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* EmptyCartRequest::_internal_mutable_user_id() { + + return _impl_.user_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* EmptyCartRequest::release_user_id() { + // @@protoc_insertion_point(field_release:oteldemo.EmptyCartRequest.user_id) + return _impl_.user_id_.Release(); +} +inline void EmptyCartRequest::set_allocated_user_id(std::string* user_id) { + if (user_id != nullptr) { + + } else { + + } + _impl_.user_id_.SetAllocated(user_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.user_id_.IsDefault()) { + _impl_.user_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.EmptyCartRequest.user_id) +} + +// ------------------------------------------------------------------- + +// GetCartRequest + +// string user_id = 1; +inline void GetCartRequest::clear_user_id() { + _impl_.user_id_.ClearToEmpty(); +} +inline const std::string& GetCartRequest::user_id() const { + // @@protoc_insertion_point(field_get:oteldemo.GetCartRequest.user_id) + return _internal_user_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void GetCartRequest::set_user_id(ArgT0&& arg0, ArgT... args) { + + _impl_.user_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.GetCartRequest.user_id) +} +inline std::string* GetCartRequest::mutable_user_id() { + std::string* _s = _internal_mutable_user_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.GetCartRequest.user_id) + return _s; +} +inline const std::string& GetCartRequest::_internal_user_id() const { + return _impl_.user_id_.Get(); +} +inline void GetCartRequest::_internal_set_user_id(const std::string& value) { + + _impl_.user_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* GetCartRequest::_internal_mutable_user_id() { + + return _impl_.user_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* GetCartRequest::release_user_id() { + // @@protoc_insertion_point(field_release:oteldemo.GetCartRequest.user_id) + return _impl_.user_id_.Release(); +} +inline void GetCartRequest::set_allocated_user_id(std::string* user_id) { + if (user_id != nullptr) { + + } else { + + } + _impl_.user_id_.SetAllocated(user_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.user_id_.IsDefault()) { + _impl_.user_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.GetCartRequest.user_id) +} + +// ------------------------------------------------------------------- + +// Cart + +// string user_id = 1; +inline void Cart::clear_user_id() { + _impl_.user_id_.ClearToEmpty(); +} +inline const std::string& Cart::user_id() const { + // @@protoc_insertion_point(field_get:oteldemo.Cart.user_id) + return _internal_user_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Cart::set_user_id(ArgT0&& arg0, ArgT... args) { + + _impl_.user_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Cart.user_id) +} +inline std::string* Cart::mutable_user_id() { + std::string* _s = _internal_mutable_user_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.Cart.user_id) + return _s; +} +inline const std::string& Cart::_internal_user_id() const { + return _impl_.user_id_.Get(); +} +inline void Cart::_internal_set_user_id(const std::string& value) { + + _impl_.user_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* Cart::_internal_mutable_user_id() { + + return _impl_.user_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* Cart::release_user_id() { + // @@protoc_insertion_point(field_release:oteldemo.Cart.user_id) + return _impl_.user_id_.Release(); +} +inline void Cart::set_allocated_user_id(std::string* user_id) { + if (user_id != nullptr) { + + } else { + + } + _impl_.user_id_.SetAllocated(user_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.user_id_.IsDefault()) { + _impl_.user_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Cart.user_id) +} + +// repeated .oteldemo.CartItem items = 2; +inline int Cart::_internal_items_size() const { + return _impl_.items_.size(); +} +inline int Cart::items_size() const { + return _internal_items_size(); +} +inline void Cart::clear_items() { + _impl_.items_.Clear(); +} +inline ::oteldemo::CartItem* Cart::mutable_items(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.Cart.items) + return _impl_.items_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >* +Cart::mutable_items() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.Cart.items) + return &_impl_.items_; +} +inline const ::oteldemo::CartItem& Cart::_internal_items(int index) const { + return _impl_.items_.Get(index); +} +inline const ::oteldemo::CartItem& Cart::items(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.Cart.items) + return _internal_items(index); +} +inline ::oteldemo::CartItem* Cart::_internal_add_items() { + return _impl_.items_.Add(); +} +inline ::oteldemo::CartItem* Cart::add_items() { + ::oteldemo::CartItem* _add = _internal_add_items(); + // @@protoc_insertion_point(field_add:oteldemo.Cart.items) + return _add; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >& +Cart::items() const { + // @@protoc_insertion_point(field_list:oteldemo.Cart.items) + return _impl_.items_; +} + +// ------------------------------------------------------------------- + +// Empty + +// ------------------------------------------------------------------- + +// ListRecommendationsRequest + +// string user_id = 1; +inline void ListRecommendationsRequest::clear_user_id() { + _impl_.user_id_.ClearToEmpty(); +} +inline const std::string& ListRecommendationsRequest::user_id() const { + // @@protoc_insertion_point(field_get:oteldemo.ListRecommendationsRequest.user_id) + return _internal_user_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void ListRecommendationsRequest::set_user_id(ArgT0&& arg0, ArgT... args) { + + _impl_.user_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.ListRecommendationsRequest.user_id) +} +inline std::string* ListRecommendationsRequest::mutable_user_id() { + std::string* _s = _internal_mutable_user_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.ListRecommendationsRequest.user_id) + return _s; +} +inline const std::string& ListRecommendationsRequest::_internal_user_id() const { + return _impl_.user_id_.Get(); +} +inline void ListRecommendationsRequest::_internal_set_user_id(const std::string& value) { + + _impl_.user_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* ListRecommendationsRequest::_internal_mutable_user_id() { + + return _impl_.user_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* ListRecommendationsRequest::release_user_id() { + // @@protoc_insertion_point(field_release:oteldemo.ListRecommendationsRequest.user_id) + return _impl_.user_id_.Release(); +} +inline void ListRecommendationsRequest::set_allocated_user_id(std::string* user_id) { + if (user_id != nullptr) { + + } else { + + } + _impl_.user_id_.SetAllocated(user_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.user_id_.IsDefault()) { + _impl_.user_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.ListRecommendationsRequest.user_id) +} + +// repeated string product_ids = 2; +inline int ListRecommendationsRequest::_internal_product_ids_size() const { + return _impl_.product_ids_.size(); +} +inline int ListRecommendationsRequest::product_ids_size() const { + return _internal_product_ids_size(); +} +inline void ListRecommendationsRequest::clear_product_ids() { + _impl_.product_ids_.Clear(); +} +inline std::string* ListRecommendationsRequest::add_product_ids() { + std::string* _s = _internal_add_product_ids(); + // @@protoc_insertion_point(field_add_mutable:oteldemo.ListRecommendationsRequest.product_ids) + return _s; +} +inline const std::string& ListRecommendationsRequest::_internal_product_ids(int index) const { + return _impl_.product_ids_.Get(index); +} +inline const std::string& ListRecommendationsRequest::product_ids(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.ListRecommendationsRequest.product_ids) + return _internal_product_ids(index); +} +inline std::string* ListRecommendationsRequest::mutable_product_ids(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.ListRecommendationsRequest.product_ids) + return _impl_.product_ids_.Mutable(index); +} +inline void ListRecommendationsRequest::set_product_ids(int index, const std::string& value) { + _impl_.product_ids_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set:oteldemo.ListRecommendationsRequest.product_ids) +} +inline void ListRecommendationsRequest::set_product_ids(int index, std::string&& value) { + _impl_.product_ids_.Mutable(index)->assign(std::move(value)); + // @@protoc_insertion_point(field_set:oteldemo.ListRecommendationsRequest.product_ids) +} +inline void ListRecommendationsRequest::set_product_ids(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.product_ids_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:oteldemo.ListRecommendationsRequest.product_ids) +} +inline void ListRecommendationsRequest::set_product_ids(int index, const char* value, size_t size) { + _impl_.product_ids_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:oteldemo.ListRecommendationsRequest.product_ids) +} +inline std::string* ListRecommendationsRequest::_internal_add_product_ids() { + return _impl_.product_ids_.Add(); +} +inline void ListRecommendationsRequest::add_product_ids(const std::string& value) { + _impl_.product_ids_.Add()->assign(value); + // @@protoc_insertion_point(field_add:oteldemo.ListRecommendationsRequest.product_ids) +} +inline void ListRecommendationsRequest::add_product_ids(std::string&& value) { + _impl_.product_ids_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:oteldemo.ListRecommendationsRequest.product_ids) +} +inline void ListRecommendationsRequest::add_product_ids(const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.product_ids_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:oteldemo.ListRecommendationsRequest.product_ids) +} +inline void ListRecommendationsRequest::add_product_ids(const char* value, size_t size) { + _impl_.product_ids_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:oteldemo.ListRecommendationsRequest.product_ids) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& +ListRecommendationsRequest::product_ids() const { + // @@protoc_insertion_point(field_list:oteldemo.ListRecommendationsRequest.product_ids) + return _impl_.product_ids_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* +ListRecommendationsRequest::mutable_product_ids() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.ListRecommendationsRequest.product_ids) + return &_impl_.product_ids_; +} + +// ------------------------------------------------------------------- + +// ListRecommendationsResponse + +// repeated string product_ids = 1; +inline int ListRecommendationsResponse::_internal_product_ids_size() const { + return _impl_.product_ids_.size(); +} +inline int ListRecommendationsResponse::product_ids_size() const { + return _internal_product_ids_size(); +} +inline void ListRecommendationsResponse::clear_product_ids() { + _impl_.product_ids_.Clear(); +} +inline std::string* ListRecommendationsResponse::add_product_ids() { + std::string* _s = _internal_add_product_ids(); + // @@protoc_insertion_point(field_add_mutable:oteldemo.ListRecommendationsResponse.product_ids) + return _s; +} +inline const std::string& ListRecommendationsResponse::_internal_product_ids(int index) const { + return _impl_.product_ids_.Get(index); +} +inline const std::string& ListRecommendationsResponse::product_ids(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.ListRecommendationsResponse.product_ids) + return _internal_product_ids(index); +} +inline std::string* ListRecommendationsResponse::mutable_product_ids(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.ListRecommendationsResponse.product_ids) + return _impl_.product_ids_.Mutable(index); +} +inline void ListRecommendationsResponse::set_product_ids(int index, const std::string& value) { + _impl_.product_ids_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set:oteldemo.ListRecommendationsResponse.product_ids) +} +inline void ListRecommendationsResponse::set_product_ids(int index, std::string&& value) { + _impl_.product_ids_.Mutable(index)->assign(std::move(value)); + // @@protoc_insertion_point(field_set:oteldemo.ListRecommendationsResponse.product_ids) +} +inline void ListRecommendationsResponse::set_product_ids(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.product_ids_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:oteldemo.ListRecommendationsResponse.product_ids) +} +inline void ListRecommendationsResponse::set_product_ids(int index, const char* value, size_t size) { + _impl_.product_ids_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:oteldemo.ListRecommendationsResponse.product_ids) +} +inline std::string* ListRecommendationsResponse::_internal_add_product_ids() { + return _impl_.product_ids_.Add(); +} +inline void ListRecommendationsResponse::add_product_ids(const std::string& value) { + _impl_.product_ids_.Add()->assign(value); + // @@protoc_insertion_point(field_add:oteldemo.ListRecommendationsResponse.product_ids) +} +inline void ListRecommendationsResponse::add_product_ids(std::string&& value) { + _impl_.product_ids_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:oteldemo.ListRecommendationsResponse.product_ids) +} +inline void ListRecommendationsResponse::add_product_ids(const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.product_ids_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:oteldemo.ListRecommendationsResponse.product_ids) +} +inline void ListRecommendationsResponse::add_product_ids(const char* value, size_t size) { + _impl_.product_ids_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:oteldemo.ListRecommendationsResponse.product_ids) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& +ListRecommendationsResponse::product_ids() const { + // @@protoc_insertion_point(field_list:oteldemo.ListRecommendationsResponse.product_ids) + return _impl_.product_ids_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* +ListRecommendationsResponse::mutable_product_ids() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.ListRecommendationsResponse.product_ids) + return &_impl_.product_ids_; +} + +// ------------------------------------------------------------------- + +// Product + +// string id = 1; +inline void Product::clear_id() { + _impl_.id_.ClearToEmpty(); +} +inline const std::string& Product::id() const { + // @@protoc_insertion_point(field_get:oteldemo.Product.id) + return _internal_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Product::set_id(ArgT0&& arg0, ArgT... args) { + + _impl_.id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Product.id) +} +inline std::string* Product::mutable_id() { + std::string* _s = _internal_mutable_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.Product.id) + return _s; +} +inline const std::string& Product::_internal_id() const { + return _impl_.id_.Get(); +} +inline void Product::_internal_set_id(const std::string& value) { + + _impl_.id_.Set(value, GetArenaForAllocation()); +} +inline std::string* Product::_internal_mutable_id() { + + return _impl_.id_.Mutable(GetArenaForAllocation()); +} +inline std::string* Product::release_id() { + // @@protoc_insertion_point(field_release:oteldemo.Product.id) + return _impl_.id_.Release(); +} +inline void Product::set_allocated_id(std::string* id) { + if (id != nullptr) { + + } else { + + } + _impl_.id_.SetAllocated(id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.id_.IsDefault()) { + _impl_.id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Product.id) +} + +// string name = 2; +inline void Product::clear_name() { + _impl_.name_.ClearToEmpty(); +} +inline const std::string& Product::name() const { + // @@protoc_insertion_point(field_get:oteldemo.Product.name) + return _internal_name(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Product::set_name(ArgT0&& arg0, ArgT... args) { + + _impl_.name_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Product.name) +} +inline std::string* Product::mutable_name() { + std::string* _s = _internal_mutable_name(); + // @@protoc_insertion_point(field_mutable:oteldemo.Product.name) + return _s; +} +inline const std::string& Product::_internal_name() const { + return _impl_.name_.Get(); +} +inline void Product::_internal_set_name(const std::string& value) { + + _impl_.name_.Set(value, GetArenaForAllocation()); +} +inline std::string* Product::_internal_mutable_name() { + + return _impl_.name_.Mutable(GetArenaForAllocation()); +} +inline std::string* Product::release_name() { + // @@protoc_insertion_point(field_release:oteldemo.Product.name) + return _impl_.name_.Release(); +} +inline void Product::set_allocated_name(std::string* name) { + if (name != nullptr) { + + } else { + + } + _impl_.name_.SetAllocated(name, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.name_.IsDefault()) { + _impl_.name_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Product.name) +} + +// string description = 3; +inline void Product::clear_description() { + _impl_.description_.ClearToEmpty(); +} +inline const std::string& Product::description() const { + // @@protoc_insertion_point(field_get:oteldemo.Product.description) + return _internal_description(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Product::set_description(ArgT0&& arg0, ArgT... args) { + + _impl_.description_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Product.description) +} +inline std::string* Product::mutable_description() { + std::string* _s = _internal_mutable_description(); + // @@protoc_insertion_point(field_mutable:oteldemo.Product.description) + return _s; +} +inline const std::string& Product::_internal_description() const { + return _impl_.description_.Get(); +} +inline void Product::_internal_set_description(const std::string& value) { + + _impl_.description_.Set(value, GetArenaForAllocation()); +} +inline std::string* Product::_internal_mutable_description() { + + return _impl_.description_.Mutable(GetArenaForAllocation()); +} +inline std::string* Product::release_description() { + // @@protoc_insertion_point(field_release:oteldemo.Product.description) + return _impl_.description_.Release(); +} +inline void Product::set_allocated_description(std::string* description) { + if (description != nullptr) { + + } else { + + } + _impl_.description_.SetAllocated(description, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.description_.IsDefault()) { + _impl_.description_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Product.description) +} + +// string picture = 4; +inline void Product::clear_picture() { + _impl_.picture_.ClearToEmpty(); +} +inline const std::string& Product::picture() const { + // @@protoc_insertion_point(field_get:oteldemo.Product.picture) + return _internal_picture(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Product::set_picture(ArgT0&& arg0, ArgT... args) { + + _impl_.picture_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Product.picture) +} +inline std::string* Product::mutable_picture() { + std::string* _s = _internal_mutable_picture(); + // @@protoc_insertion_point(field_mutable:oteldemo.Product.picture) + return _s; +} +inline const std::string& Product::_internal_picture() const { + return _impl_.picture_.Get(); +} +inline void Product::_internal_set_picture(const std::string& value) { + + _impl_.picture_.Set(value, GetArenaForAllocation()); +} +inline std::string* Product::_internal_mutable_picture() { + + return _impl_.picture_.Mutable(GetArenaForAllocation()); +} +inline std::string* Product::release_picture() { + // @@protoc_insertion_point(field_release:oteldemo.Product.picture) + return _impl_.picture_.Release(); +} +inline void Product::set_allocated_picture(std::string* picture) { + if (picture != nullptr) { + + } else { + + } + _impl_.picture_.SetAllocated(picture, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.picture_.IsDefault()) { + _impl_.picture_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Product.picture) +} + +// .oteldemo.Money price_usd = 5; +inline bool Product::_internal_has_price_usd() const { + return this != internal_default_instance() && _impl_.price_usd_ != nullptr; +} +inline bool Product::has_price_usd() const { + return _internal_has_price_usd(); +} +inline void Product::clear_price_usd() { + if (GetArenaForAllocation() == nullptr && _impl_.price_usd_ != nullptr) { + delete _impl_.price_usd_; + } + _impl_.price_usd_ = nullptr; +} +inline const ::oteldemo::Money& Product::_internal_price_usd() const { + const ::oteldemo::Money* p = _impl_.price_usd_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Money_default_instance_); +} +inline const ::oteldemo::Money& Product::price_usd() const { + // @@protoc_insertion_point(field_get:oteldemo.Product.price_usd) + return _internal_price_usd(); +} +inline void Product::unsafe_arena_set_allocated_price_usd( + ::oteldemo::Money* price_usd) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.price_usd_); + } + _impl_.price_usd_ = price_usd; + if (price_usd) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.Product.price_usd) +} +inline ::oteldemo::Money* Product::release_price_usd() { + + ::oteldemo::Money* temp = _impl_.price_usd_; + _impl_.price_usd_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Money* Product::unsafe_arena_release_price_usd() { + // @@protoc_insertion_point(field_release:oteldemo.Product.price_usd) + + ::oteldemo::Money* temp = _impl_.price_usd_; + _impl_.price_usd_ = nullptr; + return temp; +} +inline ::oteldemo::Money* Product::_internal_mutable_price_usd() { + + if (_impl_.price_usd_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Money>(GetArenaForAllocation()); + _impl_.price_usd_ = p; + } + return _impl_.price_usd_; +} +inline ::oteldemo::Money* Product::mutable_price_usd() { + ::oteldemo::Money* _msg = _internal_mutable_price_usd(); + // @@protoc_insertion_point(field_mutable:oteldemo.Product.price_usd) + return _msg; +} +inline void Product::set_allocated_price_usd(::oteldemo::Money* price_usd) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.price_usd_; + } + if (price_usd) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(price_usd); + if (message_arena != submessage_arena) { + price_usd = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, price_usd, submessage_arena); + } + + } else { + + } + _impl_.price_usd_ = price_usd; + // @@protoc_insertion_point(field_set_allocated:oteldemo.Product.price_usd) +} + +// repeated string categories = 6; +inline int Product::_internal_categories_size() const { + return _impl_.categories_.size(); +} +inline int Product::categories_size() const { + return _internal_categories_size(); +} +inline void Product::clear_categories() { + _impl_.categories_.Clear(); +} +inline std::string* Product::add_categories() { + std::string* _s = _internal_add_categories(); + // @@protoc_insertion_point(field_add_mutable:oteldemo.Product.categories) + return _s; +} +inline const std::string& Product::_internal_categories(int index) const { + return _impl_.categories_.Get(index); +} +inline const std::string& Product::categories(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.Product.categories) + return _internal_categories(index); +} +inline std::string* Product::mutable_categories(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.Product.categories) + return _impl_.categories_.Mutable(index); +} +inline void Product::set_categories(int index, const std::string& value) { + _impl_.categories_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set:oteldemo.Product.categories) +} +inline void Product::set_categories(int index, std::string&& value) { + _impl_.categories_.Mutable(index)->assign(std::move(value)); + // @@protoc_insertion_point(field_set:oteldemo.Product.categories) +} +inline void Product::set_categories(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.categories_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:oteldemo.Product.categories) +} +inline void Product::set_categories(int index, const char* value, size_t size) { + _impl_.categories_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:oteldemo.Product.categories) +} +inline std::string* Product::_internal_add_categories() { + return _impl_.categories_.Add(); +} +inline void Product::add_categories(const std::string& value) { + _impl_.categories_.Add()->assign(value); + // @@protoc_insertion_point(field_add:oteldemo.Product.categories) +} +inline void Product::add_categories(std::string&& value) { + _impl_.categories_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:oteldemo.Product.categories) +} +inline void Product::add_categories(const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.categories_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:oteldemo.Product.categories) +} +inline void Product::add_categories(const char* value, size_t size) { + _impl_.categories_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:oteldemo.Product.categories) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& +Product::categories() const { + // @@protoc_insertion_point(field_list:oteldemo.Product.categories) + return _impl_.categories_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* +Product::mutable_categories() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.Product.categories) + return &_impl_.categories_; +} + +// ------------------------------------------------------------------- + +// ListProductsResponse + +// repeated .oteldemo.Product products = 1; +inline int ListProductsResponse::_internal_products_size() const { + return _impl_.products_.size(); +} +inline int ListProductsResponse::products_size() const { + return _internal_products_size(); +} +inline void ListProductsResponse::clear_products() { + _impl_.products_.Clear(); +} +inline ::oteldemo::Product* ListProductsResponse::mutable_products(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.ListProductsResponse.products) + return _impl_.products_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Product >* +ListProductsResponse::mutable_products() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.ListProductsResponse.products) + return &_impl_.products_; +} +inline const ::oteldemo::Product& ListProductsResponse::_internal_products(int index) const { + return _impl_.products_.Get(index); +} +inline const ::oteldemo::Product& ListProductsResponse::products(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.ListProductsResponse.products) + return _internal_products(index); +} +inline ::oteldemo::Product* ListProductsResponse::_internal_add_products() { + return _impl_.products_.Add(); +} +inline ::oteldemo::Product* ListProductsResponse::add_products() { + ::oteldemo::Product* _add = _internal_add_products(); + // @@protoc_insertion_point(field_add:oteldemo.ListProductsResponse.products) + return _add; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Product >& +ListProductsResponse::products() const { + // @@protoc_insertion_point(field_list:oteldemo.ListProductsResponse.products) + return _impl_.products_; +} + +// ------------------------------------------------------------------- + +// GetProductRequest + +// string id = 1; +inline void GetProductRequest::clear_id() { + _impl_.id_.ClearToEmpty(); +} +inline const std::string& GetProductRequest::id() const { + // @@protoc_insertion_point(field_get:oteldemo.GetProductRequest.id) + return _internal_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void GetProductRequest::set_id(ArgT0&& arg0, ArgT... args) { + + _impl_.id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.GetProductRequest.id) +} +inline std::string* GetProductRequest::mutable_id() { + std::string* _s = _internal_mutable_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.GetProductRequest.id) + return _s; +} +inline const std::string& GetProductRequest::_internal_id() const { + return _impl_.id_.Get(); +} +inline void GetProductRequest::_internal_set_id(const std::string& value) { + + _impl_.id_.Set(value, GetArenaForAllocation()); +} +inline std::string* GetProductRequest::_internal_mutable_id() { + + return _impl_.id_.Mutable(GetArenaForAllocation()); +} +inline std::string* GetProductRequest::release_id() { + // @@protoc_insertion_point(field_release:oteldemo.GetProductRequest.id) + return _impl_.id_.Release(); +} +inline void GetProductRequest::set_allocated_id(std::string* id) { + if (id != nullptr) { + + } else { + + } + _impl_.id_.SetAllocated(id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.id_.IsDefault()) { + _impl_.id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.GetProductRequest.id) +} + +// ------------------------------------------------------------------- + +// SearchProductsRequest + +// string query = 1; +inline void SearchProductsRequest::clear_query() { + _impl_.query_.ClearToEmpty(); +} +inline const std::string& SearchProductsRequest::query() const { + // @@protoc_insertion_point(field_get:oteldemo.SearchProductsRequest.query) + return _internal_query(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void SearchProductsRequest::set_query(ArgT0&& arg0, ArgT... args) { + + _impl_.query_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.SearchProductsRequest.query) +} +inline std::string* SearchProductsRequest::mutable_query() { + std::string* _s = _internal_mutable_query(); + // @@protoc_insertion_point(field_mutable:oteldemo.SearchProductsRequest.query) + return _s; +} +inline const std::string& SearchProductsRequest::_internal_query() const { + return _impl_.query_.Get(); +} +inline void SearchProductsRequest::_internal_set_query(const std::string& value) { + + _impl_.query_.Set(value, GetArenaForAllocation()); +} +inline std::string* SearchProductsRequest::_internal_mutable_query() { + + return _impl_.query_.Mutable(GetArenaForAllocation()); +} +inline std::string* SearchProductsRequest::release_query() { + // @@protoc_insertion_point(field_release:oteldemo.SearchProductsRequest.query) + return _impl_.query_.Release(); +} +inline void SearchProductsRequest::set_allocated_query(std::string* query) { + if (query != nullptr) { + + } else { + + } + _impl_.query_.SetAllocated(query, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.query_.IsDefault()) { + _impl_.query_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.SearchProductsRequest.query) +} + +// ------------------------------------------------------------------- + +// SearchProductsResponse + +// repeated .oteldemo.Product results = 1; +inline int SearchProductsResponse::_internal_results_size() const { + return _impl_.results_.size(); +} +inline int SearchProductsResponse::results_size() const { + return _internal_results_size(); +} +inline void SearchProductsResponse::clear_results() { + _impl_.results_.Clear(); +} +inline ::oteldemo::Product* SearchProductsResponse::mutable_results(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.SearchProductsResponse.results) + return _impl_.results_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Product >* +SearchProductsResponse::mutable_results() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.SearchProductsResponse.results) + return &_impl_.results_; +} +inline const ::oteldemo::Product& SearchProductsResponse::_internal_results(int index) const { + return _impl_.results_.Get(index); +} +inline const ::oteldemo::Product& SearchProductsResponse::results(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.SearchProductsResponse.results) + return _internal_results(index); +} +inline ::oteldemo::Product* SearchProductsResponse::_internal_add_results() { + return _impl_.results_.Add(); +} +inline ::oteldemo::Product* SearchProductsResponse::add_results() { + ::oteldemo::Product* _add = _internal_add_results(); + // @@protoc_insertion_point(field_add:oteldemo.SearchProductsResponse.results) + return _add; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Product >& +SearchProductsResponse::results() const { + // @@protoc_insertion_point(field_list:oteldemo.SearchProductsResponse.results) + return _impl_.results_; +} + +// ------------------------------------------------------------------- + +// GetQuoteRequest + +// .oteldemo.Address address = 1; +inline bool GetQuoteRequest::_internal_has_address() const { + return this != internal_default_instance() && _impl_.address_ != nullptr; +} +inline bool GetQuoteRequest::has_address() const { + return _internal_has_address(); +} +inline void GetQuoteRequest::clear_address() { + if (GetArenaForAllocation() == nullptr && _impl_.address_ != nullptr) { + delete _impl_.address_; + } + _impl_.address_ = nullptr; +} +inline const ::oteldemo::Address& GetQuoteRequest::_internal_address() const { + const ::oteldemo::Address* p = _impl_.address_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Address_default_instance_); +} +inline const ::oteldemo::Address& GetQuoteRequest::address() const { + // @@protoc_insertion_point(field_get:oteldemo.GetQuoteRequest.address) + return _internal_address(); +} +inline void GetQuoteRequest::unsafe_arena_set_allocated_address( + ::oteldemo::Address* address) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.address_); + } + _impl_.address_ = address; + if (address) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.GetQuoteRequest.address) +} +inline ::oteldemo::Address* GetQuoteRequest::release_address() { + + ::oteldemo::Address* temp = _impl_.address_; + _impl_.address_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Address* GetQuoteRequest::unsafe_arena_release_address() { + // @@protoc_insertion_point(field_release:oteldemo.GetQuoteRequest.address) + + ::oteldemo::Address* temp = _impl_.address_; + _impl_.address_ = nullptr; + return temp; +} +inline ::oteldemo::Address* GetQuoteRequest::_internal_mutable_address() { + + if (_impl_.address_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Address>(GetArenaForAllocation()); + _impl_.address_ = p; + } + return _impl_.address_; +} +inline ::oteldemo::Address* GetQuoteRequest::mutable_address() { + ::oteldemo::Address* _msg = _internal_mutable_address(); + // @@protoc_insertion_point(field_mutable:oteldemo.GetQuoteRequest.address) + return _msg; +} +inline void GetQuoteRequest::set_allocated_address(::oteldemo::Address* address) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.address_; + } + if (address) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(address); + if (message_arena != submessage_arena) { + address = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, address, submessage_arena); + } + + } else { + + } + _impl_.address_ = address; + // @@protoc_insertion_point(field_set_allocated:oteldemo.GetQuoteRequest.address) +} + +// repeated .oteldemo.CartItem items = 2; +inline int GetQuoteRequest::_internal_items_size() const { + return _impl_.items_.size(); +} +inline int GetQuoteRequest::items_size() const { + return _internal_items_size(); +} +inline void GetQuoteRequest::clear_items() { + _impl_.items_.Clear(); +} +inline ::oteldemo::CartItem* GetQuoteRequest::mutable_items(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.GetQuoteRequest.items) + return _impl_.items_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >* +GetQuoteRequest::mutable_items() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.GetQuoteRequest.items) + return &_impl_.items_; +} +inline const ::oteldemo::CartItem& GetQuoteRequest::_internal_items(int index) const { + return _impl_.items_.Get(index); +} +inline const ::oteldemo::CartItem& GetQuoteRequest::items(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.GetQuoteRequest.items) + return _internal_items(index); +} +inline ::oteldemo::CartItem* GetQuoteRequest::_internal_add_items() { + return _impl_.items_.Add(); +} +inline ::oteldemo::CartItem* GetQuoteRequest::add_items() { + ::oteldemo::CartItem* _add = _internal_add_items(); + // @@protoc_insertion_point(field_add:oteldemo.GetQuoteRequest.items) + return _add; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >& +GetQuoteRequest::items() const { + // @@protoc_insertion_point(field_list:oteldemo.GetQuoteRequest.items) + return _impl_.items_; +} + +// ------------------------------------------------------------------- + +// GetQuoteResponse + +// .oteldemo.Money cost_usd = 1; +inline bool GetQuoteResponse::_internal_has_cost_usd() const { + return this != internal_default_instance() && _impl_.cost_usd_ != nullptr; +} +inline bool GetQuoteResponse::has_cost_usd() const { + return _internal_has_cost_usd(); +} +inline void GetQuoteResponse::clear_cost_usd() { + if (GetArenaForAllocation() == nullptr && _impl_.cost_usd_ != nullptr) { + delete _impl_.cost_usd_; + } + _impl_.cost_usd_ = nullptr; +} +inline const ::oteldemo::Money& GetQuoteResponse::_internal_cost_usd() const { + const ::oteldemo::Money* p = _impl_.cost_usd_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Money_default_instance_); +} +inline const ::oteldemo::Money& GetQuoteResponse::cost_usd() const { + // @@protoc_insertion_point(field_get:oteldemo.GetQuoteResponse.cost_usd) + return _internal_cost_usd(); +} +inline void GetQuoteResponse::unsafe_arena_set_allocated_cost_usd( + ::oteldemo::Money* cost_usd) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.cost_usd_); + } + _impl_.cost_usd_ = cost_usd; + if (cost_usd) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.GetQuoteResponse.cost_usd) +} +inline ::oteldemo::Money* GetQuoteResponse::release_cost_usd() { + + ::oteldemo::Money* temp = _impl_.cost_usd_; + _impl_.cost_usd_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Money* GetQuoteResponse::unsafe_arena_release_cost_usd() { + // @@protoc_insertion_point(field_release:oteldemo.GetQuoteResponse.cost_usd) + + ::oteldemo::Money* temp = _impl_.cost_usd_; + _impl_.cost_usd_ = nullptr; + return temp; +} +inline ::oteldemo::Money* GetQuoteResponse::_internal_mutable_cost_usd() { + + if (_impl_.cost_usd_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Money>(GetArenaForAllocation()); + _impl_.cost_usd_ = p; + } + return _impl_.cost_usd_; +} +inline ::oteldemo::Money* GetQuoteResponse::mutable_cost_usd() { + ::oteldemo::Money* _msg = _internal_mutable_cost_usd(); + // @@protoc_insertion_point(field_mutable:oteldemo.GetQuoteResponse.cost_usd) + return _msg; +} +inline void GetQuoteResponse::set_allocated_cost_usd(::oteldemo::Money* cost_usd) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.cost_usd_; + } + if (cost_usd) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(cost_usd); + if (message_arena != submessage_arena) { + cost_usd = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, cost_usd, submessage_arena); + } + + } else { + + } + _impl_.cost_usd_ = cost_usd; + // @@protoc_insertion_point(field_set_allocated:oteldemo.GetQuoteResponse.cost_usd) +} + +// ------------------------------------------------------------------- + +// ShipOrderRequest + +// .oteldemo.Address address = 1; +inline bool ShipOrderRequest::_internal_has_address() const { + return this != internal_default_instance() && _impl_.address_ != nullptr; +} +inline bool ShipOrderRequest::has_address() const { + return _internal_has_address(); +} +inline void ShipOrderRequest::clear_address() { + if (GetArenaForAllocation() == nullptr && _impl_.address_ != nullptr) { + delete _impl_.address_; + } + _impl_.address_ = nullptr; +} +inline const ::oteldemo::Address& ShipOrderRequest::_internal_address() const { + const ::oteldemo::Address* p = _impl_.address_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Address_default_instance_); +} +inline const ::oteldemo::Address& ShipOrderRequest::address() const { + // @@protoc_insertion_point(field_get:oteldemo.ShipOrderRequest.address) + return _internal_address(); +} +inline void ShipOrderRequest::unsafe_arena_set_allocated_address( + ::oteldemo::Address* address) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.address_); + } + _impl_.address_ = address; + if (address) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.ShipOrderRequest.address) +} +inline ::oteldemo::Address* ShipOrderRequest::release_address() { + + ::oteldemo::Address* temp = _impl_.address_; + _impl_.address_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Address* ShipOrderRequest::unsafe_arena_release_address() { + // @@protoc_insertion_point(field_release:oteldemo.ShipOrderRequest.address) + + ::oteldemo::Address* temp = _impl_.address_; + _impl_.address_ = nullptr; + return temp; +} +inline ::oteldemo::Address* ShipOrderRequest::_internal_mutable_address() { + + if (_impl_.address_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Address>(GetArenaForAllocation()); + _impl_.address_ = p; + } + return _impl_.address_; +} +inline ::oteldemo::Address* ShipOrderRequest::mutable_address() { + ::oteldemo::Address* _msg = _internal_mutable_address(); + // @@protoc_insertion_point(field_mutable:oteldemo.ShipOrderRequest.address) + return _msg; +} +inline void ShipOrderRequest::set_allocated_address(::oteldemo::Address* address) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.address_; + } + if (address) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(address); + if (message_arena != submessage_arena) { + address = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, address, submessage_arena); + } + + } else { + + } + _impl_.address_ = address; + // @@protoc_insertion_point(field_set_allocated:oteldemo.ShipOrderRequest.address) +} + +// repeated .oteldemo.CartItem items = 2; +inline int ShipOrderRequest::_internal_items_size() const { + return _impl_.items_.size(); +} +inline int ShipOrderRequest::items_size() const { + return _internal_items_size(); +} +inline void ShipOrderRequest::clear_items() { + _impl_.items_.Clear(); +} +inline ::oteldemo::CartItem* ShipOrderRequest::mutable_items(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.ShipOrderRequest.items) + return _impl_.items_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >* +ShipOrderRequest::mutable_items() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.ShipOrderRequest.items) + return &_impl_.items_; +} +inline const ::oteldemo::CartItem& ShipOrderRequest::_internal_items(int index) const { + return _impl_.items_.Get(index); +} +inline const ::oteldemo::CartItem& ShipOrderRequest::items(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.ShipOrderRequest.items) + return _internal_items(index); +} +inline ::oteldemo::CartItem* ShipOrderRequest::_internal_add_items() { + return _impl_.items_.Add(); +} +inline ::oteldemo::CartItem* ShipOrderRequest::add_items() { + ::oteldemo::CartItem* _add = _internal_add_items(); + // @@protoc_insertion_point(field_add:oteldemo.ShipOrderRequest.items) + return _add; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::CartItem >& +ShipOrderRequest::items() const { + // @@protoc_insertion_point(field_list:oteldemo.ShipOrderRequest.items) + return _impl_.items_; +} + +// ------------------------------------------------------------------- + +// ShipOrderResponse + +// string tracking_id = 1; +inline void ShipOrderResponse::clear_tracking_id() { + _impl_.tracking_id_.ClearToEmpty(); +} +inline const std::string& ShipOrderResponse::tracking_id() const { + // @@protoc_insertion_point(field_get:oteldemo.ShipOrderResponse.tracking_id) + return _internal_tracking_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void ShipOrderResponse::set_tracking_id(ArgT0&& arg0, ArgT... args) { + + _impl_.tracking_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.ShipOrderResponse.tracking_id) +} +inline std::string* ShipOrderResponse::mutable_tracking_id() { + std::string* _s = _internal_mutable_tracking_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.ShipOrderResponse.tracking_id) + return _s; +} +inline const std::string& ShipOrderResponse::_internal_tracking_id() const { + return _impl_.tracking_id_.Get(); +} +inline void ShipOrderResponse::_internal_set_tracking_id(const std::string& value) { + + _impl_.tracking_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* ShipOrderResponse::_internal_mutable_tracking_id() { + + return _impl_.tracking_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* ShipOrderResponse::release_tracking_id() { + // @@protoc_insertion_point(field_release:oteldemo.ShipOrderResponse.tracking_id) + return _impl_.tracking_id_.Release(); +} +inline void ShipOrderResponse::set_allocated_tracking_id(std::string* tracking_id) { + if (tracking_id != nullptr) { + + } else { + + } + _impl_.tracking_id_.SetAllocated(tracking_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.tracking_id_.IsDefault()) { + _impl_.tracking_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.ShipOrderResponse.tracking_id) +} + +// ------------------------------------------------------------------- + +// Address + +// string street_address = 1; +inline void Address::clear_street_address() { + _impl_.street_address_.ClearToEmpty(); +} +inline const std::string& Address::street_address() const { + // @@protoc_insertion_point(field_get:oteldemo.Address.street_address) + return _internal_street_address(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Address::set_street_address(ArgT0&& arg0, ArgT... args) { + + _impl_.street_address_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Address.street_address) +} +inline std::string* Address::mutable_street_address() { + std::string* _s = _internal_mutable_street_address(); + // @@protoc_insertion_point(field_mutable:oteldemo.Address.street_address) + return _s; +} +inline const std::string& Address::_internal_street_address() const { + return _impl_.street_address_.Get(); +} +inline void Address::_internal_set_street_address(const std::string& value) { + + _impl_.street_address_.Set(value, GetArenaForAllocation()); +} +inline std::string* Address::_internal_mutable_street_address() { + + return _impl_.street_address_.Mutable(GetArenaForAllocation()); +} +inline std::string* Address::release_street_address() { + // @@protoc_insertion_point(field_release:oteldemo.Address.street_address) + return _impl_.street_address_.Release(); +} +inline void Address::set_allocated_street_address(std::string* street_address) { + if (street_address != nullptr) { + + } else { + + } + _impl_.street_address_.SetAllocated(street_address, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.street_address_.IsDefault()) { + _impl_.street_address_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Address.street_address) +} + +// string city = 2; +inline void Address::clear_city() { + _impl_.city_.ClearToEmpty(); +} +inline const std::string& Address::city() const { + // @@protoc_insertion_point(field_get:oteldemo.Address.city) + return _internal_city(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Address::set_city(ArgT0&& arg0, ArgT... args) { + + _impl_.city_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Address.city) +} +inline std::string* Address::mutable_city() { + std::string* _s = _internal_mutable_city(); + // @@protoc_insertion_point(field_mutable:oteldemo.Address.city) + return _s; +} +inline const std::string& Address::_internal_city() const { + return _impl_.city_.Get(); +} +inline void Address::_internal_set_city(const std::string& value) { + + _impl_.city_.Set(value, GetArenaForAllocation()); +} +inline std::string* Address::_internal_mutable_city() { + + return _impl_.city_.Mutable(GetArenaForAllocation()); +} +inline std::string* Address::release_city() { + // @@protoc_insertion_point(field_release:oteldemo.Address.city) + return _impl_.city_.Release(); +} +inline void Address::set_allocated_city(std::string* city) { + if (city != nullptr) { + + } else { + + } + _impl_.city_.SetAllocated(city, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.city_.IsDefault()) { + _impl_.city_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Address.city) +} + +// string state = 3; +inline void Address::clear_state() { + _impl_.state_.ClearToEmpty(); +} +inline const std::string& Address::state() const { + // @@protoc_insertion_point(field_get:oteldemo.Address.state) + return _internal_state(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Address::set_state(ArgT0&& arg0, ArgT... args) { + + _impl_.state_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Address.state) +} +inline std::string* Address::mutable_state() { + std::string* _s = _internal_mutable_state(); + // @@protoc_insertion_point(field_mutable:oteldemo.Address.state) + return _s; +} +inline const std::string& Address::_internal_state() const { + return _impl_.state_.Get(); +} +inline void Address::_internal_set_state(const std::string& value) { + + _impl_.state_.Set(value, GetArenaForAllocation()); +} +inline std::string* Address::_internal_mutable_state() { + + return _impl_.state_.Mutable(GetArenaForAllocation()); +} +inline std::string* Address::release_state() { + // @@protoc_insertion_point(field_release:oteldemo.Address.state) + return _impl_.state_.Release(); +} +inline void Address::set_allocated_state(std::string* state) { + if (state != nullptr) { + + } else { + + } + _impl_.state_.SetAllocated(state, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.state_.IsDefault()) { + _impl_.state_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Address.state) +} + +// string country = 4; +inline void Address::clear_country() { + _impl_.country_.ClearToEmpty(); +} +inline const std::string& Address::country() const { + // @@protoc_insertion_point(field_get:oteldemo.Address.country) + return _internal_country(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Address::set_country(ArgT0&& arg0, ArgT... args) { + + _impl_.country_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Address.country) +} +inline std::string* Address::mutable_country() { + std::string* _s = _internal_mutable_country(); + // @@protoc_insertion_point(field_mutable:oteldemo.Address.country) + return _s; +} +inline const std::string& Address::_internal_country() const { + return _impl_.country_.Get(); +} +inline void Address::_internal_set_country(const std::string& value) { + + _impl_.country_.Set(value, GetArenaForAllocation()); +} +inline std::string* Address::_internal_mutable_country() { + + return _impl_.country_.Mutable(GetArenaForAllocation()); +} +inline std::string* Address::release_country() { + // @@protoc_insertion_point(field_release:oteldemo.Address.country) + return _impl_.country_.Release(); +} +inline void Address::set_allocated_country(std::string* country) { + if (country != nullptr) { + + } else { + + } + _impl_.country_.SetAllocated(country, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.country_.IsDefault()) { + _impl_.country_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Address.country) +} + +// string zip_code = 5; +inline void Address::clear_zip_code() { + _impl_.zip_code_.ClearToEmpty(); +} +inline const std::string& Address::zip_code() const { + // @@protoc_insertion_point(field_get:oteldemo.Address.zip_code) + return _internal_zip_code(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Address::set_zip_code(ArgT0&& arg0, ArgT... args) { + + _impl_.zip_code_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Address.zip_code) +} +inline std::string* Address::mutable_zip_code() { + std::string* _s = _internal_mutable_zip_code(); + // @@protoc_insertion_point(field_mutable:oteldemo.Address.zip_code) + return _s; +} +inline const std::string& Address::_internal_zip_code() const { + return _impl_.zip_code_.Get(); +} +inline void Address::_internal_set_zip_code(const std::string& value) { + + _impl_.zip_code_.Set(value, GetArenaForAllocation()); +} +inline std::string* Address::_internal_mutable_zip_code() { + + return _impl_.zip_code_.Mutable(GetArenaForAllocation()); +} +inline std::string* Address::release_zip_code() { + // @@protoc_insertion_point(field_release:oteldemo.Address.zip_code) + return _impl_.zip_code_.Release(); +} +inline void Address::set_allocated_zip_code(std::string* zip_code) { + if (zip_code != nullptr) { + + } else { + + } + _impl_.zip_code_.SetAllocated(zip_code, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.zip_code_.IsDefault()) { + _impl_.zip_code_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Address.zip_code) +} + +// ------------------------------------------------------------------- + +// Money + +// string currency_code = 1; +inline void Money::clear_currency_code() { + _impl_.currency_code_.ClearToEmpty(); +} +inline const std::string& Money::currency_code() const { + // @@protoc_insertion_point(field_get:oteldemo.Money.currency_code) + return _internal_currency_code(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Money::set_currency_code(ArgT0&& arg0, ArgT... args) { + + _impl_.currency_code_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Money.currency_code) +} +inline std::string* Money::mutable_currency_code() { + std::string* _s = _internal_mutable_currency_code(); + // @@protoc_insertion_point(field_mutable:oteldemo.Money.currency_code) + return _s; +} +inline const std::string& Money::_internal_currency_code() const { + return _impl_.currency_code_.Get(); +} +inline void Money::_internal_set_currency_code(const std::string& value) { + + _impl_.currency_code_.Set(value, GetArenaForAllocation()); +} +inline std::string* Money::_internal_mutable_currency_code() { + + return _impl_.currency_code_.Mutable(GetArenaForAllocation()); +} +inline std::string* Money::release_currency_code() { + // @@protoc_insertion_point(field_release:oteldemo.Money.currency_code) + return _impl_.currency_code_.Release(); +} +inline void Money::set_allocated_currency_code(std::string* currency_code) { + if (currency_code != nullptr) { + + } else { + + } + _impl_.currency_code_.SetAllocated(currency_code, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.currency_code_.IsDefault()) { + _impl_.currency_code_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Money.currency_code) +} + +// int64 units = 2; +inline void Money::clear_units() { + _impl_.units_ = int64_t{0}; +} +inline int64_t Money::_internal_units() const { + return _impl_.units_; +} +inline int64_t Money::units() const { + // @@protoc_insertion_point(field_get:oteldemo.Money.units) + return _internal_units(); +} +inline void Money::_internal_set_units(int64_t value) { + + _impl_.units_ = value; +} +inline void Money::set_units(int64_t value) { + _internal_set_units(value); + // @@protoc_insertion_point(field_set:oteldemo.Money.units) +} + +// int32 nanos = 3; +inline void Money::clear_nanos() { + _impl_.nanos_ = 0; +} +inline int32_t Money::_internal_nanos() const { + return _impl_.nanos_; +} +inline int32_t Money::nanos() const { + // @@protoc_insertion_point(field_get:oteldemo.Money.nanos) + return _internal_nanos(); +} +inline void Money::_internal_set_nanos(int32_t value) { + + _impl_.nanos_ = value; +} +inline void Money::set_nanos(int32_t value) { + _internal_set_nanos(value); + // @@protoc_insertion_point(field_set:oteldemo.Money.nanos) +} + +// ------------------------------------------------------------------- + +// GetSupportedCurrenciesResponse + +// repeated string currency_codes = 1; +inline int GetSupportedCurrenciesResponse::_internal_currency_codes_size() const { + return _impl_.currency_codes_.size(); +} +inline int GetSupportedCurrenciesResponse::currency_codes_size() const { + return _internal_currency_codes_size(); +} +inline void GetSupportedCurrenciesResponse::clear_currency_codes() { + _impl_.currency_codes_.Clear(); +} +inline std::string* GetSupportedCurrenciesResponse::add_currency_codes() { + std::string* _s = _internal_add_currency_codes(); + // @@protoc_insertion_point(field_add_mutable:oteldemo.GetSupportedCurrenciesResponse.currency_codes) + return _s; +} +inline const std::string& GetSupportedCurrenciesResponse::_internal_currency_codes(int index) const { + return _impl_.currency_codes_.Get(index); +} +inline const std::string& GetSupportedCurrenciesResponse::currency_codes(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.GetSupportedCurrenciesResponse.currency_codes) + return _internal_currency_codes(index); +} +inline std::string* GetSupportedCurrenciesResponse::mutable_currency_codes(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.GetSupportedCurrenciesResponse.currency_codes) + return _impl_.currency_codes_.Mutable(index); +} +inline void GetSupportedCurrenciesResponse::set_currency_codes(int index, const std::string& value) { + _impl_.currency_codes_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set:oteldemo.GetSupportedCurrenciesResponse.currency_codes) +} +inline void GetSupportedCurrenciesResponse::set_currency_codes(int index, std::string&& value) { + _impl_.currency_codes_.Mutable(index)->assign(std::move(value)); + // @@protoc_insertion_point(field_set:oteldemo.GetSupportedCurrenciesResponse.currency_codes) +} +inline void GetSupportedCurrenciesResponse::set_currency_codes(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.currency_codes_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:oteldemo.GetSupportedCurrenciesResponse.currency_codes) +} +inline void GetSupportedCurrenciesResponse::set_currency_codes(int index, const char* value, size_t size) { + _impl_.currency_codes_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:oteldemo.GetSupportedCurrenciesResponse.currency_codes) +} +inline std::string* GetSupportedCurrenciesResponse::_internal_add_currency_codes() { + return _impl_.currency_codes_.Add(); +} +inline void GetSupportedCurrenciesResponse::add_currency_codes(const std::string& value) { + _impl_.currency_codes_.Add()->assign(value); + // @@protoc_insertion_point(field_add:oteldemo.GetSupportedCurrenciesResponse.currency_codes) +} +inline void GetSupportedCurrenciesResponse::add_currency_codes(std::string&& value) { + _impl_.currency_codes_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:oteldemo.GetSupportedCurrenciesResponse.currency_codes) +} +inline void GetSupportedCurrenciesResponse::add_currency_codes(const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.currency_codes_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:oteldemo.GetSupportedCurrenciesResponse.currency_codes) +} +inline void GetSupportedCurrenciesResponse::add_currency_codes(const char* value, size_t size) { + _impl_.currency_codes_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:oteldemo.GetSupportedCurrenciesResponse.currency_codes) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& +GetSupportedCurrenciesResponse::currency_codes() const { + // @@protoc_insertion_point(field_list:oteldemo.GetSupportedCurrenciesResponse.currency_codes) + return _impl_.currency_codes_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* +GetSupportedCurrenciesResponse::mutable_currency_codes() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.GetSupportedCurrenciesResponse.currency_codes) + return &_impl_.currency_codes_; +} + +// ------------------------------------------------------------------- + +// CurrencyConversionRequest + +// .oteldemo.Money from = 1; +inline bool CurrencyConversionRequest::_internal_has_from() const { + return this != internal_default_instance() && _impl_.from_ != nullptr; +} +inline bool CurrencyConversionRequest::has_from() const { + return _internal_has_from(); +} +inline void CurrencyConversionRequest::clear_from() { + if (GetArenaForAllocation() == nullptr && _impl_.from_ != nullptr) { + delete _impl_.from_; + } + _impl_.from_ = nullptr; +} +inline const ::oteldemo::Money& CurrencyConversionRequest::_internal_from() const { + const ::oteldemo::Money* p = _impl_.from_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Money_default_instance_); +} +inline const ::oteldemo::Money& CurrencyConversionRequest::from() const { + // @@protoc_insertion_point(field_get:oteldemo.CurrencyConversionRequest.from) + return _internal_from(); +} +inline void CurrencyConversionRequest::unsafe_arena_set_allocated_from( + ::oteldemo::Money* from) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.from_); + } + _impl_.from_ = from; + if (from) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.CurrencyConversionRequest.from) +} +inline ::oteldemo::Money* CurrencyConversionRequest::release_from() { + + ::oteldemo::Money* temp = _impl_.from_; + _impl_.from_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Money* CurrencyConversionRequest::unsafe_arena_release_from() { + // @@protoc_insertion_point(field_release:oteldemo.CurrencyConversionRequest.from) + + ::oteldemo::Money* temp = _impl_.from_; + _impl_.from_ = nullptr; + return temp; +} +inline ::oteldemo::Money* CurrencyConversionRequest::_internal_mutable_from() { + + if (_impl_.from_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Money>(GetArenaForAllocation()); + _impl_.from_ = p; + } + return _impl_.from_; +} +inline ::oteldemo::Money* CurrencyConversionRequest::mutable_from() { + ::oteldemo::Money* _msg = _internal_mutable_from(); + // @@protoc_insertion_point(field_mutable:oteldemo.CurrencyConversionRequest.from) + return _msg; +} +inline void CurrencyConversionRequest::set_allocated_from(::oteldemo::Money* from) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.from_; + } + if (from) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(from); + if (message_arena != submessage_arena) { + from = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, from, submessage_arena); + } + + } else { + + } + _impl_.from_ = from; + // @@protoc_insertion_point(field_set_allocated:oteldemo.CurrencyConversionRequest.from) +} + +// string to_code = 2; +inline void CurrencyConversionRequest::clear_to_code() { + _impl_.to_code_.ClearToEmpty(); +} +inline const std::string& CurrencyConversionRequest::to_code() const { + // @@protoc_insertion_point(field_get:oteldemo.CurrencyConversionRequest.to_code) + return _internal_to_code(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void CurrencyConversionRequest::set_to_code(ArgT0&& arg0, ArgT... args) { + + _impl_.to_code_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.CurrencyConversionRequest.to_code) +} +inline std::string* CurrencyConversionRequest::mutable_to_code() { + std::string* _s = _internal_mutable_to_code(); + // @@protoc_insertion_point(field_mutable:oteldemo.CurrencyConversionRequest.to_code) + return _s; +} +inline const std::string& CurrencyConversionRequest::_internal_to_code() const { + return _impl_.to_code_.Get(); +} +inline void CurrencyConversionRequest::_internal_set_to_code(const std::string& value) { + + _impl_.to_code_.Set(value, GetArenaForAllocation()); +} +inline std::string* CurrencyConversionRequest::_internal_mutable_to_code() { + + return _impl_.to_code_.Mutable(GetArenaForAllocation()); +} +inline std::string* CurrencyConversionRequest::release_to_code() { + // @@protoc_insertion_point(field_release:oteldemo.CurrencyConversionRequest.to_code) + return _impl_.to_code_.Release(); +} +inline void CurrencyConversionRequest::set_allocated_to_code(std::string* to_code) { + if (to_code != nullptr) { + + } else { + + } + _impl_.to_code_.SetAllocated(to_code, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.to_code_.IsDefault()) { + _impl_.to_code_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.CurrencyConversionRequest.to_code) +} + +// ------------------------------------------------------------------- + +// CreditCardInfo + +// string credit_card_number = 1; +inline void CreditCardInfo::clear_credit_card_number() { + _impl_.credit_card_number_.ClearToEmpty(); +} +inline const std::string& CreditCardInfo::credit_card_number() const { + // @@protoc_insertion_point(field_get:oteldemo.CreditCardInfo.credit_card_number) + return _internal_credit_card_number(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void CreditCardInfo::set_credit_card_number(ArgT0&& arg0, ArgT... args) { + + _impl_.credit_card_number_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.CreditCardInfo.credit_card_number) +} +inline std::string* CreditCardInfo::mutable_credit_card_number() { + std::string* _s = _internal_mutable_credit_card_number(); + // @@protoc_insertion_point(field_mutable:oteldemo.CreditCardInfo.credit_card_number) + return _s; +} +inline const std::string& CreditCardInfo::_internal_credit_card_number() const { + return _impl_.credit_card_number_.Get(); +} +inline void CreditCardInfo::_internal_set_credit_card_number(const std::string& value) { + + _impl_.credit_card_number_.Set(value, GetArenaForAllocation()); +} +inline std::string* CreditCardInfo::_internal_mutable_credit_card_number() { + + return _impl_.credit_card_number_.Mutable(GetArenaForAllocation()); +} +inline std::string* CreditCardInfo::release_credit_card_number() { + // @@protoc_insertion_point(field_release:oteldemo.CreditCardInfo.credit_card_number) + return _impl_.credit_card_number_.Release(); +} +inline void CreditCardInfo::set_allocated_credit_card_number(std::string* credit_card_number) { + if (credit_card_number != nullptr) { + + } else { + + } + _impl_.credit_card_number_.SetAllocated(credit_card_number, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.credit_card_number_.IsDefault()) { + _impl_.credit_card_number_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.CreditCardInfo.credit_card_number) +} + +// int32 credit_card_cvv = 2; +inline void CreditCardInfo::clear_credit_card_cvv() { + _impl_.credit_card_cvv_ = 0; +} +inline int32_t CreditCardInfo::_internal_credit_card_cvv() const { + return _impl_.credit_card_cvv_; +} +inline int32_t CreditCardInfo::credit_card_cvv() const { + // @@protoc_insertion_point(field_get:oteldemo.CreditCardInfo.credit_card_cvv) + return _internal_credit_card_cvv(); +} +inline void CreditCardInfo::_internal_set_credit_card_cvv(int32_t value) { + + _impl_.credit_card_cvv_ = value; +} +inline void CreditCardInfo::set_credit_card_cvv(int32_t value) { + _internal_set_credit_card_cvv(value); + // @@protoc_insertion_point(field_set:oteldemo.CreditCardInfo.credit_card_cvv) +} + +// int32 credit_card_expiration_year = 3; +inline void CreditCardInfo::clear_credit_card_expiration_year() { + _impl_.credit_card_expiration_year_ = 0; +} +inline int32_t CreditCardInfo::_internal_credit_card_expiration_year() const { + return _impl_.credit_card_expiration_year_; +} +inline int32_t CreditCardInfo::credit_card_expiration_year() const { + // @@protoc_insertion_point(field_get:oteldemo.CreditCardInfo.credit_card_expiration_year) + return _internal_credit_card_expiration_year(); +} +inline void CreditCardInfo::_internal_set_credit_card_expiration_year(int32_t value) { + + _impl_.credit_card_expiration_year_ = value; +} +inline void CreditCardInfo::set_credit_card_expiration_year(int32_t value) { + _internal_set_credit_card_expiration_year(value); + // @@protoc_insertion_point(field_set:oteldemo.CreditCardInfo.credit_card_expiration_year) +} + +// int32 credit_card_expiration_month = 4; +inline void CreditCardInfo::clear_credit_card_expiration_month() { + _impl_.credit_card_expiration_month_ = 0; +} +inline int32_t CreditCardInfo::_internal_credit_card_expiration_month() const { + return _impl_.credit_card_expiration_month_; +} +inline int32_t CreditCardInfo::credit_card_expiration_month() const { + // @@protoc_insertion_point(field_get:oteldemo.CreditCardInfo.credit_card_expiration_month) + return _internal_credit_card_expiration_month(); +} +inline void CreditCardInfo::_internal_set_credit_card_expiration_month(int32_t value) { + + _impl_.credit_card_expiration_month_ = value; +} +inline void CreditCardInfo::set_credit_card_expiration_month(int32_t value) { + _internal_set_credit_card_expiration_month(value); + // @@protoc_insertion_point(field_set:oteldemo.CreditCardInfo.credit_card_expiration_month) +} + +// ------------------------------------------------------------------- + +// ChargeRequest + +// .oteldemo.Money amount = 1; +inline bool ChargeRequest::_internal_has_amount() const { + return this != internal_default_instance() && _impl_.amount_ != nullptr; +} +inline bool ChargeRequest::has_amount() const { + return _internal_has_amount(); +} +inline void ChargeRequest::clear_amount() { + if (GetArenaForAllocation() == nullptr && _impl_.amount_ != nullptr) { + delete _impl_.amount_; + } + _impl_.amount_ = nullptr; +} +inline const ::oteldemo::Money& ChargeRequest::_internal_amount() const { + const ::oteldemo::Money* p = _impl_.amount_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Money_default_instance_); +} +inline const ::oteldemo::Money& ChargeRequest::amount() const { + // @@protoc_insertion_point(field_get:oteldemo.ChargeRequest.amount) + return _internal_amount(); +} +inline void ChargeRequest::unsafe_arena_set_allocated_amount( + ::oteldemo::Money* amount) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.amount_); + } + _impl_.amount_ = amount; + if (amount) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.ChargeRequest.amount) +} +inline ::oteldemo::Money* ChargeRequest::release_amount() { + + ::oteldemo::Money* temp = _impl_.amount_; + _impl_.amount_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Money* ChargeRequest::unsafe_arena_release_amount() { + // @@protoc_insertion_point(field_release:oteldemo.ChargeRequest.amount) + + ::oteldemo::Money* temp = _impl_.amount_; + _impl_.amount_ = nullptr; + return temp; +} +inline ::oteldemo::Money* ChargeRequest::_internal_mutable_amount() { + + if (_impl_.amount_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Money>(GetArenaForAllocation()); + _impl_.amount_ = p; + } + return _impl_.amount_; +} +inline ::oteldemo::Money* ChargeRequest::mutable_amount() { + ::oteldemo::Money* _msg = _internal_mutable_amount(); + // @@protoc_insertion_point(field_mutable:oteldemo.ChargeRequest.amount) + return _msg; +} +inline void ChargeRequest::set_allocated_amount(::oteldemo::Money* amount) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.amount_; + } + if (amount) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(amount); + if (message_arena != submessage_arena) { + amount = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, amount, submessage_arena); + } + + } else { + + } + _impl_.amount_ = amount; + // @@protoc_insertion_point(field_set_allocated:oteldemo.ChargeRequest.amount) +} + +// .oteldemo.CreditCardInfo credit_card = 2; +inline bool ChargeRequest::_internal_has_credit_card() const { + return this != internal_default_instance() && _impl_.credit_card_ != nullptr; +} +inline bool ChargeRequest::has_credit_card() const { + return _internal_has_credit_card(); +} +inline void ChargeRequest::clear_credit_card() { + if (GetArenaForAllocation() == nullptr && _impl_.credit_card_ != nullptr) { + delete _impl_.credit_card_; + } + _impl_.credit_card_ = nullptr; +} +inline const ::oteldemo::CreditCardInfo& ChargeRequest::_internal_credit_card() const { + const ::oteldemo::CreditCardInfo* p = _impl_.credit_card_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_CreditCardInfo_default_instance_); +} +inline const ::oteldemo::CreditCardInfo& ChargeRequest::credit_card() const { + // @@protoc_insertion_point(field_get:oteldemo.ChargeRequest.credit_card) + return _internal_credit_card(); +} +inline void ChargeRequest::unsafe_arena_set_allocated_credit_card( + ::oteldemo::CreditCardInfo* credit_card) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.credit_card_); + } + _impl_.credit_card_ = credit_card; + if (credit_card) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.ChargeRequest.credit_card) +} +inline ::oteldemo::CreditCardInfo* ChargeRequest::release_credit_card() { + + ::oteldemo::CreditCardInfo* temp = _impl_.credit_card_; + _impl_.credit_card_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::CreditCardInfo* ChargeRequest::unsafe_arena_release_credit_card() { + // @@protoc_insertion_point(field_release:oteldemo.ChargeRequest.credit_card) + + ::oteldemo::CreditCardInfo* temp = _impl_.credit_card_; + _impl_.credit_card_ = nullptr; + return temp; +} +inline ::oteldemo::CreditCardInfo* ChargeRequest::_internal_mutable_credit_card() { + + if (_impl_.credit_card_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::CreditCardInfo>(GetArenaForAllocation()); + _impl_.credit_card_ = p; + } + return _impl_.credit_card_; +} +inline ::oteldemo::CreditCardInfo* ChargeRequest::mutable_credit_card() { + ::oteldemo::CreditCardInfo* _msg = _internal_mutable_credit_card(); + // @@protoc_insertion_point(field_mutable:oteldemo.ChargeRequest.credit_card) + return _msg; +} +inline void ChargeRequest::set_allocated_credit_card(::oteldemo::CreditCardInfo* credit_card) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.credit_card_; + } + if (credit_card) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(credit_card); + if (message_arena != submessage_arena) { + credit_card = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, credit_card, submessage_arena); + } + + } else { + + } + _impl_.credit_card_ = credit_card; + // @@protoc_insertion_point(field_set_allocated:oteldemo.ChargeRequest.credit_card) +} + +// ------------------------------------------------------------------- + +// ChargeResponse + +// string transaction_id = 1; +inline void ChargeResponse::clear_transaction_id() { + _impl_.transaction_id_.ClearToEmpty(); +} +inline const std::string& ChargeResponse::transaction_id() const { + // @@protoc_insertion_point(field_get:oteldemo.ChargeResponse.transaction_id) + return _internal_transaction_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void ChargeResponse::set_transaction_id(ArgT0&& arg0, ArgT... args) { + + _impl_.transaction_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.ChargeResponse.transaction_id) +} +inline std::string* ChargeResponse::mutable_transaction_id() { + std::string* _s = _internal_mutable_transaction_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.ChargeResponse.transaction_id) + return _s; +} +inline const std::string& ChargeResponse::_internal_transaction_id() const { + return _impl_.transaction_id_.Get(); +} +inline void ChargeResponse::_internal_set_transaction_id(const std::string& value) { + + _impl_.transaction_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* ChargeResponse::_internal_mutable_transaction_id() { + + return _impl_.transaction_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* ChargeResponse::release_transaction_id() { + // @@protoc_insertion_point(field_release:oteldemo.ChargeResponse.transaction_id) + return _impl_.transaction_id_.Release(); +} +inline void ChargeResponse::set_allocated_transaction_id(std::string* transaction_id) { + if (transaction_id != nullptr) { + + } else { + + } + _impl_.transaction_id_.SetAllocated(transaction_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.transaction_id_.IsDefault()) { + _impl_.transaction_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.ChargeResponse.transaction_id) +} + +// ------------------------------------------------------------------- + +// OrderItem + +// .oteldemo.CartItem item = 1; +inline bool OrderItem::_internal_has_item() const { + return this != internal_default_instance() && _impl_.item_ != nullptr; +} +inline bool OrderItem::has_item() const { + return _internal_has_item(); +} +inline void OrderItem::clear_item() { + if (GetArenaForAllocation() == nullptr && _impl_.item_ != nullptr) { + delete _impl_.item_; + } + _impl_.item_ = nullptr; +} +inline const ::oteldemo::CartItem& OrderItem::_internal_item() const { + const ::oteldemo::CartItem* p = _impl_.item_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_CartItem_default_instance_); +} +inline const ::oteldemo::CartItem& OrderItem::item() const { + // @@protoc_insertion_point(field_get:oteldemo.OrderItem.item) + return _internal_item(); +} +inline void OrderItem::unsafe_arena_set_allocated_item( + ::oteldemo::CartItem* item) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.item_); + } + _impl_.item_ = item; + if (item) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.OrderItem.item) +} +inline ::oteldemo::CartItem* OrderItem::release_item() { + + ::oteldemo::CartItem* temp = _impl_.item_; + _impl_.item_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::CartItem* OrderItem::unsafe_arena_release_item() { + // @@protoc_insertion_point(field_release:oteldemo.OrderItem.item) + + ::oteldemo::CartItem* temp = _impl_.item_; + _impl_.item_ = nullptr; + return temp; +} +inline ::oteldemo::CartItem* OrderItem::_internal_mutable_item() { + + if (_impl_.item_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::CartItem>(GetArenaForAllocation()); + _impl_.item_ = p; + } + return _impl_.item_; +} +inline ::oteldemo::CartItem* OrderItem::mutable_item() { + ::oteldemo::CartItem* _msg = _internal_mutable_item(); + // @@protoc_insertion_point(field_mutable:oteldemo.OrderItem.item) + return _msg; +} +inline void OrderItem::set_allocated_item(::oteldemo::CartItem* item) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.item_; + } + if (item) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(item); + if (message_arena != submessage_arena) { + item = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, item, submessage_arena); + } + + } else { + + } + _impl_.item_ = item; + // @@protoc_insertion_point(field_set_allocated:oteldemo.OrderItem.item) +} + +// .oteldemo.Money cost = 2; +inline bool OrderItem::_internal_has_cost() const { + return this != internal_default_instance() && _impl_.cost_ != nullptr; +} +inline bool OrderItem::has_cost() const { + return _internal_has_cost(); +} +inline void OrderItem::clear_cost() { + if (GetArenaForAllocation() == nullptr && _impl_.cost_ != nullptr) { + delete _impl_.cost_; + } + _impl_.cost_ = nullptr; +} +inline const ::oteldemo::Money& OrderItem::_internal_cost() const { + const ::oteldemo::Money* p = _impl_.cost_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Money_default_instance_); +} +inline const ::oteldemo::Money& OrderItem::cost() const { + // @@protoc_insertion_point(field_get:oteldemo.OrderItem.cost) + return _internal_cost(); +} +inline void OrderItem::unsafe_arena_set_allocated_cost( + ::oteldemo::Money* cost) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.cost_); + } + _impl_.cost_ = cost; + if (cost) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.OrderItem.cost) +} +inline ::oteldemo::Money* OrderItem::release_cost() { + + ::oteldemo::Money* temp = _impl_.cost_; + _impl_.cost_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Money* OrderItem::unsafe_arena_release_cost() { + // @@protoc_insertion_point(field_release:oteldemo.OrderItem.cost) + + ::oteldemo::Money* temp = _impl_.cost_; + _impl_.cost_ = nullptr; + return temp; +} +inline ::oteldemo::Money* OrderItem::_internal_mutable_cost() { + + if (_impl_.cost_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Money>(GetArenaForAllocation()); + _impl_.cost_ = p; + } + return _impl_.cost_; +} +inline ::oteldemo::Money* OrderItem::mutable_cost() { + ::oteldemo::Money* _msg = _internal_mutable_cost(); + // @@protoc_insertion_point(field_mutable:oteldemo.OrderItem.cost) + return _msg; +} +inline void OrderItem::set_allocated_cost(::oteldemo::Money* cost) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.cost_; + } + if (cost) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(cost); + if (message_arena != submessage_arena) { + cost = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, cost, submessage_arena); + } + + } else { + + } + _impl_.cost_ = cost; + // @@protoc_insertion_point(field_set_allocated:oteldemo.OrderItem.cost) +} + +// ------------------------------------------------------------------- + +// OrderResult + +// string order_id = 1; +inline void OrderResult::clear_order_id() { + _impl_.order_id_.ClearToEmpty(); +} +inline const std::string& OrderResult::order_id() const { + // @@protoc_insertion_point(field_get:oteldemo.OrderResult.order_id) + return _internal_order_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void OrderResult::set_order_id(ArgT0&& arg0, ArgT... args) { + + _impl_.order_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.OrderResult.order_id) +} +inline std::string* OrderResult::mutable_order_id() { + std::string* _s = _internal_mutable_order_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.OrderResult.order_id) + return _s; +} +inline const std::string& OrderResult::_internal_order_id() const { + return _impl_.order_id_.Get(); +} +inline void OrderResult::_internal_set_order_id(const std::string& value) { + + _impl_.order_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* OrderResult::_internal_mutable_order_id() { + + return _impl_.order_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* OrderResult::release_order_id() { + // @@protoc_insertion_point(field_release:oteldemo.OrderResult.order_id) + return _impl_.order_id_.Release(); +} +inline void OrderResult::set_allocated_order_id(std::string* order_id) { + if (order_id != nullptr) { + + } else { + + } + _impl_.order_id_.SetAllocated(order_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.order_id_.IsDefault()) { + _impl_.order_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.OrderResult.order_id) +} + +// string shipping_tracking_id = 2; +inline void OrderResult::clear_shipping_tracking_id() { + _impl_.shipping_tracking_id_.ClearToEmpty(); +} +inline const std::string& OrderResult::shipping_tracking_id() const { + // @@protoc_insertion_point(field_get:oteldemo.OrderResult.shipping_tracking_id) + return _internal_shipping_tracking_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void OrderResult::set_shipping_tracking_id(ArgT0&& arg0, ArgT... args) { + + _impl_.shipping_tracking_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.OrderResult.shipping_tracking_id) +} +inline std::string* OrderResult::mutable_shipping_tracking_id() { + std::string* _s = _internal_mutable_shipping_tracking_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.OrderResult.shipping_tracking_id) + return _s; +} +inline const std::string& OrderResult::_internal_shipping_tracking_id() const { + return _impl_.shipping_tracking_id_.Get(); +} +inline void OrderResult::_internal_set_shipping_tracking_id(const std::string& value) { + + _impl_.shipping_tracking_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* OrderResult::_internal_mutable_shipping_tracking_id() { + + return _impl_.shipping_tracking_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* OrderResult::release_shipping_tracking_id() { + // @@protoc_insertion_point(field_release:oteldemo.OrderResult.shipping_tracking_id) + return _impl_.shipping_tracking_id_.Release(); +} +inline void OrderResult::set_allocated_shipping_tracking_id(std::string* shipping_tracking_id) { + if (shipping_tracking_id != nullptr) { + + } else { + + } + _impl_.shipping_tracking_id_.SetAllocated(shipping_tracking_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.shipping_tracking_id_.IsDefault()) { + _impl_.shipping_tracking_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.OrderResult.shipping_tracking_id) +} + +// .oteldemo.Money shipping_cost = 3; +inline bool OrderResult::_internal_has_shipping_cost() const { + return this != internal_default_instance() && _impl_.shipping_cost_ != nullptr; +} +inline bool OrderResult::has_shipping_cost() const { + return _internal_has_shipping_cost(); +} +inline void OrderResult::clear_shipping_cost() { + if (GetArenaForAllocation() == nullptr && _impl_.shipping_cost_ != nullptr) { + delete _impl_.shipping_cost_; + } + _impl_.shipping_cost_ = nullptr; +} +inline const ::oteldemo::Money& OrderResult::_internal_shipping_cost() const { + const ::oteldemo::Money* p = _impl_.shipping_cost_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Money_default_instance_); +} +inline const ::oteldemo::Money& OrderResult::shipping_cost() const { + // @@protoc_insertion_point(field_get:oteldemo.OrderResult.shipping_cost) + return _internal_shipping_cost(); +} +inline void OrderResult::unsafe_arena_set_allocated_shipping_cost( + ::oteldemo::Money* shipping_cost) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.shipping_cost_); + } + _impl_.shipping_cost_ = shipping_cost; + if (shipping_cost) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.OrderResult.shipping_cost) +} +inline ::oteldemo::Money* OrderResult::release_shipping_cost() { + + ::oteldemo::Money* temp = _impl_.shipping_cost_; + _impl_.shipping_cost_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Money* OrderResult::unsafe_arena_release_shipping_cost() { + // @@protoc_insertion_point(field_release:oteldemo.OrderResult.shipping_cost) + + ::oteldemo::Money* temp = _impl_.shipping_cost_; + _impl_.shipping_cost_ = nullptr; + return temp; +} +inline ::oteldemo::Money* OrderResult::_internal_mutable_shipping_cost() { + + if (_impl_.shipping_cost_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Money>(GetArenaForAllocation()); + _impl_.shipping_cost_ = p; + } + return _impl_.shipping_cost_; +} +inline ::oteldemo::Money* OrderResult::mutable_shipping_cost() { + ::oteldemo::Money* _msg = _internal_mutable_shipping_cost(); + // @@protoc_insertion_point(field_mutable:oteldemo.OrderResult.shipping_cost) + return _msg; +} +inline void OrderResult::set_allocated_shipping_cost(::oteldemo::Money* shipping_cost) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.shipping_cost_; + } + if (shipping_cost) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(shipping_cost); + if (message_arena != submessage_arena) { + shipping_cost = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, shipping_cost, submessage_arena); + } + + } else { + + } + _impl_.shipping_cost_ = shipping_cost; + // @@protoc_insertion_point(field_set_allocated:oteldemo.OrderResult.shipping_cost) +} + +// .oteldemo.Address shipping_address = 4; +inline bool OrderResult::_internal_has_shipping_address() const { + return this != internal_default_instance() && _impl_.shipping_address_ != nullptr; +} +inline bool OrderResult::has_shipping_address() const { + return _internal_has_shipping_address(); +} +inline void OrderResult::clear_shipping_address() { + if (GetArenaForAllocation() == nullptr && _impl_.shipping_address_ != nullptr) { + delete _impl_.shipping_address_; + } + _impl_.shipping_address_ = nullptr; +} +inline const ::oteldemo::Address& OrderResult::_internal_shipping_address() const { + const ::oteldemo::Address* p = _impl_.shipping_address_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Address_default_instance_); +} +inline const ::oteldemo::Address& OrderResult::shipping_address() const { + // @@protoc_insertion_point(field_get:oteldemo.OrderResult.shipping_address) + return _internal_shipping_address(); +} +inline void OrderResult::unsafe_arena_set_allocated_shipping_address( + ::oteldemo::Address* shipping_address) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.shipping_address_); + } + _impl_.shipping_address_ = shipping_address; + if (shipping_address) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.OrderResult.shipping_address) +} +inline ::oteldemo::Address* OrderResult::release_shipping_address() { + + ::oteldemo::Address* temp = _impl_.shipping_address_; + _impl_.shipping_address_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Address* OrderResult::unsafe_arena_release_shipping_address() { + // @@protoc_insertion_point(field_release:oteldemo.OrderResult.shipping_address) + + ::oteldemo::Address* temp = _impl_.shipping_address_; + _impl_.shipping_address_ = nullptr; + return temp; +} +inline ::oteldemo::Address* OrderResult::_internal_mutable_shipping_address() { + + if (_impl_.shipping_address_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Address>(GetArenaForAllocation()); + _impl_.shipping_address_ = p; + } + return _impl_.shipping_address_; +} +inline ::oteldemo::Address* OrderResult::mutable_shipping_address() { + ::oteldemo::Address* _msg = _internal_mutable_shipping_address(); + // @@protoc_insertion_point(field_mutable:oteldemo.OrderResult.shipping_address) + return _msg; +} +inline void OrderResult::set_allocated_shipping_address(::oteldemo::Address* shipping_address) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.shipping_address_; + } + if (shipping_address) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(shipping_address); + if (message_arena != submessage_arena) { + shipping_address = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, shipping_address, submessage_arena); + } + + } else { + + } + _impl_.shipping_address_ = shipping_address; + // @@protoc_insertion_point(field_set_allocated:oteldemo.OrderResult.shipping_address) +} + +// repeated .oteldemo.OrderItem items = 5; +inline int OrderResult::_internal_items_size() const { + return _impl_.items_.size(); +} +inline int OrderResult::items_size() const { + return _internal_items_size(); +} +inline void OrderResult::clear_items() { + _impl_.items_.Clear(); +} +inline ::oteldemo::OrderItem* OrderResult::mutable_items(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.OrderResult.items) + return _impl_.items_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::OrderItem >* +OrderResult::mutable_items() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.OrderResult.items) + return &_impl_.items_; +} +inline const ::oteldemo::OrderItem& OrderResult::_internal_items(int index) const { + return _impl_.items_.Get(index); +} +inline const ::oteldemo::OrderItem& OrderResult::items(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.OrderResult.items) + return _internal_items(index); +} +inline ::oteldemo::OrderItem* OrderResult::_internal_add_items() { + return _impl_.items_.Add(); +} +inline ::oteldemo::OrderItem* OrderResult::add_items() { + ::oteldemo::OrderItem* _add = _internal_add_items(); + // @@protoc_insertion_point(field_add:oteldemo.OrderResult.items) + return _add; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::OrderItem >& +OrderResult::items() const { + // @@protoc_insertion_point(field_list:oteldemo.OrderResult.items) + return _impl_.items_; +} + +// ------------------------------------------------------------------- + +// SendOrderConfirmationRequest + +// string email = 1; +inline void SendOrderConfirmationRequest::clear_email() { + _impl_.email_.ClearToEmpty(); +} +inline const std::string& SendOrderConfirmationRequest::email() const { + // @@protoc_insertion_point(field_get:oteldemo.SendOrderConfirmationRequest.email) + return _internal_email(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void SendOrderConfirmationRequest::set_email(ArgT0&& arg0, ArgT... args) { + + _impl_.email_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.SendOrderConfirmationRequest.email) +} +inline std::string* SendOrderConfirmationRequest::mutable_email() { + std::string* _s = _internal_mutable_email(); + // @@protoc_insertion_point(field_mutable:oteldemo.SendOrderConfirmationRequest.email) + return _s; +} +inline const std::string& SendOrderConfirmationRequest::_internal_email() const { + return _impl_.email_.Get(); +} +inline void SendOrderConfirmationRequest::_internal_set_email(const std::string& value) { + + _impl_.email_.Set(value, GetArenaForAllocation()); +} +inline std::string* SendOrderConfirmationRequest::_internal_mutable_email() { + + return _impl_.email_.Mutable(GetArenaForAllocation()); +} +inline std::string* SendOrderConfirmationRequest::release_email() { + // @@protoc_insertion_point(field_release:oteldemo.SendOrderConfirmationRequest.email) + return _impl_.email_.Release(); +} +inline void SendOrderConfirmationRequest::set_allocated_email(std::string* email) { + if (email != nullptr) { + + } else { + + } + _impl_.email_.SetAllocated(email, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.email_.IsDefault()) { + _impl_.email_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.SendOrderConfirmationRequest.email) +} + +// .oteldemo.OrderResult order = 2; +inline bool SendOrderConfirmationRequest::_internal_has_order() const { + return this != internal_default_instance() && _impl_.order_ != nullptr; +} +inline bool SendOrderConfirmationRequest::has_order() const { + return _internal_has_order(); +} +inline void SendOrderConfirmationRequest::clear_order() { + if (GetArenaForAllocation() == nullptr && _impl_.order_ != nullptr) { + delete _impl_.order_; + } + _impl_.order_ = nullptr; +} +inline const ::oteldemo::OrderResult& SendOrderConfirmationRequest::_internal_order() const { + const ::oteldemo::OrderResult* p = _impl_.order_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_OrderResult_default_instance_); +} +inline const ::oteldemo::OrderResult& SendOrderConfirmationRequest::order() const { + // @@protoc_insertion_point(field_get:oteldemo.SendOrderConfirmationRequest.order) + return _internal_order(); +} +inline void SendOrderConfirmationRequest::unsafe_arena_set_allocated_order( + ::oteldemo::OrderResult* order) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.order_); + } + _impl_.order_ = order; + if (order) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.SendOrderConfirmationRequest.order) +} +inline ::oteldemo::OrderResult* SendOrderConfirmationRequest::release_order() { + + ::oteldemo::OrderResult* temp = _impl_.order_; + _impl_.order_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::OrderResult* SendOrderConfirmationRequest::unsafe_arena_release_order() { + // @@protoc_insertion_point(field_release:oteldemo.SendOrderConfirmationRequest.order) + + ::oteldemo::OrderResult* temp = _impl_.order_; + _impl_.order_ = nullptr; + return temp; +} +inline ::oteldemo::OrderResult* SendOrderConfirmationRequest::_internal_mutable_order() { + + if (_impl_.order_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::OrderResult>(GetArenaForAllocation()); + _impl_.order_ = p; + } + return _impl_.order_; +} +inline ::oteldemo::OrderResult* SendOrderConfirmationRequest::mutable_order() { + ::oteldemo::OrderResult* _msg = _internal_mutable_order(); + // @@protoc_insertion_point(field_mutable:oteldemo.SendOrderConfirmationRequest.order) + return _msg; +} +inline void SendOrderConfirmationRequest::set_allocated_order(::oteldemo::OrderResult* order) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.order_; + } + if (order) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(order); + if (message_arena != submessage_arena) { + order = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, order, submessage_arena); + } + + } else { + + } + _impl_.order_ = order; + // @@protoc_insertion_point(field_set_allocated:oteldemo.SendOrderConfirmationRequest.order) +} + +// ------------------------------------------------------------------- + +// PlaceOrderRequest + +// string user_id = 1; +inline void PlaceOrderRequest::clear_user_id() { + _impl_.user_id_.ClearToEmpty(); +} +inline const std::string& PlaceOrderRequest::user_id() const { + // @@protoc_insertion_point(field_get:oteldemo.PlaceOrderRequest.user_id) + return _internal_user_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void PlaceOrderRequest::set_user_id(ArgT0&& arg0, ArgT... args) { + + _impl_.user_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.PlaceOrderRequest.user_id) +} +inline std::string* PlaceOrderRequest::mutable_user_id() { + std::string* _s = _internal_mutable_user_id(); + // @@protoc_insertion_point(field_mutable:oteldemo.PlaceOrderRequest.user_id) + return _s; +} +inline const std::string& PlaceOrderRequest::_internal_user_id() const { + return _impl_.user_id_.Get(); +} +inline void PlaceOrderRequest::_internal_set_user_id(const std::string& value) { + + _impl_.user_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* PlaceOrderRequest::_internal_mutable_user_id() { + + return _impl_.user_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* PlaceOrderRequest::release_user_id() { + // @@protoc_insertion_point(field_release:oteldemo.PlaceOrderRequest.user_id) + return _impl_.user_id_.Release(); +} +inline void PlaceOrderRequest::set_allocated_user_id(std::string* user_id) { + if (user_id != nullptr) { + + } else { + + } + _impl_.user_id_.SetAllocated(user_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.user_id_.IsDefault()) { + _impl_.user_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.PlaceOrderRequest.user_id) +} + +// string user_currency = 2; +inline void PlaceOrderRequest::clear_user_currency() { + _impl_.user_currency_.ClearToEmpty(); +} +inline const std::string& PlaceOrderRequest::user_currency() const { + // @@protoc_insertion_point(field_get:oteldemo.PlaceOrderRequest.user_currency) + return _internal_user_currency(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void PlaceOrderRequest::set_user_currency(ArgT0&& arg0, ArgT... args) { + + _impl_.user_currency_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.PlaceOrderRequest.user_currency) +} +inline std::string* PlaceOrderRequest::mutable_user_currency() { + std::string* _s = _internal_mutable_user_currency(); + // @@protoc_insertion_point(field_mutable:oteldemo.PlaceOrderRequest.user_currency) + return _s; +} +inline const std::string& PlaceOrderRequest::_internal_user_currency() const { + return _impl_.user_currency_.Get(); +} +inline void PlaceOrderRequest::_internal_set_user_currency(const std::string& value) { + + _impl_.user_currency_.Set(value, GetArenaForAllocation()); +} +inline std::string* PlaceOrderRequest::_internal_mutable_user_currency() { + + return _impl_.user_currency_.Mutable(GetArenaForAllocation()); +} +inline std::string* PlaceOrderRequest::release_user_currency() { + // @@protoc_insertion_point(field_release:oteldemo.PlaceOrderRequest.user_currency) + return _impl_.user_currency_.Release(); +} +inline void PlaceOrderRequest::set_allocated_user_currency(std::string* user_currency) { + if (user_currency != nullptr) { + + } else { + + } + _impl_.user_currency_.SetAllocated(user_currency, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.user_currency_.IsDefault()) { + _impl_.user_currency_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.PlaceOrderRequest.user_currency) +} + +// .oteldemo.Address address = 3; +inline bool PlaceOrderRequest::_internal_has_address() const { + return this != internal_default_instance() && _impl_.address_ != nullptr; +} +inline bool PlaceOrderRequest::has_address() const { + return _internal_has_address(); +} +inline void PlaceOrderRequest::clear_address() { + if (GetArenaForAllocation() == nullptr && _impl_.address_ != nullptr) { + delete _impl_.address_; + } + _impl_.address_ = nullptr; +} +inline const ::oteldemo::Address& PlaceOrderRequest::_internal_address() const { + const ::oteldemo::Address* p = _impl_.address_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Address_default_instance_); +} +inline const ::oteldemo::Address& PlaceOrderRequest::address() const { + // @@protoc_insertion_point(field_get:oteldemo.PlaceOrderRequest.address) + return _internal_address(); +} +inline void PlaceOrderRequest::unsafe_arena_set_allocated_address( + ::oteldemo::Address* address) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.address_); + } + _impl_.address_ = address; + if (address) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.PlaceOrderRequest.address) +} +inline ::oteldemo::Address* PlaceOrderRequest::release_address() { + + ::oteldemo::Address* temp = _impl_.address_; + _impl_.address_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Address* PlaceOrderRequest::unsafe_arena_release_address() { + // @@protoc_insertion_point(field_release:oteldemo.PlaceOrderRequest.address) + + ::oteldemo::Address* temp = _impl_.address_; + _impl_.address_ = nullptr; + return temp; +} +inline ::oteldemo::Address* PlaceOrderRequest::_internal_mutable_address() { + + if (_impl_.address_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Address>(GetArenaForAllocation()); + _impl_.address_ = p; + } + return _impl_.address_; +} +inline ::oteldemo::Address* PlaceOrderRequest::mutable_address() { + ::oteldemo::Address* _msg = _internal_mutable_address(); + // @@protoc_insertion_point(field_mutable:oteldemo.PlaceOrderRequest.address) + return _msg; +} +inline void PlaceOrderRequest::set_allocated_address(::oteldemo::Address* address) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.address_; + } + if (address) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(address); + if (message_arena != submessage_arena) { + address = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, address, submessage_arena); + } + + } else { + + } + _impl_.address_ = address; + // @@protoc_insertion_point(field_set_allocated:oteldemo.PlaceOrderRequest.address) +} + +// string email = 5; +inline void PlaceOrderRequest::clear_email() { + _impl_.email_.ClearToEmpty(); +} +inline const std::string& PlaceOrderRequest::email() const { + // @@protoc_insertion_point(field_get:oteldemo.PlaceOrderRequest.email) + return _internal_email(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void PlaceOrderRequest::set_email(ArgT0&& arg0, ArgT... args) { + + _impl_.email_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.PlaceOrderRequest.email) +} +inline std::string* PlaceOrderRequest::mutable_email() { + std::string* _s = _internal_mutable_email(); + // @@protoc_insertion_point(field_mutable:oteldemo.PlaceOrderRequest.email) + return _s; +} +inline const std::string& PlaceOrderRequest::_internal_email() const { + return _impl_.email_.Get(); +} +inline void PlaceOrderRequest::_internal_set_email(const std::string& value) { + + _impl_.email_.Set(value, GetArenaForAllocation()); +} +inline std::string* PlaceOrderRequest::_internal_mutable_email() { + + return _impl_.email_.Mutable(GetArenaForAllocation()); +} +inline std::string* PlaceOrderRequest::release_email() { + // @@protoc_insertion_point(field_release:oteldemo.PlaceOrderRequest.email) + return _impl_.email_.Release(); +} +inline void PlaceOrderRequest::set_allocated_email(std::string* email) { + if (email != nullptr) { + + } else { + + } + _impl_.email_.SetAllocated(email, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.email_.IsDefault()) { + _impl_.email_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.PlaceOrderRequest.email) +} + +// .oteldemo.CreditCardInfo credit_card = 6; +inline bool PlaceOrderRequest::_internal_has_credit_card() const { + return this != internal_default_instance() && _impl_.credit_card_ != nullptr; +} +inline bool PlaceOrderRequest::has_credit_card() const { + return _internal_has_credit_card(); +} +inline void PlaceOrderRequest::clear_credit_card() { + if (GetArenaForAllocation() == nullptr && _impl_.credit_card_ != nullptr) { + delete _impl_.credit_card_; + } + _impl_.credit_card_ = nullptr; +} +inline const ::oteldemo::CreditCardInfo& PlaceOrderRequest::_internal_credit_card() const { + const ::oteldemo::CreditCardInfo* p = _impl_.credit_card_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_CreditCardInfo_default_instance_); +} +inline const ::oteldemo::CreditCardInfo& PlaceOrderRequest::credit_card() const { + // @@protoc_insertion_point(field_get:oteldemo.PlaceOrderRequest.credit_card) + return _internal_credit_card(); +} +inline void PlaceOrderRequest::unsafe_arena_set_allocated_credit_card( + ::oteldemo::CreditCardInfo* credit_card) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.credit_card_); + } + _impl_.credit_card_ = credit_card; + if (credit_card) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.PlaceOrderRequest.credit_card) +} +inline ::oteldemo::CreditCardInfo* PlaceOrderRequest::release_credit_card() { + + ::oteldemo::CreditCardInfo* temp = _impl_.credit_card_; + _impl_.credit_card_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::CreditCardInfo* PlaceOrderRequest::unsafe_arena_release_credit_card() { + // @@protoc_insertion_point(field_release:oteldemo.PlaceOrderRequest.credit_card) + + ::oteldemo::CreditCardInfo* temp = _impl_.credit_card_; + _impl_.credit_card_ = nullptr; + return temp; +} +inline ::oteldemo::CreditCardInfo* PlaceOrderRequest::_internal_mutable_credit_card() { + + if (_impl_.credit_card_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::CreditCardInfo>(GetArenaForAllocation()); + _impl_.credit_card_ = p; + } + return _impl_.credit_card_; +} +inline ::oteldemo::CreditCardInfo* PlaceOrderRequest::mutable_credit_card() { + ::oteldemo::CreditCardInfo* _msg = _internal_mutable_credit_card(); + // @@protoc_insertion_point(field_mutable:oteldemo.PlaceOrderRequest.credit_card) + return _msg; +} +inline void PlaceOrderRequest::set_allocated_credit_card(::oteldemo::CreditCardInfo* credit_card) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.credit_card_; + } + if (credit_card) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(credit_card); + if (message_arena != submessage_arena) { + credit_card = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, credit_card, submessage_arena); + } + + } else { + + } + _impl_.credit_card_ = credit_card; + // @@protoc_insertion_point(field_set_allocated:oteldemo.PlaceOrderRequest.credit_card) +} + +// ------------------------------------------------------------------- + +// PlaceOrderResponse + +// .oteldemo.OrderResult order = 1; +inline bool PlaceOrderResponse::_internal_has_order() const { + return this != internal_default_instance() && _impl_.order_ != nullptr; +} +inline bool PlaceOrderResponse::has_order() const { + return _internal_has_order(); +} +inline void PlaceOrderResponse::clear_order() { + if (GetArenaForAllocation() == nullptr && _impl_.order_ != nullptr) { + delete _impl_.order_; + } + _impl_.order_ = nullptr; +} +inline const ::oteldemo::OrderResult& PlaceOrderResponse::_internal_order() const { + const ::oteldemo::OrderResult* p = _impl_.order_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_OrderResult_default_instance_); +} +inline const ::oteldemo::OrderResult& PlaceOrderResponse::order() const { + // @@protoc_insertion_point(field_get:oteldemo.PlaceOrderResponse.order) + return _internal_order(); +} +inline void PlaceOrderResponse::unsafe_arena_set_allocated_order( + ::oteldemo::OrderResult* order) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.order_); + } + _impl_.order_ = order; + if (order) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.PlaceOrderResponse.order) +} +inline ::oteldemo::OrderResult* PlaceOrderResponse::release_order() { + + ::oteldemo::OrderResult* temp = _impl_.order_; + _impl_.order_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::OrderResult* PlaceOrderResponse::unsafe_arena_release_order() { + // @@protoc_insertion_point(field_release:oteldemo.PlaceOrderResponse.order) + + ::oteldemo::OrderResult* temp = _impl_.order_; + _impl_.order_ = nullptr; + return temp; +} +inline ::oteldemo::OrderResult* PlaceOrderResponse::_internal_mutable_order() { + + if (_impl_.order_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::OrderResult>(GetArenaForAllocation()); + _impl_.order_ = p; + } + return _impl_.order_; +} +inline ::oteldemo::OrderResult* PlaceOrderResponse::mutable_order() { + ::oteldemo::OrderResult* _msg = _internal_mutable_order(); + // @@protoc_insertion_point(field_mutable:oteldemo.PlaceOrderResponse.order) + return _msg; +} +inline void PlaceOrderResponse::set_allocated_order(::oteldemo::OrderResult* order) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.order_; + } + if (order) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(order); + if (message_arena != submessage_arena) { + order = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, order, submessage_arena); + } + + } else { + + } + _impl_.order_ = order; + // @@protoc_insertion_point(field_set_allocated:oteldemo.PlaceOrderResponse.order) +} + +// ------------------------------------------------------------------- + +// AdRequest + +// repeated string context_keys = 1; +inline int AdRequest::_internal_context_keys_size() const { + return _impl_.context_keys_.size(); +} +inline int AdRequest::context_keys_size() const { + return _internal_context_keys_size(); +} +inline void AdRequest::clear_context_keys() { + _impl_.context_keys_.Clear(); +} +inline std::string* AdRequest::add_context_keys() { + std::string* _s = _internal_add_context_keys(); + // @@protoc_insertion_point(field_add_mutable:oteldemo.AdRequest.context_keys) + return _s; +} +inline const std::string& AdRequest::_internal_context_keys(int index) const { + return _impl_.context_keys_.Get(index); +} +inline const std::string& AdRequest::context_keys(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.AdRequest.context_keys) + return _internal_context_keys(index); +} +inline std::string* AdRequest::mutable_context_keys(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.AdRequest.context_keys) + return _impl_.context_keys_.Mutable(index); +} +inline void AdRequest::set_context_keys(int index, const std::string& value) { + _impl_.context_keys_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set:oteldemo.AdRequest.context_keys) +} +inline void AdRequest::set_context_keys(int index, std::string&& value) { + _impl_.context_keys_.Mutable(index)->assign(std::move(value)); + // @@protoc_insertion_point(field_set:oteldemo.AdRequest.context_keys) +} +inline void AdRequest::set_context_keys(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.context_keys_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:oteldemo.AdRequest.context_keys) +} +inline void AdRequest::set_context_keys(int index, const char* value, size_t size) { + _impl_.context_keys_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:oteldemo.AdRequest.context_keys) +} +inline std::string* AdRequest::_internal_add_context_keys() { + return _impl_.context_keys_.Add(); +} +inline void AdRequest::add_context_keys(const std::string& value) { + _impl_.context_keys_.Add()->assign(value); + // @@protoc_insertion_point(field_add:oteldemo.AdRequest.context_keys) +} +inline void AdRequest::add_context_keys(std::string&& value) { + _impl_.context_keys_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:oteldemo.AdRequest.context_keys) +} +inline void AdRequest::add_context_keys(const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.context_keys_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:oteldemo.AdRequest.context_keys) +} +inline void AdRequest::add_context_keys(const char* value, size_t size) { + _impl_.context_keys_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:oteldemo.AdRequest.context_keys) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& +AdRequest::context_keys() const { + // @@protoc_insertion_point(field_list:oteldemo.AdRequest.context_keys) + return _impl_.context_keys_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* +AdRequest::mutable_context_keys() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.AdRequest.context_keys) + return &_impl_.context_keys_; +} + +// ------------------------------------------------------------------- + +// AdResponse + +// repeated .oteldemo.Ad ads = 1; +inline int AdResponse::_internal_ads_size() const { + return _impl_.ads_.size(); +} +inline int AdResponse::ads_size() const { + return _internal_ads_size(); +} +inline void AdResponse::clear_ads() { + _impl_.ads_.Clear(); +} +inline ::oteldemo::Ad* AdResponse::mutable_ads(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.AdResponse.ads) + return _impl_.ads_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Ad >* +AdResponse::mutable_ads() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.AdResponse.ads) + return &_impl_.ads_; +} +inline const ::oteldemo::Ad& AdResponse::_internal_ads(int index) const { + return _impl_.ads_.Get(index); +} +inline const ::oteldemo::Ad& AdResponse::ads(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.AdResponse.ads) + return _internal_ads(index); +} +inline ::oteldemo::Ad* AdResponse::_internal_add_ads() { + return _impl_.ads_.Add(); +} +inline ::oteldemo::Ad* AdResponse::add_ads() { + ::oteldemo::Ad* _add = _internal_add_ads(); + // @@protoc_insertion_point(field_add:oteldemo.AdResponse.ads) + return _add; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Ad >& +AdResponse::ads() const { + // @@protoc_insertion_point(field_list:oteldemo.AdResponse.ads) + return _impl_.ads_; +} + +// ------------------------------------------------------------------- + +// Ad + +// string redirect_url = 1; +inline void Ad::clear_redirect_url() { + _impl_.redirect_url_.ClearToEmpty(); +} +inline const std::string& Ad::redirect_url() const { + // @@protoc_insertion_point(field_get:oteldemo.Ad.redirect_url) + return _internal_redirect_url(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Ad::set_redirect_url(ArgT0&& arg0, ArgT... args) { + + _impl_.redirect_url_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Ad.redirect_url) +} +inline std::string* Ad::mutable_redirect_url() { + std::string* _s = _internal_mutable_redirect_url(); + // @@protoc_insertion_point(field_mutable:oteldemo.Ad.redirect_url) + return _s; +} +inline const std::string& Ad::_internal_redirect_url() const { + return _impl_.redirect_url_.Get(); +} +inline void Ad::_internal_set_redirect_url(const std::string& value) { + + _impl_.redirect_url_.Set(value, GetArenaForAllocation()); +} +inline std::string* Ad::_internal_mutable_redirect_url() { + + return _impl_.redirect_url_.Mutable(GetArenaForAllocation()); +} +inline std::string* Ad::release_redirect_url() { + // @@protoc_insertion_point(field_release:oteldemo.Ad.redirect_url) + return _impl_.redirect_url_.Release(); +} +inline void Ad::set_allocated_redirect_url(std::string* redirect_url) { + if (redirect_url != nullptr) { + + } else { + + } + _impl_.redirect_url_.SetAllocated(redirect_url, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.redirect_url_.IsDefault()) { + _impl_.redirect_url_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Ad.redirect_url) +} + +// string text = 2; +inline void Ad::clear_text() { + _impl_.text_.ClearToEmpty(); +} +inline const std::string& Ad::text() const { + // @@protoc_insertion_point(field_get:oteldemo.Ad.text) + return _internal_text(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Ad::set_text(ArgT0&& arg0, ArgT... args) { + + _impl_.text_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Ad.text) +} +inline std::string* Ad::mutable_text() { + std::string* _s = _internal_mutable_text(); + // @@protoc_insertion_point(field_mutable:oteldemo.Ad.text) + return _s; +} +inline const std::string& Ad::_internal_text() const { + return _impl_.text_.Get(); +} +inline void Ad::_internal_set_text(const std::string& value) { + + _impl_.text_.Set(value, GetArenaForAllocation()); +} +inline std::string* Ad::_internal_mutable_text() { + + return _impl_.text_.Mutable(GetArenaForAllocation()); +} +inline std::string* Ad::release_text() { + // @@protoc_insertion_point(field_release:oteldemo.Ad.text) + return _impl_.text_.Release(); +} +inline void Ad::set_allocated_text(std::string* text) { + if (text != nullptr) { + + } else { + + } + _impl_.text_.SetAllocated(text, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.text_.IsDefault()) { + _impl_.text_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Ad.text) +} + +// ------------------------------------------------------------------- + +// Flag + +// string name = 1; +inline void Flag::clear_name() { + _impl_.name_.ClearToEmpty(); +} +inline const std::string& Flag::name() const { + // @@protoc_insertion_point(field_get:oteldemo.Flag.name) + return _internal_name(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Flag::set_name(ArgT0&& arg0, ArgT... args) { + + _impl_.name_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Flag.name) +} +inline std::string* Flag::mutable_name() { + std::string* _s = _internal_mutable_name(); + // @@protoc_insertion_point(field_mutable:oteldemo.Flag.name) + return _s; +} +inline const std::string& Flag::_internal_name() const { + return _impl_.name_.Get(); +} +inline void Flag::_internal_set_name(const std::string& value) { + + _impl_.name_.Set(value, GetArenaForAllocation()); +} +inline std::string* Flag::_internal_mutable_name() { + + return _impl_.name_.Mutable(GetArenaForAllocation()); +} +inline std::string* Flag::release_name() { + // @@protoc_insertion_point(field_release:oteldemo.Flag.name) + return _impl_.name_.Release(); +} +inline void Flag::set_allocated_name(std::string* name) { + if (name != nullptr) { + + } else { + + } + _impl_.name_.SetAllocated(name, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.name_.IsDefault()) { + _impl_.name_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Flag.name) +} + +// string description = 2; +inline void Flag::clear_description() { + _impl_.description_.ClearToEmpty(); +} +inline const std::string& Flag::description() const { + // @@protoc_insertion_point(field_get:oteldemo.Flag.description) + return _internal_description(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void Flag::set_description(ArgT0&& arg0, ArgT... args) { + + _impl_.description_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.Flag.description) +} +inline std::string* Flag::mutable_description() { + std::string* _s = _internal_mutable_description(); + // @@protoc_insertion_point(field_mutable:oteldemo.Flag.description) + return _s; +} +inline const std::string& Flag::_internal_description() const { + return _impl_.description_.Get(); +} +inline void Flag::_internal_set_description(const std::string& value) { + + _impl_.description_.Set(value, GetArenaForAllocation()); +} +inline std::string* Flag::_internal_mutable_description() { + + return _impl_.description_.Mutable(GetArenaForAllocation()); +} +inline std::string* Flag::release_description() { + // @@protoc_insertion_point(field_release:oteldemo.Flag.description) + return _impl_.description_.Release(); +} +inline void Flag::set_allocated_description(std::string* description) { + if (description != nullptr) { + + } else { + + } + _impl_.description_.SetAllocated(description, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.description_.IsDefault()) { + _impl_.description_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.Flag.description) +} + +// bool enabled = 3; +inline void Flag::clear_enabled() { + _impl_.enabled_ = false; +} +inline bool Flag::_internal_enabled() const { + return _impl_.enabled_; +} +inline bool Flag::enabled() const { + // @@protoc_insertion_point(field_get:oteldemo.Flag.enabled) + return _internal_enabled(); +} +inline void Flag::_internal_set_enabled(bool value) { + + _impl_.enabled_ = value; +} +inline void Flag::set_enabled(bool value) { + _internal_set_enabled(value); + // @@protoc_insertion_point(field_set:oteldemo.Flag.enabled) +} + +// ------------------------------------------------------------------- + +// GetFlagRequest + +// string name = 1; +inline void GetFlagRequest::clear_name() { + _impl_.name_.ClearToEmpty(); +} +inline const std::string& GetFlagRequest::name() const { + // @@protoc_insertion_point(field_get:oteldemo.GetFlagRequest.name) + return _internal_name(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void GetFlagRequest::set_name(ArgT0&& arg0, ArgT... args) { + + _impl_.name_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.GetFlagRequest.name) +} +inline std::string* GetFlagRequest::mutable_name() { + std::string* _s = _internal_mutable_name(); + // @@protoc_insertion_point(field_mutable:oteldemo.GetFlagRequest.name) + return _s; +} +inline const std::string& GetFlagRequest::_internal_name() const { + return _impl_.name_.Get(); +} +inline void GetFlagRequest::_internal_set_name(const std::string& value) { + + _impl_.name_.Set(value, GetArenaForAllocation()); +} +inline std::string* GetFlagRequest::_internal_mutable_name() { + + return _impl_.name_.Mutable(GetArenaForAllocation()); +} +inline std::string* GetFlagRequest::release_name() { + // @@protoc_insertion_point(field_release:oteldemo.GetFlagRequest.name) + return _impl_.name_.Release(); +} +inline void GetFlagRequest::set_allocated_name(std::string* name) { + if (name != nullptr) { + + } else { + + } + _impl_.name_.SetAllocated(name, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.name_.IsDefault()) { + _impl_.name_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.GetFlagRequest.name) +} + +// ------------------------------------------------------------------- + +// GetFlagResponse + +// .oteldemo.Flag flag = 1; +inline bool GetFlagResponse::_internal_has_flag() const { + return this != internal_default_instance() && _impl_.flag_ != nullptr; +} +inline bool GetFlagResponse::has_flag() const { + return _internal_has_flag(); +} +inline void GetFlagResponse::clear_flag() { + if (GetArenaForAllocation() == nullptr && _impl_.flag_ != nullptr) { + delete _impl_.flag_; + } + _impl_.flag_ = nullptr; +} +inline const ::oteldemo::Flag& GetFlagResponse::_internal_flag() const { + const ::oteldemo::Flag* p = _impl_.flag_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Flag_default_instance_); +} +inline const ::oteldemo::Flag& GetFlagResponse::flag() const { + // @@protoc_insertion_point(field_get:oteldemo.GetFlagResponse.flag) + return _internal_flag(); +} +inline void GetFlagResponse::unsafe_arena_set_allocated_flag( + ::oteldemo::Flag* flag) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.flag_); + } + _impl_.flag_ = flag; + if (flag) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.GetFlagResponse.flag) +} +inline ::oteldemo::Flag* GetFlagResponse::release_flag() { + + ::oteldemo::Flag* temp = _impl_.flag_; + _impl_.flag_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Flag* GetFlagResponse::unsafe_arena_release_flag() { + // @@protoc_insertion_point(field_release:oteldemo.GetFlagResponse.flag) + + ::oteldemo::Flag* temp = _impl_.flag_; + _impl_.flag_ = nullptr; + return temp; +} +inline ::oteldemo::Flag* GetFlagResponse::_internal_mutable_flag() { + + if (_impl_.flag_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Flag>(GetArenaForAllocation()); + _impl_.flag_ = p; + } + return _impl_.flag_; +} +inline ::oteldemo::Flag* GetFlagResponse::mutable_flag() { + ::oteldemo::Flag* _msg = _internal_mutable_flag(); + // @@protoc_insertion_point(field_mutable:oteldemo.GetFlagResponse.flag) + return _msg; +} +inline void GetFlagResponse::set_allocated_flag(::oteldemo::Flag* flag) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.flag_; + } + if (flag) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(flag); + if (message_arena != submessage_arena) { + flag = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, flag, submessage_arena); + } + + } else { + + } + _impl_.flag_ = flag; + // @@protoc_insertion_point(field_set_allocated:oteldemo.GetFlagResponse.flag) +} + +// ------------------------------------------------------------------- + +// CreateFlagRequest + +// string name = 1; +inline void CreateFlagRequest::clear_name() { + _impl_.name_.ClearToEmpty(); +} +inline const std::string& CreateFlagRequest::name() const { + // @@protoc_insertion_point(field_get:oteldemo.CreateFlagRequest.name) + return _internal_name(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void CreateFlagRequest::set_name(ArgT0&& arg0, ArgT... args) { + + _impl_.name_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.CreateFlagRequest.name) +} +inline std::string* CreateFlagRequest::mutable_name() { + std::string* _s = _internal_mutable_name(); + // @@protoc_insertion_point(field_mutable:oteldemo.CreateFlagRequest.name) + return _s; +} +inline const std::string& CreateFlagRequest::_internal_name() const { + return _impl_.name_.Get(); +} +inline void CreateFlagRequest::_internal_set_name(const std::string& value) { + + _impl_.name_.Set(value, GetArenaForAllocation()); +} +inline std::string* CreateFlagRequest::_internal_mutable_name() { + + return _impl_.name_.Mutable(GetArenaForAllocation()); +} +inline std::string* CreateFlagRequest::release_name() { + // @@protoc_insertion_point(field_release:oteldemo.CreateFlagRequest.name) + return _impl_.name_.Release(); +} +inline void CreateFlagRequest::set_allocated_name(std::string* name) { + if (name != nullptr) { + + } else { + + } + _impl_.name_.SetAllocated(name, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.name_.IsDefault()) { + _impl_.name_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.CreateFlagRequest.name) +} + +// string description = 2; +inline void CreateFlagRequest::clear_description() { + _impl_.description_.ClearToEmpty(); +} +inline const std::string& CreateFlagRequest::description() const { + // @@protoc_insertion_point(field_get:oteldemo.CreateFlagRequest.description) + return _internal_description(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void CreateFlagRequest::set_description(ArgT0&& arg0, ArgT... args) { + + _impl_.description_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.CreateFlagRequest.description) +} +inline std::string* CreateFlagRequest::mutable_description() { + std::string* _s = _internal_mutable_description(); + // @@protoc_insertion_point(field_mutable:oteldemo.CreateFlagRequest.description) + return _s; +} +inline const std::string& CreateFlagRequest::_internal_description() const { + return _impl_.description_.Get(); +} +inline void CreateFlagRequest::_internal_set_description(const std::string& value) { + + _impl_.description_.Set(value, GetArenaForAllocation()); +} +inline std::string* CreateFlagRequest::_internal_mutable_description() { + + return _impl_.description_.Mutable(GetArenaForAllocation()); +} +inline std::string* CreateFlagRequest::release_description() { + // @@protoc_insertion_point(field_release:oteldemo.CreateFlagRequest.description) + return _impl_.description_.Release(); +} +inline void CreateFlagRequest::set_allocated_description(std::string* description) { + if (description != nullptr) { + + } else { + + } + _impl_.description_.SetAllocated(description, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.description_.IsDefault()) { + _impl_.description_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.CreateFlagRequest.description) +} + +// bool enabled = 3; +inline void CreateFlagRequest::clear_enabled() { + _impl_.enabled_ = false; +} +inline bool CreateFlagRequest::_internal_enabled() const { + return _impl_.enabled_; +} +inline bool CreateFlagRequest::enabled() const { + // @@protoc_insertion_point(field_get:oteldemo.CreateFlagRequest.enabled) + return _internal_enabled(); +} +inline void CreateFlagRequest::_internal_set_enabled(bool value) { + + _impl_.enabled_ = value; +} +inline void CreateFlagRequest::set_enabled(bool value) { + _internal_set_enabled(value); + // @@protoc_insertion_point(field_set:oteldemo.CreateFlagRequest.enabled) +} + +// ------------------------------------------------------------------- + +// CreateFlagResponse + +// .oteldemo.Flag flag = 1; +inline bool CreateFlagResponse::_internal_has_flag() const { + return this != internal_default_instance() && _impl_.flag_ != nullptr; +} +inline bool CreateFlagResponse::has_flag() const { + return _internal_has_flag(); +} +inline void CreateFlagResponse::clear_flag() { + if (GetArenaForAllocation() == nullptr && _impl_.flag_ != nullptr) { + delete _impl_.flag_; + } + _impl_.flag_ = nullptr; +} +inline const ::oteldemo::Flag& CreateFlagResponse::_internal_flag() const { + const ::oteldemo::Flag* p = _impl_.flag_; + return p != nullptr ? *p : reinterpret_cast( + ::oteldemo::_Flag_default_instance_); +} +inline const ::oteldemo::Flag& CreateFlagResponse::flag() const { + // @@protoc_insertion_point(field_get:oteldemo.CreateFlagResponse.flag) + return _internal_flag(); +} +inline void CreateFlagResponse::unsafe_arena_set_allocated_flag( + ::oteldemo::Flag* flag) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.flag_); + } + _impl_.flag_ = flag; + if (flag) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:oteldemo.CreateFlagResponse.flag) +} +inline ::oteldemo::Flag* CreateFlagResponse::release_flag() { + + ::oteldemo::Flag* temp = _impl_.flag_; + _impl_.flag_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::oteldemo::Flag* CreateFlagResponse::unsafe_arena_release_flag() { + // @@protoc_insertion_point(field_release:oteldemo.CreateFlagResponse.flag) + + ::oteldemo::Flag* temp = _impl_.flag_; + _impl_.flag_ = nullptr; + return temp; +} +inline ::oteldemo::Flag* CreateFlagResponse::_internal_mutable_flag() { + + if (_impl_.flag_ == nullptr) { + auto* p = CreateMaybeMessage<::oteldemo::Flag>(GetArenaForAllocation()); + _impl_.flag_ = p; + } + return _impl_.flag_; +} +inline ::oteldemo::Flag* CreateFlagResponse::mutable_flag() { + ::oteldemo::Flag* _msg = _internal_mutable_flag(); + // @@protoc_insertion_point(field_mutable:oteldemo.CreateFlagResponse.flag) + return _msg; +} +inline void CreateFlagResponse::set_allocated_flag(::oteldemo::Flag* flag) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete _impl_.flag_; + } + if (flag) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(flag); + if (message_arena != submessage_arena) { + flag = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, flag, submessage_arena); + } + + } else { + + } + _impl_.flag_ = flag; + // @@protoc_insertion_point(field_set_allocated:oteldemo.CreateFlagResponse.flag) +} + +// ------------------------------------------------------------------- + +// UpdateFlagRequest + +// string name = 1; +inline void UpdateFlagRequest::clear_name() { + _impl_.name_.ClearToEmpty(); +} +inline const std::string& UpdateFlagRequest::name() const { + // @@protoc_insertion_point(field_get:oteldemo.UpdateFlagRequest.name) + return _internal_name(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void UpdateFlagRequest::set_name(ArgT0&& arg0, ArgT... args) { + + _impl_.name_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.UpdateFlagRequest.name) +} +inline std::string* UpdateFlagRequest::mutable_name() { + std::string* _s = _internal_mutable_name(); + // @@protoc_insertion_point(field_mutable:oteldemo.UpdateFlagRequest.name) + return _s; +} +inline const std::string& UpdateFlagRequest::_internal_name() const { + return _impl_.name_.Get(); +} +inline void UpdateFlagRequest::_internal_set_name(const std::string& value) { + + _impl_.name_.Set(value, GetArenaForAllocation()); +} +inline std::string* UpdateFlagRequest::_internal_mutable_name() { + + return _impl_.name_.Mutable(GetArenaForAllocation()); +} +inline std::string* UpdateFlagRequest::release_name() { + // @@protoc_insertion_point(field_release:oteldemo.UpdateFlagRequest.name) + return _impl_.name_.Release(); +} +inline void UpdateFlagRequest::set_allocated_name(std::string* name) { + if (name != nullptr) { + + } else { + + } + _impl_.name_.SetAllocated(name, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.name_.IsDefault()) { + _impl_.name_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.UpdateFlagRequest.name) +} + +// bool enabled = 2; +inline void UpdateFlagRequest::clear_enabled() { + _impl_.enabled_ = false; +} +inline bool UpdateFlagRequest::_internal_enabled() const { + return _impl_.enabled_; +} +inline bool UpdateFlagRequest::enabled() const { + // @@protoc_insertion_point(field_get:oteldemo.UpdateFlagRequest.enabled) + return _internal_enabled(); +} +inline void UpdateFlagRequest::_internal_set_enabled(bool value) { + + _impl_.enabled_ = value; +} +inline void UpdateFlagRequest::set_enabled(bool value) { + _internal_set_enabled(value); + // @@protoc_insertion_point(field_set:oteldemo.UpdateFlagRequest.enabled) +} + +// ------------------------------------------------------------------- + +// UpdateFlagResponse + +// ------------------------------------------------------------------- + +// ListFlagsRequest + +// ------------------------------------------------------------------- + +// ListFlagsResponse + +// repeated .oteldemo.Flag flag = 1; +inline int ListFlagsResponse::_internal_flag_size() const { + return _impl_.flag_.size(); +} +inline int ListFlagsResponse::flag_size() const { + return _internal_flag_size(); +} +inline void ListFlagsResponse::clear_flag() { + _impl_.flag_.Clear(); +} +inline ::oteldemo::Flag* ListFlagsResponse::mutable_flag(int index) { + // @@protoc_insertion_point(field_mutable:oteldemo.ListFlagsResponse.flag) + return _impl_.flag_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Flag >* +ListFlagsResponse::mutable_flag() { + // @@protoc_insertion_point(field_mutable_list:oteldemo.ListFlagsResponse.flag) + return &_impl_.flag_; +} +inline const ::oteldemo::Flag& ListFlagsResponse::_internal_flag(int index) const { + return _impl_.flag_.Get(index); +} +inline const ::oteldemo::Flag& ListFlagsResponse::flag(int index) const { + // @@protoc_insertion_point(field_get:oteldemo.ListFlagsResponse.flag) + return _internal_flag(index); +} +inline ::oteldemo::Flag* ListFlagsResponse::_internal_add_flag() { + return _impl_.flag_.Add(); +} +inline ::oteldemo::Flag* ListFlagsResponse::add_flag() { + ::oteldemo::Flag* _add = _internal_add_flag(); + // @@protoc_insertion_point(field_add:oteldemo.ListFlagsResponse.flag) + return _add; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::oteldemo::Flag >& +ListFlagsResponse::flag() const { + // @@protoc_insertion_point(field_list:oteldemo.ListFlagsResponse.flag) + return _impl_.flag_; +} + +// ------------------------------------------------------------------- + +// DeleteFlagRequest + +// string name = 1; +inline void DeleteFlagRequest::clear_name() { + _impl_.name_.ClearToEmpty(); +} +inline const std::string& DeleteFlagRequest::name() const { + // @@protoc_insertion_point(field_get:oteldemo.DeleteFlagRequest.name) + return _internal_name(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void DeleteFlagRequest::set_name(ArgT0&& arg0, ArgT... args) { + + _impl_.name_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:oteldemo.DeleteFlagRequest.name) +} +inline std::string* DeleteFlagRequest::mutable_name() { + std::string* _s = _internal_mutable_name(); + // @@protoc_insertion_point(field_mutable:oteldemo.DeleteFlagRequest.name) + return _s; +} +inline const std::string& DeleteFlagRequest::_internal_name() const { + return _impl_.name_.Get(); +} +inline void DeleteFlagRequest::_internal_set_name(const std::string& value) { + + _impl_.name_.Set(value, GetArenaForAllocation()); +} +inline std::string* DeleteFlagRequest::_internal_mutable_name() { + + return _impl_.name_.Mutable(GetArenaForAllocation()); +} +inline std::string* DeleteFlagRequest::release_name() { + // @@protoc_insertion_point(field_release:oteldemo.DeleteFlagRequest.name) + return _impl_.name_.Release(); +} +inline void DeleteFlagRequest::set_allocated_name(std::string* name) { + if (name != nullptr) { + + } else { + + } + _impl_.name_.SetAllocated(name, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.name_.IsDefault()) { + _impl_.name_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:oteldemo.DeleteFlagRequest.name) +} + +// ------------------------------------------------------------------- + +// DeleteFlagResponse + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace oteldemo + +// @@protoc_insertion_point(global_scope) + +#include +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_demo_2eproto diff --git a/src/currency/build/generated/proto/demo_mock.grpc.pb.h b/src/currency/build/generated/proto/demo_mock.grpc.pb.h new file mode 100644 index 0000000000..e56b23f53a --- /dev/null +++ b/src/currency/build/generated/proto/demo_mock.grpc.pb.h @@ -0,0 +1,119 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: demo.proto + +#ifndef GRPC_MOCK_demo_2eproto__INCLUDED +#define GRPC_MOCK_demo_2eproto__INCLUDED + +#include "demo.pb.h" +#include "demo.grpc.pb.h" + +#include +#include +#include +namespace oteldemo { + +class MockCartServiceStub : public CartService::StubInterface { + public: + MOCK_METHOD3(AddItem, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::oteldemo::Empty* response)); + MOCK_METHOD3(AsyncAddItemRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>*(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncAddItemRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>*(::grpc::ClientContext* context, const ::oteldemo::AddItemRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(GetCart, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::oteldemo::Cart* response)); + MOCK_METHOD3(AsyncGetCartRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Cart>*(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncGetCartRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Cart>*(::grpc::ClientContext* context, const ::oteldemo::GetCartRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(EmptyCart, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::oteldemo::Empty* response)); + MOCK_METHOD3(AsyncEmptyCartRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>*(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncEmptyCartRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>*(::grpc::ClientContext* context, const ::oteldemo::EmptyCartRequest& request, ::grpc::CompletionQueue* cq)); +}; + +class MockRecommendationServiceStub : public RecommendationService::StubInterface { + public: + MOCK_METHOD3(ListRecommendations, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::oteldemo::ListRecommendationsResponse* response)); + MOCK_METHOD3(AsyncListRecommendationsRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListRecommendationsResponse>*(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncListRecommendationsRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListRecommendationsResponse>*(::grpc::ClientContext* context, const ::oteldemo::ListRecommendationsRequest& request, ::grpc::CompletionQueue* cq)); +}; + +class MockProductCatalogServiceStub : public ProductCatalogService::StubInterface { + public: + MOCK_METHOD3(ListProducts, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::oteldemo::ListProductsResponse* response)); + MOCK_METHOD3(AsyncListProductsRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListProductsResponse>*(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncListProductsRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListProductsResponse>*(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(GetProduct, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::oteldemo::Product* response)); + MOCK_METHOD3(AsyncGetProductRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Product>*(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncGetProductRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Product>*(::grpc::ClientContext* context, const ::oteldemo::GetProductRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(SearchProducts, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::oteldemo::SearchProductsResponse* response)); + MOCK_METHOD3(AsyncSearchProductsRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::SearchProductsResponse>*(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncSearchProductsRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::SearchProductsResponse>*(::grpc::ClientContext* context, const ::oteldemo::SearchProductsRequest& request, ::grpc::CompletionQueue* cq)); +}; + +class MockShippingServiceStub : public ShippingService::StubInterface { + public: + MOCK_METHOD3(GetQuote, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::oteldemo::GetQuoteResponse* response)); + MOCK_METHOD3(AsyncGetQuoteRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetQuoteResponse>*(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncGetQuoteRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetQuoteResponse>*(::grpc::ClientContext* context, const ::oteldemo::GetQuoteRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(ShipOrder, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::oteldemo::ShipOrderResponse* response)); + MOCK_METHOD3(AsyncShipOrderRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ShipOrderResponse>*(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncShipOrderRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ShipOrderResponse>*(::grpc::ClientContext* context, const ::oteldemo::ShipOrderRequest& request, ::grpc::CompletionQueue* cq)); +}; + +class MockCurrencyServiceStub : public CurrencyService::StubInterface { + public: + MOCK_METHOD3(GetSupportedCurrencies, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::oteldemo::GetSupportedCurrenciesResponse* response)); + MOCK_METHOD3(AsyncGetSupportedCurrenciesRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetSupportedCurrenciesResponse>*(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncGetSupportedCurrenciesRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetSupportedCurrenciesResponse>*(::grpc::ClientContext* context, const ::oteldemo::Empty& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(Convert, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::oteldemo::Money* response)); + MOCK_METHOD3(AsyncConvertRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Money>*(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncConvertRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Money>*(::grpc::ClientContext* context, const ::oteldemo::CurrencyConversionRequest& request, ::grpc::CompletionQueue* cq)); +}; + +class MockPaymentServiceStub : public PaymentService::StubInterface { + public: + MOCK_METHOD3(Charge, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::oteldemo::ChargeResponse* response)); + MOCK_METHOD3(AsyncChargeRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ChargeResponse>*(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncChargeRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ChargeResponse>*(::grpc::ClientContext* context, const ::oteldemo::ChargeRequest& request, ::grpc::CompletionQueue* cq)); +}; + +class MockEmailServiceStub : public EmailService::StubInterface { + public: + MOCK_METHOD3(SendOrderConfirmation, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::oteldemo::Empty* response)); + MOCK_METHOD3(AsyncSendOrderConfirmationRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>*(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncSendOrderConfirmationRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::Empty>*(::grpc::ClientContext* context, const ::oteldemo::SendOrderConfirmationRequest& request, ::grpc::CompletionQueue* cq)); +}; + +class MockCheckoutServiceStub : public CheckoutService::StubInterface { + public: + MOCK_METHOD3(PlaceOrder, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::oteldemo::PlaceOrderResponse* response)); + MOCK_METHOD3(AsyncPlaceOrderRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::PlaceOrderResponse>*(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncPlaceOrderRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::PlaceOrderResponse>*(::grpc::ClientContext* context, const ::oteldemo::PlaceOrderRequest& request, ::grpc::CompletionQueue* cq)); +}; + +class MockAdServiceStub : public AdService::StubInterface { + public: + MOCK_METHOD3(GetAds, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::oteldemo::AdResponse* response)); + MOCK_METHOD3(AsyncGetAdsRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::AdResponse>*(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncGetAdsRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::AdResponse>*(::grpc::ClientContext* context, const ::oteldemo::AdRequest& request, ::grpc::CompletionQueue* cq)); +}; + +class MockFeatureFlagServiceStub : public FeatureFlagService::StubInterface { + public: + MOCK_METHOD3(GetFlag, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::oteldemo::GetFlagResponse* response)); + MOCK_METHOD3(AsyncGetFlagRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetFlagResponse>*(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncGetFlagRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::GetFlagResponse>*(::grpc::ClientContext* context, const ::oteldemo::GetFlagRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(CreateFlag, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::oteldemo::CreateFlagResponse* response)); + MOCK_METHOD3(AsyncCreateFlagRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::CreateFlagResponse>*(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncCreateFlagRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::CreateFlagResponse>*(::grpc::ClientContext* context, const ::oteldemo::CreateFlagRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(UpdateFlag, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::oteldemo::UpdateFlagResponse* response)); + MOCK_METHOD3(AsyncUpdateFlagRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::UpdateFlagResponse>*(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncUpdateFlagRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::UpdateFlagResponse>*(::grpc::ClientContext* context, const ::oteldemo::UpdateFlagRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(ListFlags, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::oteldemo::ListFlagsResponse* response)); + MOCK_METHOD3(AsyncListFlagsRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListFlagsResponse>*(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncListFlagsRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::ListFlagsResponse>*(::grpc::ClientContext* context, const ::oteldemo::ListFlagsRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(DeleteFlag, ::grpc::Status(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::oteldemo::DeleteFlagResponse* response)); + MOCK_METHOD3(AsyncDeleteFlagRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::DeleteFlagResponse>*(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncDeleteFlagRaw, ::grpc::ClientAsyncResponseReaderInterface< ::oteldemo::DeleteFlagResponse>*(::grpc::ClientContext* context, const ::oteldemo::DeleteFlagRequest& request, ::grpc::CompletionQueue* cq)); +}; + +} // namespace oteldemo + + +#endif // GRPC_MOCK_demo_2eproto__INCLUDED diff --git a/src/currency/build/generated/proto/grpc/health/v1/health.grpc.pb.cc b/src/currency/build/generated/proto/grpc/health/v1/health.grpc.pb.cc new file mode 100644 index 0000000000..18b8401f39 --- /dev/null +++ b/src/currency/build/generated/proto/grpc/health/v1/health.grpc.pb.cc @@ -0,0 +1,90 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: grpc/health/v1/health.proto + +#include "grpc/health/v1/health.pb.h" +#include "grpc/health/v1/health.grpc.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +namespace grpc { +namespace health { +namespace v1 { + +static const char* Health_method_names[] = { + "/grpc.health.v1.Health/Check", +}; + +std::unique_ptr< Health::Stub> Health::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< Health::Stub> stub(new Health::Stub(channel, options)); + return stub; +} + +Health::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_Check_(Health_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status Health::Stub::Check(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::health::v1::HealthCheckResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::grpc::health::v1::HealthCheckRequest, ::grpc::health::v1::HealthCheckResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Check_, context, request, response); +} + +void Health::Stub::async::Check(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest* request, ::grpc::health::v1::HealthCheckResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::grpc::health::v1::HealthCheckRequest, ::grpc::health::v1::HealthCheckResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Check_, context, request, response, std::move(f)); +} + +void Health::Stub::async::Check(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest* request, ::grpc::health::v1::HealthCheckResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Check_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::grpc::health::v1::HealthCheckResponse>* Health::Stub::PrepareAsyncCheckRaw(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::grpc::health::v1::HealthCheckResponse, ::grpc::health::v1::HealthCheckRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Check_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::grpc::health::v1::HealthCheckResponse>* Health::Stub::AsyncCheckRaw(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncCheckRaw(context, request, cq); + result->StartCall(); + return result; +} + +Health::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + Health_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< Health::Service, ::grpc::health::v1::HealthCheckRequest, ::grpc::health::v1::HealthCheckResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](Health::Service* service, + ::grpc::ServerContext* ctx, + const ::grpc::health::v1::HealthCheckRequest* req, + ::grpc::health::v1::HealthCheckResponse* resp) { + return service->Check(ctx, req, resp); + }, this))); +} + +Health::Service::~Service() { +} + +::grpc::Status Health::Service::Check(::grpc::ServerContext* context, const ::grpc::health::v1::HealthCheckRequest* request, ::grpc::health::v1::HealthCheckResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +} // namespace grpc +} // namespace health +} // namespace v1 + diff --git a/src/currency/build/generated/proto/grpc/health/v1/health.grpc.pb.h b/src/currency/build/generated/proto/grpc/health/v1/health.grpc.pb.h new file mode 100644 index 0000000000..8303925196 --- /dev/null +++ b/src/currency/build/generated/proto/grpc/health/v1/health.grpc.pb.h @@ -0,0 +1,262 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: grpc/health/v1/health.proto +// Original file comments: +// Copyright 2015 The gRPC Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// The canonical version of this proto can be found at +// https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto +// +#ifndef GRPC_grpc_2fhealth_2fv1_2fhealth_2eproto__INCLUDED +#define GRPC_grpc_2fhealth_2fv1_2fhealth_2eproto__INCLUDED + +#include "grpc/health/v1/health.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace grpc { +namespace health { +namespace v1 { + +class Health final { + public: + static constexpr char const* service_full_name() { + return "grpc.health.v1.Health"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status Check(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::health::v1::HealthCheckResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::health::v1::HealthCheckResponse>> AsyncCheck(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::health::v1::HealthCheckResponse>>(AsyncCheckRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::health::v1::HealthCheckResponse>> PrepareAsyncCheck(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::health::v1::HealthCheckResponse>>(PrepareAsyncCheckRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + virtual void Check(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest* request, ::grpc::health::v1::HealthCheckResponse* response, std::function) = 0; + virtual void Check(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest* request, ::grpc::health::v1::HealthCheckResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::health::v1::HealthCheckResponse>* AsyncCheckRaw(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::health::v1::HealthCheckResponse>* PrepareAsyncCheckRaw(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status Check(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::health::v1::HealthCheckResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::health::v1::HealthCheckResponse>> AsyncCheck(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::health::v1::HealthCheckResponse>>(AsyncCheckRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::health::v1::HealthCheckResponse>> PrepareAsyncCheck(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::health::v1::HealthCheckResponse>>(PrepareAsyncCheckRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void Check(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest* request, ::grpc::health::v1::HealthCheckResponse* response, std::function) override; + void Check(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest* request, ::grpc::health::v1::HealthCheckResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::grpc::health::v1::HealthCheckResponse>* AsyncCheckRaw(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::grpc::health::v1::HealthCheckResponse>* PrepareAsyncCheckRaw(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_Check_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status Check(::grpc::ServerContext* context, const ::grpc::health::v1::HealthCheckRequest* request, ::grpc::health::v1::HealthCheckResponse* response); + }; + template + class WithAsyncMethod_Check : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_Check() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_Check() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Check(::grpc::ServerContext* /*context*/, const ::grpc::health::v1::HealthCheckRequest* /*request*/, ::grpc::health::v1::HealthCheckResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestCheck(::grpc::ServerContext* context, ::grpc::health::v1::HealthCheckRequest* request, ::grpc::ServerAsyncResponseWriter< ::grpc::health::v1::HealthCheckResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_Check AsyncService; + template + class WithCallbackMethod_Check : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_Check() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::health::v1::HealthCheckRequest, ::grpc::health::v1::HealthCheckResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::health::v1::HealthCheckRequest* request, ::grpc::health::v1::HealthCheckResponse* response) { return this->Check(context, request, response); }));} + void SetMessageAllocatorFor_Check( + ::grpc::MessageAllocator< ::grpc::health::v1::HealthCheckRequest, ::grpc::health::v1::HealthCheckResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::health::v1::HealthCheckRequest, ::grpc::health::v1::HealthCheckResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_Check() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Check(::grpc::ServerContext* /*context*/, const ::grpc::health::v1::HealthCheckRequest* /*request*/, ::grpc::health::v1::HealthCheckResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* Check( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::health::v1::HealthCheckRequest* /*request*/, ::grpc::health::v1::HealthCheckResponse* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_Check CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_Check : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_Check() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_Check() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Check(::grpc::ServerContext* /*context*/, const ::grpc::health::v1::HealthCheckRequest* /*request*/, ::grpc::health::v1::HealthCheckResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_Check : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_Check() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_Check() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Check(::grpc::ServerContext* /*context*/, const ::grpc::health::v1::HealthCheckRequest* /*request*/, ::grpc::health::v1::HealthCheckResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestCheck(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_Check : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_Check() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Check(context, request, response); })); + } + ~WithRawCallbackMethod_Check() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Check(::grpc::ServerContext* /*context*/, const ::grpc::health::v1::HealthCheckRequest* /*request*/, ::grpc::health::v1::HealthCheckResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* Check( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_Check : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_Check() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::grpc::health::v1::HealthCheckRequest, ::grpc::health::v1::HealthCheckResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::grpc::health::v1::HealthCheckRequest, ::grpc::health::v1::HealthCheckResponse>* streamer) { + return this->StreamedCheck(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_Check() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status Check(::grpc::ServerContext* /*context*/, const ::grpc::health::v1::HealthCheckRequest* /*request*/, ::grpc::health::v1::HealthCheckResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedCheck(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::grpc::health::v1::HealthCheckRequest,::grpc::health::v1::HealthCheckResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_Check StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_Check StreamedService; +}; + +} // namespace v1 +} // namespace health +} // namespace grpc + + +#endif // GRPC_grpc_2fhealth_2fv1_2fhealth_2eproto__INCLUDED diff --git a/src/currency/build/generated/proto/grpc/health/v1/health.pb.cc b/src/currency/build/generated/proto/grpc/health/v1/health.pb.cc new file mode 100644 index 0000000000..d6fbf95a7b --- /dev/null +++ b/src/currency/build/generated/proto/grpc/health/v1/health.pb.cc @@ -0,0 +1,540 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: grpc/health/v1/health.proto + +#include "grpc/health/v1/health.pb.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +// @@protoc_insertion_point(includes) +#include + +PROTOBUF_PRAGMA_INIT_SEG + +namespace _pb = ::PROTOBUF_NAMESPACE_ID; +namespace _pbi = _pb::internal; + +namespace grpc { +namespace health { +namespace v1 { +PROTOBUF_CONSTEXPR HealthCheckRequest::HealthCheckRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.service_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct HealthCheckRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR HealthCheckRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~HealthCheckRequestDefaultTypeInternal() {} + union { + HealthCheckRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 HealthCheckRequestDefaultTypeInternal _HealthCheckRequest_default_instance_; +PROTOBUF_CONSTEXPR HealthCheckResponse::HealthCheckResponse( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.status_)*/0 + , /*decltype(_impl_._cached_size_)*/{}} {} +struct HealthCheckResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR HealthCheckResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~HealthCheckResponseDefaultTypeInternal() {} + union { + HealthCheckResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 HealthCheckResponseDefaultTypeInternal _HealthCheckResponse_default_instance_; +} // namespace v1 +} // namespace health +} // namespace grpc +static ::_pb::Metadata file_level_metadata_grpc_2fhealth_2fv1_2fhealth_2eproto[2]; +static const ::_pb::EnumDescriptor* file_level_enum_descriptors_grpc_2fhealth_2fv1_2fhealth_2eproto[1]; +static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_grpc_2fhealth_2fv1_2fhealth_2eproto = nullptr; + +const uint32_t TableStruct_grpc_2fhealth_2fv1_2fhealth_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::grpc::health::v1::HealthCheckRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::grpc::health::v1::HealthCheckRequest, _impl_.service_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::grpc::health::v1::HealthCheckResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::grpc::health::v1::HealthCheckResponse, _impl_.status_), +}; +static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, -1, sizeof(::grpc::health::v1::HealthCheckRequest)}, + { 7, -1, -1, sizeof(::grpc::health::v1::HealthCheckResponse)}, +}; + +static const ::_pb::Message* const file_default_instances[] = { + &::grpc::health::v1::_HealthCheckRequest_default_instance_._instance, + &::grpc::health::v1::_HealthCheckResponse_default_instance_._instance, +}; + +const char descriptor_table_protodef_grpc_2fhealth_2fv1_2fhealth_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\033grpc/health/v1/health.proto\022\016grpc.heal" + "th.v1\"%\n\022HealthCheckRequest\022\017\n\007service\030\001" + " \001(\t\"\224\001\n\023HealthCheckResponse\022A\n\006status\030\001" + " \001(\01621.grpc.health.v1.HealthCheckRespons" + "e.ServingStatus\":\n\rServingStatus\022\013\n\007UNKN" + "OWN\020\000\022\013\n\007SERVING\020\001\022\017\n\013NOT_SERVING\020\0022Z\n\006H" + "ealth\022P\n\005Check\022\".grpc.health.v1.HealthCh" + "eckRequest\032#.grpc.health.v1.HealthCheckR" + "esponseBa\n\021io.grpc.health.v1B\013HealthProt" + "oP\001Z,google.golang.org/grpc/health/grpc_" + "health_v1\252\002\016Grpc.Health.V1b\006proto3" + ; +static ::_pbi::once_flag descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto_once; +const ::_pbi::DescriptorTable descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto = { + false, false, 434, descriptor_table_protodef_grpc_2fhealth_2fv1_2fhealth_2eproto, + "grpc/health/v1/health.proto", + &descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto_once, nullptr, 0, 2, + schemas, file_default_instances, TableStruct_grpc_2fhealth_2fv1_2fhealth_2eproto::offsets, + file_level_metadata_grpc_2fhealth_2fv1_2fhealth_2eproto, file_level_enum_descriptors_grpc_2fhealth_2fv1_2fhealth_2eproto, + file_level_service_descriptors_grpc_2fhealth_2fv1_2fhealth_2eproto, +}; +PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto_getter() { + return &descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto; +} + +// Force running AddDescriptors() at dynamic initialization time. +PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_grpc_2fhealth_2fv1_2fhealth_2eproto(&descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto); +namespace grpc { +namespace health { +namespace v1 { +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* HealthCheckResponse_ServingStatus_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto); + return file_level_enum_descriptors_grpc_2fhealth_2fv1_2fhealth_2eproto[0]; +} +bool HealthCheckResponse_ServingStatus_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + return true; + default: + return false; + } +} + +#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912)) +constexpr HealthCheckResponse_ServingStatus HealthCheckResponse::UNKNOWN; +constexpr HealthCheckResponse_ServingStatus HealthCheckResponse::SERVING; +constexpr HealthCheckResponse_ServingStatus HealthCheckResponse::NOT_SERVING; +constexpr HealthCheckResponse_ServingStatus HealthCheckResponse::ServingStatus_MIN; +constexpr HealthCheckResponse_ServingStatus HealthCheckResponse::ServingStatus_MAX; +constexpr int HealthCheckResponse::ServingStatus_ARRAYSIZE; +#endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912)) + +// =================================================================== + +class HealthCheckRequest::_Internal { + public: +}; + +HealthCheckRequest::HealthCheckRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:grpc.health.v1.HealthCheckRequest) +} +HealthCheckRequest::HealthCheckRequest(const HealthCheckRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + HealthCheckRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.service_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.service_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.service_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_service().empty()) { + _this->_impl_.service_.Set(from._internal_service(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:grpc.health.v1.HealthCheckRequest) +} + +inline void HealthCheckRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.service_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.service_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.service_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +HealthCheckRequest::~HealthCheckRequest() { + // @@protoc_insertion_point(destructor:grpc.health.v1.HealthCheckRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void HealthCheckRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.service_.Destroy(); +} + +void HealthCheckRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void HealthCheckRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:grpc.health.v1.HealthCheckRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.service_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* HealthCheckRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string service = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_service(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "grpc.health.v1.HealthCheckRequest.service")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* HealthCheckRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:grpc.health.v1.HealthCheckRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string service = 1; + if (!this->_internal_service().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_service().data(), static_cast(this->_internal_service().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "grpc.health.v1.HealthCheckRequest.service"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_service(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:grpc.health.v1.HealthCheckRequest) + return target; +} + +size_t HealthCheckRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:grpc.health.v1.HealthCheckRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string service = 1; + if (!this->_internal_service().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_service()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData HealthCheckRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + HealthCheckRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*HealthCheckRequest::GetClassData() const { return &_class_data_; } + + +void HealthCheckRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:grpc.health.v1.HealthCheckRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_service().empty()) { + _this->_internal_set_service(from._internal_service()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void HealthCheckRequest::CopyFrom(const HealthCheckRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:grpc.health.v1.HealthCheckRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool HealthCheckRequest::IsInitialized() const { + return true; +} + +void HealthCheckRequest::InternalSwap(HealthCheckRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.service_, lhs_arena, + &other->_impl_.service_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata HealthCheckRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto_getter, &descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto_once, + file_level_metadata_grpc_2fhealth_2fv1_2fhealth_2eproto[0]); +} + +// =================================================================== + +class HealthCheckResponse::_Internal { + public: +}; + +HealthCheckResponse::HealthCheckResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:grpc.health.v1.HealthCheckResponse) +} +HealthCheckResponse::HealthCheckResponse(const HealthCheckResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + HealthCheckResponse* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.status_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _this->_impl_.status_ = from._impl_.status_; + // @@protoc_insertion_point(copy_constructor:grpc.health.v1.HealthCheckResponse) +} + +inline void HealthCheckResponse::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.status_){0} + , /*decltype(_impl_._cached_size_)*/{} + }; +} + +HealthCheckResponse::~HealthCheckResponse() { + // @@protoc_insertion_point(destructor:grpc.health.v1.HealthCheckResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void HealthCheckResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); +} + +void HealthCheckResponse::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void HealthCheckResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:grpc.health.v1.HealthCheckResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.status_ = 0; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* HealthCheckResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { + uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + _internal_set_status(static_cast<::grpc::health::v1::HealthCheckResponse_ServingStatus>(val)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* HealthCheckResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:grpc.health.v1.HealthCheckResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1; + if (this->_internal_status() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteEnumToArray( + 1, this->_internal_status(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:grpc.health.v1.HealthCheckResponse) + return target; +} + +size_t HealthCheckResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:grpc.health.v1.HealthCheckResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1; + if (this->_internal_status() != 0) { + total_size += 1 + + ::_pbi::WireFormatLite::EnumSize(this->_internal_status()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData HealthCheckResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + HealthCheckResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*HealthCheckResponse::GetClassData() const { return &_class_data_; } + + +void HealthCheckResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:grpc.health.v1.HealthCheckResponse) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_status() != 0) { + _this->_internal_set_status(from._internal_status()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void HealthCheckResponse::CopyFrom(const HealthCheckResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:grpc.health.v1.HealthCheckResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool HealthCheckResponse::IsInitialized() const { + return true; +} + +void HealthCheckResponse::InternalSwap(HealthCheckResponse* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + swap(_impl_.status_, other->_impl_.status_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata HealthCheckResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto_getter, &descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto_once, + file_level_metadata_grpc_2fhealth_2fv1_2fhealth_2eproto[1]); +} + +// @@protoc_insertion_point(namespace_scope) +} // namespace v1 +} // namespace health +} // namespace grpc +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::grpc::health::v1::HealthCheckRequest* +Arena::CreateMaybeMessage< ::grpc::health::v1::HealthCheckRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::grpc::health::v1::HealthCheckRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::grpc::health::v1::HealthCheckResponse* +Arena::CreateMaybeMessage< ::grpc::health::v1::HealthCheckResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::grpc::health::v1::HealthCheckResponse >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include diff --git a/src/currency/build/generated/proto/grpc/health/v1/health.pb.h b/src/currency/build/generated/proto/grpc/health/v1/health.pb.h new file mode 100644 index 0000000000..8771623577 --- /dev/null +++ b/src/currency/build/generated/proto/grpc/health/v1/health.pb.h @@ -0,0 +1,537 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: grpc/health/v1/health.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_grpc_2fhealth_2fv1_2fhealth_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_grpc_2fhealth_2fv1_2fhealth_2eproto + +#include +#include + +#include +#if PROTOBUF_VERSION < 3021000 +#error This file was generated by a newer version of protoc which is +#error incompatible with your Protocol Buffer headers. Please update +#error your headers. +#endif +#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION +#error This file was generated by an older version of protoc which is +#error incompatible with your Protocol Buffer headers. Please +#error regenerate this file with a newer version of protoc. +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include // IWYU pragma: export +#include // IWYU pragma: export +#include +#include +// @@protoc_insertion_point(includes) +#include +#define PROTOBUF_INTERNAL_EXPORT_grpc_2fhealth_2fv1_2fhealth_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_grpc_2fhealth_2fv1_2fhealth_2eproto { + static const uint32_t offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_grpc_2fhealth_2fv1_2fhealth_2eproto; +namespace grpc { +namespace health { +namespace v1 { +class HealthCheckRequest; +struct HealthCheckRequestDefaultTypeInternal; +extern HealthCheckRequestDefaultTypeInternal _HealthCheckRequest_default_instance_; +class HealthCheckResponse; +struct HealthCheckResponseDefaultTypeInternal; +extern HealthCheckResponseDefaultTypeInternal _HealthCheckResponse_default_instance_; +} // namespace v1 +} // namespace health +} // namespace grpc +PROTOBUF_NAMESPACE_OPEN +template<> ::grpc::health::v1::HealthCheckRequest* Arena::CreateMaybeMessage<::grpc::health::v1::HealthCheckRequest>(Arena*); +template<> ::grpc::health::v1::HealthCheckResponse* Arena::CreateMaybeMessage<::grpc::health::v1::HealthCheckResponse>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace grpc { +namespace health { +namespace v1 { + +enum HealthCheckResponse_ServingStatus : int { + HealthCheckResponse_ServingStatus_UNKNOWN = 0, + HealthCheckResponse_ServingStatus_SERVING = 1, + HealthCheckResponse_ServingStatus_NOT_SERVING = 2, + HealthCheckResponse_ServingStatus_HealthCheckResponse_ServingStatus_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits::min(), + HealthCheckResponse_ServingStatus_HealthCheckResponse_ServingStatus_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits::max() +}; +bool HealthCheckResponse_ServingStatus_IsValid(int value); +constexpr HealthCheckResponse_ServingStatus HealthCheckResponse_ServingStatus_ServingStatus_MIN = HealthCheckResponse_ServingStatus_UNKNOWN; +constexpr HealthCheckResponse_ServingStatus HealthCheckResponse_ServingStatus_ServingStatus_MAX = HealthCheckResponse_ServingStatus_NOT_SERVING; +constexpr int HealthCheckResponse_ServingStatus_ServingStatus_ARRAYSIZE = HealthCheckResponse_ServingStatus_ServingStatus_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* HealthCheckResponse_ServingStatus_descriptor(); +template +inline const std::string& HealthCheckResponse_ServingStatus_Name(T enum_t_value) { + static_assert(::std::is_same::value || + ::std::is_integral::value, + "Incorrect type passed to function HealthCheckResponse_ServingStatus_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + HealthCheckResponse_ServingStatus_descriptor(), enum_t_value); +} +inline bool HealthCheckResponse_ServingStatus_Parse( + ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, HealthCheckResponse_ServingStatus* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( + HealthCheckResponse_ServingStatus_descriptor(), name, value); +} +// =================================================================== + +class HealthCheckRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:grpc.health.v1.HealthCheckRequest) */ { + public: + inline HealthCheckRequest() : HealthCheckRequest(nullptr) {} + ~HealthCheckRequest() override; + explicit PROTOBUF_CONSTEXPR HealthCheckRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + HealthCheckRequest(const HealthCheckRequest& from); + HealthCheckRequest(HealthCheckRequest&& from) noexcept + : HealthCheckRequest() { + *this = ::std::move(from); + } + + inline HealthCheckRequest& operator=(const HealthCheckRequest& from) { + CopyFrom(from); + return *this; + } + inline HealthCheckRequest& operator=(HealthCheckRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const HealthCheckRequest& default_instance() { + return *internal_default_instance(); + } + static inline const HealthCheckRequest* internal_default_instance() { + return reinterpret_cast( + &_HealthCheckRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(HealthCheckRequest& a, HealthCheckRequest& b) { + a.Swap(&b); + } + inline void Swap(HealthCheckRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(HealthCheckRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + HealthCheckRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const HealthCheckRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const HealthCheckRequest& from) { + HealthCheckRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(HealthCheckRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "grpc.health.v1.HealthCheckRequest"; + } + protected: + explicit HealthCheckRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kServiceFieldNumber = 1, + }; + // string service = 1; + void clear_service(); + const std::string& service() const; + template + void set_service(ArgT0&& arg0, ArgT... args); + std::string* mutable_service(); + PROTOBUF_NODISCARD std::string* release_service(); + void set_allocated_service(std::string* service); + private: + const std::string& _internal_service() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_service(const std::string& value); + std::string* _internal_mutable_service(); + public: + + // @@protoc_insertion_point(class_scope:grpc.health.v1.HealthCheckRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr service_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_grpc_2fhealth_2fv1_2fhealth_2eproto; +}; +// ------------------------------------------------------------------- + +class HealthCheckResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:grpc.health.v1.HealthCheckResponse) */ { + public: + inline HealthCheckResponse() : HealthCheckResponse(nullptr) {} + ~HealthCheckResponse() override; + explicit PROTOBUF_CONSTEXPR HealthCheckResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + HealthCheckResponse(const HealthCheckResponse& from); + HealthCheckResponse(HealthCheckResponse&& from) noexcept + : HealthCheckResponse() { + *this = ::std::move(from); + } + + inline HealthCheckResponse& operator=(const HealthCheckResponse& from) { + CopyFrom(from); + return *this; + } + inline HealthCheckResponse& operator=(HealthCheckResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const HealthCheckResponse& default_instance() { + return *internal_default_instance(); + } + static inline const HealthCheckResponse* internal_default_instance() { + return reinterpret_cast( + &_HealthCheckResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(HealthCheckResponse& a, HealthCheckResponse& b) { + a.Swap(&b); + } + inline void Swap(HealthCheckResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(HealthCheckResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + HealthCheckResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const HealthCheckResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const HealthCheckResponse& from) { + HealthCheckResponse::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(HealthCheckResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "grpc.health.v1.HealthCheckResponse"; + } + protected: + explicit HealthCheckResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + typedef HealthCheckResponse_ServingStatus ServingStatus; + static constexpr ServingStatus UNKNOWN = + HealthCheckResponse_ServingStatus_UNKNOWN; + static constexpr ServingStatus SERVING = + HealthCheckResponse_ServingStatus_SERVING; + static constexpr ServingStatus NOT_SERVING = + HealthCheckResponse_ServingStatus_NOT_SERVING; + static inline bool ServingStatus_IsValid(int value) { + return HealthCheckResponse_ServingStatus_IsValid(value); + } + static constexpr ServingStatus ServingStatus_MIN = + HealthCheckResponse_ServingStatus_ServingStatus_MIN; + static constexpr ServingStatus ServingStatus_MAX = + HealthCheckResponse_ServingStatus_ServingStatus_MAX; + static constexpr int ServingStatus_ARRAYSIZE = + HealthCheckResponse_ServingStatus_ServingStatus_ARRAYSIZE; + static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* + ServingStatus_descriptor() { + return HealthCheckResponse_ServingStatus_descriptor(); + } + template + static inline const std::string& ServingStatus_Name(T enum_t_value) { + static_assert(::std::is_same::value || + ::std::is_integral::value, + "Incorrect type passed to function ServingStatus_Name."); + return HealthCheckResponse_ServingStatus_Name(enum_t_value); + } + static inline bool ServingStatus_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, + ServingStatus* value) { + return HealthCheckResponse_ServingStatus_Parse(name, value); + } + + // accessors ------------------------------------------------------- + + enum : int { + kStatusFieldNumber = 1, + }; + // .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1; + void clear_status(); + ::grpc::health::v1::HealthCheckResponse_ServingStatus status() const; + void set_status(::grpc::health::v1::HealthCheckResponse_ServingStatus value); + private: + ::grpc::health::v1::HealthCheckResponse_ServingStatus _internal_status() const; + void _internal_set_status(::grpc::health::v1::HealthCheckResponse_ServingStatus value); + public: + + // @@protoc_insertion_point(class_scope:grpc.health.v1.HealthCheckResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + int status_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_grpc_2fhealth_2fv1_2fhealth_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// HealthCheckRequest + +// string service = 1; +inline void HealthCheckRequest::clear_service() { + _impl_.service_.ClearToEmpty(); +} +inline const std::string& HealthCheckRequest::service() const { + // @@protoc_insertion_point(field_get:grpc.health.v1.HealthCheckRequest.service) + return _internal_service(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void HealthCheckRequest::set_service(ArgT0&& arg0, ArgT... args) { + + _impl_.service_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:grpc.health.v1.HealthCheckRequest.service) +} +inline std::string* HealthCheckRequest::mutable_service() { + std::string* _s = _internal_mutable_service(); + // @@protoc_insertion_point(field_mutable:grpc.health.v1.HealthCheckRequest.service) + return _s; +} +inline const std::string& HealthCheckRequest::_internal_service() const { + return _impl_.service_.Get(); +} +inline void HealthCheckRequest::_internal_set_service(const std::string& value) { + + _impl_.service_.Set(value, GetArenaForAllocation()); +} +inline std::string* HealthCheckRequest::_internal_mutable_service() { + + return _impl_.service_.Mutable(GetArenaForAllocation()); +} +inline std::string* HealthCheckRequest::release_service() { + // @@protoc_insertion_point(field_release:grpc.health.v1.HealthCheckRequest.service) + return _impl_.service_.Release(); +} +inline void HealthCheckRequest::set_allocated_service(std::string* service) { + if (service != nullptr) { + + } else { + + } + _impl_.service_.SetAllocated(service, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.service_.IsDefault()) { + _impl_.service_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:grpc.health.v1.HealthCheckRequest.service) +} + +// ------------------------------------------------------------------- + +// HealthCheckResponse + +// .grpc.health.v1.HealthCheckResponse.ServingStatus status = 1; +inline void HealthCheckResponse::clear_status() { + _impl_.status_ = 0; +} +inline ::grpc::health::v1::HealthCheckResponse_ServingStatus HealthCheckResponse::_internal_status() const { + return static_cast< ::grpc::health::v1::HealthCheckResponse_ServingStatus >(_impl_.status_); +} +inline ::grpc::health::v1::HealthCheckResponse_ServingStatus HealthCheckResponse::status() const { + // @@protoc_insertion_point(field_get:grpc.health.v1.HealthCheckResponse.status) + return _internal_status(); +} +inline void HealthCheckResponse::_internal_set_status(::grpc::health::v1::HealthCheckResponse_ServingStatus value) { + + _impl_.status_ = value; +} +inline void HealthCheckResponse::set_status(::grpc::health::v1::HealthCheckResponse_ServingStatus value) { + _internal_set_status(value); + // @@protoc_insertion_point(field_set:grpc.health.v1.HealthCheckResponse.status) +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace v1 +} // namespace health +} // namespace grpc + +PROTOBUF_NAMESPACE_OPEN + +template <> struct is_proto_enum< ::grpc::health::v1::HealthCheckResponse_ServingStatus> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::grpc::health::v1::HealthCheckResponse_ServingStatus>() { + return ::grpc::health::v1::HealthCheckResponse_ServingStatus_descriptor(); +} + +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) + +#include +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_grpc_2fhealth_2fv1_2fhealth_2eproto diff --git a/src/currency/build/generated/proto/grpc/health/v1/health_mock.grpc.pb.h b/src/currency/build/generated/proto/grpc/health/v1/health_mock.grpc.pb.h new file mode 100644 index 0000000000..69e827a425 --- /dev/null +++ b/src/currency/build/generated/proto/grpc/health/v1/health_mock.grpc.pb.h @@ -0,0 +1,30 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: grpc/health/v1/health.proto + +#ifndef GRPC_MOCK_grpc_2fhealth_2fv1_2fhealth_2eproto__INCLUDED +#define GRPC_MOCK_grpc_2fhealth_2fv1_2fhealth_2eproto__INCLUDED + +#include "grpc/health/v1/health.pb.h" +#include "grpc/health/v1/health.grpc.pb.h" + +#include +#include +#include +namespace grpc { +namespace health { +namespace v1 { + +class MockHealthStub : public Health::StubInterface { + public: + MOCK_METHOD3(Check, ::grpc::Status(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::health::v1::HealthCheckResponse* response)); + MOCK_METHOD3(AsyncCheckRaw, ::grpc::ClientAsyncResponseReaderInterface< ::grpc::health::v1::HealthCheckResponse>*(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq)); + MOCK_METHOD3(PrepareAsyncCheckRaw, ::grpc::ClientAsyncResponseReaderInterface< ::grpc::health::v1::HealthCheckResponse>*(::grpc::ClientContext* context, const ::grpc::health::v1::HealthCheckRequest& request, ::grpc::CompletionQueue* cq)); +}; + +} // namespace v1 +} // namespace health +} // namespace grpc + + +#endif // GRPC_MOCK_grpc_2fhealth_2fv1_2fhealth_2eproto__INCLUDED diff --git a/src/currency/genproto/CMakeLists.txt b/src/currency/genproto/CMakeLists.txt new file mode 100644 index 0000000000..3b36a349ff --- /dev/null +++ b/src/currency/genproto/CMakeLists.txt @@ -0,0 +1,59 @@ +cmake_minimum_required(VERSION 3.1) +project(currency-proto) + +find_package(Protobuf REQUIRED) +find_package(gRPC CONFIG REQUIRED) + +set(PROTO_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../proto") +set(GENERATED_PROTOBUF_PATH "${CMAKE_BINARY_DIR}/generated/proto") +set(GENERATED_HEALTH_PROTOBUF_PATH "${GENERATED_PROTOBUF_PATH}/grpc/health/v1") + +file(MAKE_DIRECTORY "${GENERATED_PROTOBUF_PATH}") + +set(DEMO_PROTO "${PROTO_PATH}/demo.proto") +set(DEMO_PB_CPP_FILE "${GENERATED_PROTOBUF_PATH}/demo.pb.cc") +set(DEMO_PB_H_FILE "${GENERATED_PROTOBUF_PATH}/demo.pb.h") +set(DEMO_GRPC_PB_CPP_FILE "${GENERATED_PROTOBUF_PATH}/demo.grpc.pb.cc") +set(DEMO_GRPC_PB_H_FILE "${GENERATED_PROTOBUF_PATH}/demo.grpc.pb.h") +set(HEALTH_PROTO "${PROTO_PATH}/grpc/health/v1/health.proto") +set(HEALTH_PB_CPP_FILE "${GENERATED_HEALTH_PROTOBUF_PATH}/health.pb.cc") +set(HEALTH_PB_H_FILE "${GENERATED_HEALTH_PROTOBUF_PATH}/health.pb.h") +set(HEALTH_GRPC_PB_CPP_FILE "${GENERATED_HEALTH_PROTOBUF_PATH}/health.grpc.pb.cc") +set(HEALTH_GRPC_PB_H_FILE "${GENERATED_HEALTH_PROTOBUF_PATH}/health.grpc.pb.h") + +foreach(IMPORT_DIR ${PROTOBUF_IMPORT_DIRS}) + list(APPEND PROTOBUF_INCLUDE_FLAGS "-I${IMPORT_DIR}") +endforeach() + +find_program(gRPC_CPP_PLUGIN_EXECUTABLE grpc_cpp_plugin) + +add_custom_command( + OUTPUT ${DEMO_PB_H_FILE} + ${DEMO_PB_CPP_FILE} + ${DEMO_GRPC_PB_CPP_FILE} + ${DEMO_GRPC_PB_H_FILE} + ${HEALTH_PB_H_FILE} + ${HEALTH_PB_CPP_FILE} + ${HEALTH_GRPC_PB_CPP_FILE} + ${HEALTH_GRPC_PB_H_FILE} + + COMMAND + ${PROTOBUF_PROTOC_EXECUTABLE} ARGS "--experimental_allow_proto3_optional" + "--proto_path=${PROTO_PATH}" ${PROTOBUF_INCLUDE_FLAGS} + "--cpp_out=${GENERATED_PROTOBUF_PATH}" + "--grpc_out=generate_mock_code=true:${GENERATED_PROTOBUF_PATH}" + --plugin=protoc-gen-grpc="${gRPC_CPP_PLUGIN_EXECUTABLE}" ${DEMO_PROTO} ${HEALTH_PROTO}) + +message(STATUS "gRPC_CPP_PLUGIN_EXECUTABLE=${gRPC_CPP_PLUGIN_EXECUTABLE}") + +add_library(demo-proto ${DEMO_PB_H_FILE} + ${DEMO_PB_CPP_FILE} + ${DEMO_GRPC_PB_CPP_FILE} + ${DEMO_GRPC_PB_H_FILE} + ${HEALTH_PB_H_FILE} + ${HEALTH_PB_CPP_FILE} + ${HEALTH_GRPC_PB_CPP_FILE} + ${HEALTH_GRPC_PB_H_FILE}) + +target_link_libraries(demo-proto gRPC::grpc++ protobuf::libprotobuf) +include_directories("${GENERATED_PROTOBUF_PATH}" ) diff --git a/src/currency/genproto/Dockerfile b/src/currency/genproto/Dockerfile new file mode 100644 index 0000000000..fd92008f02 --- /dev/null +++ b/src/currency/genproto/Dockerfile @@ -0,0 +1,27 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2023 The OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM alpine:3.18 AS builder + +RUN apk update && apk add git cmake make g++ grpc-dev protobuf-dev linux-headers + +COPY ./src/currency /currency +COPY ./pb/demo.proto /currency/proto/demo.proto + +RUN cd /currency \ + && mkdir -p build && cd build \ + && cmake ../genproto \ + && make -j$(nproc || sysctl -n hw.ncpu || echo 1) demo-proto From 8cb101d461f737beff7d3b804e97c78a7f47f6fa Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Thu, 9 Jan 2025 21:20:37 -0500 Subject: [PATCH 058/178] [product-catalog] rename productcatalogservice to product-catalog (#1864) * rename productcatalogservice to product-catalog * rename productcatalogservice to product-catalog * rename productcatalogservice to product-catalog * rename productcatalogservice to product-catalog --- .env | 6 ++--- .github/workflows/component-build-images.yml | 4 +-- .licenserc.json | 2 +- CHANGELOG.md | 2 ++ Makefile | 2 +- docker-compose-tests.yml | 4 +-- docker-compose.minimal.yml | 26 +++++++++--------- docker-compose.yml | 26 +++++++++--------- docker-gen-proto.sh | 2 +- ide-gen-proto.sh | 2 +- renovate.json5 | 4 +-- src/checkoutservice/main.go | 2 +- .../gateways/rpc/ProductCatalog.gateway.ts | 4 +-- src/frontend/next.config.js | 4 +-- src/product-catalog/Dockerfile | 27 +++++++++++++++++++ .../README.md | 4 +-- .../genproto/Dockerfile | 6 ++--- .../genproto/oteldemo/demo.pb.go | 0 .../genproto/oteldemo/demo_grpc.pb.go | 0 .../go.mod | 2 +- .../go.sum | 0 .../main.go | 10 +++---- .../products/products.json | 0 .../tools.go | 0 src/productcatalogservice/Dockerfile | 27 ------------------- src/recommendation/recommendation_server.py | 2 +- .../all.yaml | 6 ++--- .../get.yaml | 2 +- .../list.yaml | 2 +- .../search.yaml | 2 +- test/tracetesting/run.bash | 6 ++--- 31 files changed, 94 insertions(+), 92 deletions(-) create mode 100644 src/product-catalog/Dockerfile rename src/{productcatalogservice => product-catalog}/README.md (88%) rename src/{productcatalogservice => product-catalog}/genproto/Dockerfile (73%) rename src/{productcatalogservice => product-catalog}/genproto/oteldemo/demo.pb.go (100%) rename src/{productcatalogservice => product-catalog}/genproto/oteldemo/demo_grpc.pb.go (100%) rename src/{productcatalogservice => product-catalog}/go.mod (97%) rename src/{productcatalogservice => product-catalog}/go.sum (100%) rename src/{productcatalogservice => product-catalog}/main.go (95%) rename src/{productcatalogservice => product-catalog}/products/products.json (100%) rename src/{productcatalogservice => product-catalog}/tools.go (100%) delete mode 100644 src/productcatalogservice/Dockerfile rename test/tracetesting/{productcatalogservice => product-catalog}/all.yaml (52%) rename test/tracetesting/{productcatalogservice => product-catalog}/get.yaml (96%) rename test/tracetesting/{productcatalogservice => product-catalog}/list.yaml (94%) rename test/tracetesting/{productcatalogservice => product-catalog}/search.yaml (95%) diff --git a/.env b/.env index 1779f87def..a98f85dae5 100644 --- a/.env +++ b/.env @@ -107,9 +107,9 @@ PAYMENT_ADDR=payment:${PAYMENT_PORT} PAYMENT_DOCKERFILE=./src/payment/Dockerfile # Product Catalog Service -PRODUCT_CATALOG_SERVICE_PORT=3550 -PRODUCT_CATALOG_SERVICE_ADDR=productcatalogservice:${PRODUCT_CATALOG_SERVICE_PORT} -PRODUCT_CATALOG_DOCKERFILE=./src/productcatalogservice/Dockerfile +PRODUCT_CATALOG_PORT=3550 +PRODUCT_CATALOG_ADDR=product-catalog:${PRODUCT_CATALOG_PORT} +PRODUCT_CATALOG_DOCKERFILE=./src/product-catalog/Dockerfile # Quote Service QUOTE_PORT=8090 diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 13ce94297e..3e561c3c9f 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -107,8 +107,8 @@ jobs: tag_suffix: payment context: ./ setup-qemu: true - - file: ./src/productcatalogservice/Dockerfile - tag_suffix: productcatalogservice + - file: ./src/product-catalog/Dockerfile + tag_suffix: product-catalog context: ./ setup-qemu: true - file: ./src/quote/Dockerfile diff --git a/.licenserc.json b/.licenserc.json index ce5eb313ba..c802c933e6 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -45,7 +45,7 @@ "src/checkoutservice/genproto/", "src/featureflagservice/assets/vendor/", "src/featureflagservice/priv/", - "src/productcatalogservice/genproto/", + "src/product-catalog/genproto/", "src/react-native-app/ios/Pods/", "src/react-native-app/ios/build/", "src/react-native-app/android/app/build/", diff --git a/CHANGELOG.md b/CHANGELOG.md index 2861f1bcc3..9cedc9a7c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,6 +64,8 @@ the release. ([#1863](https://github.com/open-telemetry/opentelemetry-demo/pull/1863)) * [recommendation] rename recommendationservice to recommendation ([#1865](https://github.com/open-telemetry/opentelemetry-demo/pull/1865)) +* [product-catalog] rename productcatalogservice to product-catalog + ([#1864](https://github.com/open-telemetry/opentelemetry-demo/pull/1864)) ## 1.12.0 diff --git a/Makefile b/Makefile index 7bb2f27153..c3e77ca408 100644 --- a/Makefile +++ b/Makefile @@ -139,7 +139,7 @@ docker-generate-protobuf: .PHONY: clean clean: - rm -rf ./src/{checkoutservice,productcatalogservice}/genproto/oteldemo/ + rm -rf ./src/{checkoutservice,product-catalog}/genproto/oteldemo/ rm -rf ./src/recommendation/{demo_pb2,demo_pb2_grpc}.py .PHONY: check-clean-work-tree diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index dc2714c84a..f9e55f2863 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -44,7 +44,7 @@ services: - EMAIL_ADDR - FRONTEND_ADDR - PAYMENT_ADDR - - PRODUCT_CATALOG_SERVICE_ADDR + - PRODUCT_CATALOG_ADDR - RECOMMENDATION_ADDR - SHIPPING_ADDR - KAFKA_SERVICE_ADDR @@ -75,7 +75,7 @@ services: condition: service_started payment: condition: service_started - productcatalogservice: + product-catalog: condition: service_started quote: condition: service_started diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 2066c6b2ac..b0d3474ecb 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -103,7 +103,7 @@ services: - EMAIL_ADDR - FLAGD_HOST - PAYMENT_ADDR - - PRODUCT_CATALOG_SERVICE_ADDR + - PRODUCT_CATALOG_ADDR - SHIPPING_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE @@ -118,7 +118,7 @@ services: condition: service_started payment: condition: service_started - productcatalogservice: + product-catalog: condition: service_started shipping: condition: service_started @@ -203,7 +203,7 @@ services: - CART_ADDR - CHECKOUT_SERVICE_ADDR - CURRENCY_ADDR - - PRODUCT_CATALOG_SERVICE_ADDR + - PRODUCT_CATALOG_ADDR - RECOMMENDATION_ADDR - SHIPPING_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT @@ -225,7 +225,7 @@ services: condition: service_started currency: condition: service_started - productcatalogservice: + product-catalog: condition: service_started quote: condition: service_started @@ -379,28 +379,28 @@ services: logging: *logging # Product Catalog service - productcatalogservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-productcatalogservice - container_name: product-catalog-service + product-catalog: + image: ${IMAGE_NAME}:${DEMO_VERSION}-product-catalog + container_name: product-catalog build: context: ./ dockerfile: ${PRODUCT_CATALOG_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-productcatalogservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-product-catalog deploy: resources: limits: memory: 20M restart: unless-stopped ports: - - "${PRODUCT_CATALOG_SERVICE_PORT}" + - "${PRODUCT_CATALOG_PORT}" environment: - FLAGD_HOST - - PRODUCT_CATALOG_SERVICE_PORT + - PRODUCT_CATALOG_PORT - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=productcatalogservice + - OTEL_SERVICE_NAME=product-catalog depends_on: otel-collector: condition: service_started @@ -453,7 +453,7 @@ services: environment: - FLAGD_HOST - RECOMMENDATION_PORT - - PRODUCT_CATALOG_SERVICE_ADDR + - PRODUCT_CATALOG_ADDR - OTEL_PYTHON_LOG_CORRELATION=true - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE @@ -461,7 +461,7 @@ services: - OTEL_SERVICE_NAME=recommendation - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python depends_on: - productcatalogservice: + product-catalog: condition: service_started otel-collector: condition: service_started diff --git a/docker-compose.yml b/docker-compose.yml index 22ee8e86ac..9bbe68949d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -136,7 +136,7 @@ services: - CURRENCY_ADDR - EMAIL_ADDR - PAYMENT_ADDR - - PRODUCT_CATALOG_SERVICE_ADDR + - PRODUCT_CATALOG_ADDR - SHIPPING_ADDR - KAFKA_SERVICE_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT @@ -152,7 +152,7 @@ services: condition: service_started payment: condition: service_started - productcatalogservice: + product-catalog: condition: service_started shipping: condition: service_started @@ -275,7 +275,7 @@ services: - CART_ADDR - CHECKOUT_SERVICE_ADDR - CURRENCY_ADDR - - PRODUCT_CATALOG_SERVICE_ADDR + - PRODUCT_CATALOG_ADDR - RECOMMENDATION_ADDR - SHIPPING_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT @@ -297,7 +297,7 @@ services: condition: service_started currency: condition: service_started - productcatalogservice: + product-catalog: condition: service_started quote: condition: service_started @@ -458,29 +458,29 @@ services: logging: *logging # Product Catalog service - productcatalogservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-productcatalogservice - container_name: product-catalog-service + product-catalog: + image: ${IMAGE_NAME}:${DEMO_VERSION}-product-catalog + container_name: product-catalog build: context: ./ dockerfile: ${PRODUCT_CATALOG_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-productcatalogservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-product-catalog deploy: resources: limits: memory: 20M restart: unless-stopped ports: - - "${PRODUCT_CATALOG_SERVICE_PORT}" + - "${PRODUCT_CATALOG_PORT}" environment: - - PRODUCT_CATALOG_SERVICE_PORT + - PRODUCT_CATALOG_PORT - FLAGD_HOST - FLAGD_PORT - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=productcatalogservice + - OTEL_SERVICE_NAME=product-catalog depends_on: otel-collector: condition: service_started @@ -534,7 +534,7 @@ services: - "${RECOMMENDATION_PORT}" environment: - RECOMMENDATION_PORT - - PRODUCT_CATALOG_SERVICE_ADDR + - PRODUCT_CATALOG_ADDR - FLAGD_HOST - FLAGD_PORT - OTEL_PYTHON_LOG_CORRELATION=true @@ -544,7 +544,7 @@ services: - OTEL_SERVICE_NAME=recommendation - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python depends_on: - productcatalogservice: + product-catalog: condition: service_started otel-collector: condition: service_started diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index 8a9a7364b7..656755b3c1 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -39,7 +39,7 @@ if [ -z "$1" ]; then #gen_proto_ruby email #gen_proto_ts frontend #gen_proto_js payment - gen_proto_go productcatalogservice + gen_proto_go product-catalog #gen_proto_php quote gen_proto_python recommendation #gen_proto_rust shipping diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index aabbdf5f38..7487ce1ab3 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -74,7 +74,7 @@ gen_proto_go checkoutservice gen_proto_ts frontend gen_proto_ts react-native-app gen_proto_js payment -gen_proto_go productcatalogservice +gen_proto_go product-catalog # gen_proto_php quote gen_proto_python recommendation gen_proto_rust shipping diff --git a/renovate.json5 b/renovate.json5 index 7155995f2a..88d31088db 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -75,8 +75,8 @@ "groupName": "payment", }, { - "matchFileNames": ["src/productcatalogservice/**"], - "groupName": "productcatalogservice", + "matchFileNames": ["src/product-catalog/**"], + "groupName": "product-catalog", }, { "matchFileNames": ["src/prometheus/**"], diff --git a/src/checkoutservice/main.go b/src/checkoutservice/main.go index 3f9c169199..46bf9d59f7 100644 --- a/src/checkoutservice/main.go +++ b/src/checkoutservice/main.go @@ -172,7 +172,7 @@ func main() { svc.shippingSvcClient = pb.NewShippingServiceClient(c) defer c.Close() - mustMapEnv(&svc.productCatalogSvcAddr, "PRODUCT_CATALOG_SERVICE_ADDR") + mustMapEnv(&svc.productCatalogSvcAddr, "PRODUCT_CATALOG_ADDR") c = mustCreateClient(svc.productCatalogSvcAddr) svc.productCatalogSvcClient = pb.NewProductCatalogServiceClient(c) defer c.Close() diff --git a/src/frontend/gateways/rpc/ProductCatalog.gateway.ts b/src/frontend/gateways/rpc/ProductCatalog.gateway.ts index 8b0783ec5f..18d83053ed 100644 --- a/src/frontend/gateways/rpc/ProductCatalog.gateway.ts +++ b/src/frontend/gateways/rpc/ProductCatalog.gateway.ts @@ -4,9 +4,9 @@ import { ChannelCredentials } from '@grpc/grpc-js'; import { ListProductsResponse, Product, ProductCatalogServiceClient } from '../../protos/demo'; -const { PRODUCT_CATALOG_SERVICE_ADDR = '' } = process.env; +const { PRODUCT_CATALOG_ADDR = '' } = process.env; -const client = new ProductCatalogServiceClient(PRODUCT_CATALOG_SERVICE_ADDR, ChannelCredentials.createInsecure()); +const client = new ProductCatalogServiceClient(PRODUCT_CATALOG_ADDR, ChannelCredentials.createInsecure()); const ProductCatalogGateway = () => ({ listProducts() { diff --git a/src/frontend/next.config.js b/src/frontend/next.config.js index 98e3e53f48..753e112a0e 100755 --- a/src/frontend/next.config.js +++ b/src/frontend/next.config.js @@ -17,7 +17,7 @@ const { CART_ADDR = '', CHECKOUT_SERVICE_ADDR = '', CURRENCY_ADDR = '', - PRODUCT_CATALOG_SERVICE_ADDR = '', + PRODUCT_CATALOG_ADDR = '', RECOMMENDATION_ADDR = '', SHIPPING_ADDR = '', ENV_PLATFORM = '', @@ -49,7 +49,7 @@ const nextConfig = { CART_ADDR, CHECKOUT_SERVICE_ADDR, CURRENCY_ADDR, - PRODUCT_CATALOG_SERVICE_ADDR, + PRODUCT_CATALOG_ADDR, RECOMMENDATION_ADDR, SHIPPING_ADDR, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT, diff --git a/src/product-catalog/Dockerfile b/src/product-catalog/Dockerfile new file mode 100644 index 0000000000..66fb63f0da --- /dev/null +++ b/src/product-catalog/Dockerfile @@ -0,0 +1,27 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + + +FROM golang:1.22-alpine AS builder + +WORKDIR /usr/src/app/ + +RUN --mount=type=cache,target=/go/pkg/mod/ \ + --mount=type=bind,source=./src/product-catalog/go.sum,target=go.sum \ + --mount=type=bind,source=./src/product-catalog/go.mod,target=go.mod \ + go mod download + +RUN --mount=type=cache,target=/go/pkg/mod/ \ + --mount=type=cache,target=/root/.cache/go-build \ + --mount=type=bind,rw,source=./src/product-catalog,target=. \ + go build -ldflags "-s -w" -o /go/bin/product-catalog/ ./ + +FROM alpine AS release + +WORKDIR /usr/src/app/ + +COPY ./src/product-catalog/products/ ./products/ +COPY --from=builder /go/bin/product-catalog/ ./ + +EXPOSE ${PRODUCT_CATALOG_PORT} +ENTRYPOINT [ "./product-catalog" ] diff --git a/src/productcatalogservice/README.md b/src/product-catalog/README.md similarity index 88% rename from src/productcatalogservice/README.md rename to src/product-catalog/README.md index 99b3d7c1bf..ca4970d623 100644 --- a/src/productcatalogservice/README.md +++ b/src/product-catalog/README.md @@ -12,7 +12,7 @@ When this service is run the output should be similar to the following To build the service binary, run: ```sh -go build -o /go/bin/productcatalogservice/ +go build -o /go/bin/product-catalog/ ``` ## Docker Build @@ -20,7 +20,7 @@ go build -o /go/bin/productcatalogservice/ From the root directory, run: ```sh -docker compose build productcatalogservice +docker compose build product-catalog ``` ## Regenerate protos diff --git a/src/productcatalogservice/genproto/Dockerfile b/src/product-catalog/genproto/Dockerfile similarity index 73% rename from src/productcatalogservice/genproto/Dockerfile rename to src/product-catalog/genproto/Dockerfile index d313bb0cc4..3c5f118ef1 100644 --- a/src/productcatalogservice/genproto/Dockerfile +++ b/src/product-catalog/genproto/Dockerfile @@ -7,9 +7,9 @@ WORKDIR /build RUN apk add --no-cache protobuf-dev -COPY ./src/productcatalogservice/go.mod ./ -COPY ./src/productcatalogservice/go.sum ./ -COPY ./src/productcatalogservice/tools.go ./ +COPY ./src/product-catalog/go.mod ./ +COPY ./src/product-catalog/go.sum ./ +COPY ./src/product-catalog/tools.go ./ RUN go env -w GOMODCACHE=/root/.cache/go-build RUN --mount=type=cache,target=/root/.cache/go-build \ diff --git a/src/productcatalogservice/genproto/oteldemo/demo.pb.go b/src/product-catalog/genproto/oteldemo/demo.pb.go similarity index 100% rename from src/productcatalogservice/genproto/oteldemo/demo.pb.go rename to src/product-catalog/genproto/oteldemo/demo.pb.go diff --git a/src/productcatalogservice/genproto/oteldemo/demo_grpc.pb.go b/src/product-catalog/genproto/oteldemo/demo_grpc.pb.go similarity index 100% rename from src/productcatalogservice/genproto/oteldemo/demo_grpc.pb.go rename to src/product-catalog/genproto/oteldemo/demo_grpc.pb.go diff --git a/src/productcatalogservice/go.mod b/src/product-catalog/go.mod similarity index 97% rename from src/productcatalogservice/go.mod rename to src/product-catalog/go.mod index 93478a1c55..745ca6d017 100644 --- a/src/productcatalogservice/go.mod +++ b/src/product-catalog/go.mod @@ -1,4 +1,4 @@ -module github.com/opentelemetry/opentelemetry-demo/src/productcatalogservice +module github.com/opentelemetry/opentelemetry-demo/src/product-catalog go 1.22.7 diff --git a/src/productcatalogservice/go.sum b/src/product-catalog/go.sum similarity index 100% rename from src/productcatalogservice/go.sum rename to src/product-catalog/go.sum diff --git a/src/productcatalogservice/main.go b/src/product-catalog/main.go similarity index 95% rename from src/productcatalogservice/main.go rename to src/product-catalog/main.go index 12cfd4b53f..ae6393d994 100644 --- a/src/productcatalogservice/main.go +++ b/src/product-catalog/main.go @@ -36,7 +36,7 @@ import ( otelhooks "github.com/open-feature/go-sdk-contrib/hooks/open-telemetry/pkg" flagd "github.com/open-feature/go-sdk-contrib/providers/flagd/pkg" "github.com/open-feature/go-sdk/openfeature" - pb "github.com/opentelemetry/opentelemetry-demo/src/productcatalogservice/genproto/oteldemo" + pb "github.com/opentelemetry/opentelemetry-demo/src/product-catalog/genproto/oteldemo" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials/insecure" @@ -141,9 +141,9 @@ func main() { svc := &productCatalog{} var port string - mustMapEnv(&port, "PRODUCT_CATALOG_SERVICE_PORT") + mustMapEnv(&port, "PRODUCT_CATALOG_PORT") - log.Infof("ProductCatalogService gRPC server started on port: %s", port) + log.Infof("Product Catalog gRPC server started on port: %s", port) ln, err := net.Listen("tcp", fmt.Sprintf(":%s", port)) if err != nil { @@ -171,7 +171,7 @@ func main() { <-ctx.Done() srv.GracefulStop() - log.Println("ProductCatalogService gRPC server stopped") + log.Println("Product Catalog gRPC server stopped") } type productCatalog struct { @@ -252,7 +252,7 @@ func (p *productCatalog) GetProduct(ctx context.Context, req *pb.GetProductReque // GetProduct will fail on a specific product when feature flag is enabled if p.checkProductFailure(ctx, req.Id) { - msg := fmt.Sprintf("Error: ProductCatalogService Fail Feature Flag Enabled") + msg := fmt.Sprintf("Error: Product Catalog Fail Feature Flag Enabled") span.SetStatus(otelcodes.Error, msg) span.AddEvent(msg) return nil, status.Errorf(codes.Internal, msg) diff --git a/src/productcatalogservice/products/products.json b/src/product-catalog/products/products.json similarity index 100% rename from src/productcatalogservice/products/products.json rename to src/product-catalog/products/products.json diff --git a/src/productcatalogservice/tools.go b/src/product-catalog/tools.go similarity index 100% rename from src/productcatalogservice/tools.go rename to src/product-catalog/tools.go diff --git a/src/productcatalogservice/Dockerfile b/src/productcatalogservice/Dockerfile deleted file mode 100644 index f954743401..0000000000 --- a/src/productcatalogservice/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright The OpenTelemetry Authors -# SPDX-License-Identifier: Apache-2.0 - - -FROM golang:1.22-alpine AS builder - -WORKDIR /usr/src/app/ - -RUN --mount=type=cache,target=/go/pkg/mod/ \ - --mount=type=bind,source=./src/productcatalogservice/go.sum,target=go.sum \ - --mount=type=bind,source=./src/productcatalogservice/go.mod,target=go.mod \ - go mod download - -RUN --mount=type=cache,target=/go/pkg/mod/ \ - --mount=type=cache,target=/root/.cache/go-build \ - --mount=type=bind,rw,source=./src/productcatalogservice,target=. \ - go build -ldflags "-s -w" -o /go/bin/productcatalogservice/ ./ - -FROM alpine AS release - -WORKDIR /usr/src/app/ - -COPY ./src/productcatalogservice/products/ ./products/ -COPY --from=builder /go/bin/productcatalogservice/ ./ - -EXPOSE ${PRODUCT_SERVICE_PORT} -ENTRYPOINT [ "./productcatalogservice" ] diff --git a/src/recommendation/recommendation_server.py b/src/recommendation/recommendation_server.py index fd25359ea9..df681bfccc 100644 --- a/src/recommendation/recommendation_server.py +++ b/src/recommendation/recommendation_server.py @@ -153,7 +153,7 @@ def check_feature_flag(flag_name: str): logger = logging.getLogger('main') logger.addHandler(handler) - catalog_addr = must_map_env('PRODUCT_CATALOG_SERVICE_ADDR') + catalog_addr = must_map_env('PRODUCT_CATALOG_ADDR') pc_channel = grpc.insecure_channel(catalog_addr) product_catalog_stub = demo_pb2_grpc.ProductCatalogServiceStub(pc_channel) diff --git a/test/tracetesting/productcatalogservice/all.yaml b/test/tracetesting/product-catalog/all.yaml similarity index 52% rename from test/tracetesting/productcatalogservice/all.yaml rename to test/tracetesting/product-catalog/all.yaml index d52c24142a..21f7a12b7a 100644 --- a/test/tracetesting/productcatalogservice/all.yaml +++ b/test/tracetesting/product-catalog/all.yaml @@ -3,9 +3,9 @@ type: TestSuite spec: - id: product-catalog-service-all - name: 'Product Catalog Service' - description: Run all Product Catalog Service tests enabled in sequence + id: product-catalog-all + name: 'Product Catalog' + description: Run all Product Catalog tests enabled in sequence steps: - ./list.yaml - ./get.yaml diff --git a/test/tracetesting/productcatalogservice/get.yaml b/test/tracetesting/product-catalog/get.yaml similarity index 96% rename from test/tracetesting/productcatalogservice/get.yaml rename to test/tracetesting/product-catalog/get.yaml index 297f1a51b4..a1e26c4c3a 100644 --- a/test/tracetesting/productcatalogservice/get.yaml +++ b/test/tracetesting/product-catalog/get.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:PRODUCT_CATALOG_SERVICE_ADDR} + address: ${var:PRODUCT_CATALOG_ADDR} method: oteldemo.ProductCatalogService.GetProduct request: |- { diff --git a/test/tracetesting/productcatalogservice/list.yaml b/test/tracetesting/product-catalog/list.yaml similarity index 94% rename from test/tracetesting/productcatalogservice/list.yaml rename to test/tracetesting/product-catalog/list.yaml index 1b124d2dfc..92adadb78e 100644 --- a/test/tracetesting/productcatalogservice/list.yaml +++ b/test/tracetesting/product-catalog/list.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:PRODUCT_CATALOG_SERVICE_ADDR} + address: ${var:PRODUCT_CATALOG_ADDR} method: oteldemo.ProductCatalogService.ListProducts request: "" specs: diff --git a/test/tracetesting/productcatalogservice/search.yaml b/test/tracetesting/product-catalog/search.yaml similarity index 95% rename from test/tracetesting/productcatalogservice/search.yaml rename to test/tracetesting/product-catalog/search.yaml index 50d925375c..fe211b8e7c 100644 --- a/test/tracetesting/productcatalogservice/search.yaml +++ b/test/tracetesting/product-catalog/search.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:PRODUCT_CATALOG_SERVICE_ADDR} + address: ${var:PRODUCT_CATALOG_ADDR} method: oteldemo.ProductCatalogService.SearchProducts request: |- { diff --git a/test/tracetesting/run.bash b/test/tracetesting/run.bash index 15c15263c2..96efd03630 100755 --- a/test/tracetesting/run.bash +++ b/test/tracetesting/run.bash @@ -8,7 +8,7 @@ set -e # Availalble services to test -ALL_SERVICES=("ad" "cart" "currency" "checkoutservice" "frontend" "email" "payment" "productcatalogservice" "recommendation" "shipping") +ALL_SERVICES=("ad" "cart" "currency" "checkoutservice" "frontend" "email" "payment" "product-catalog" "recommendation" "shipping") ## Script variables # Will contain the list of services to test @@ -48,8 +48,8 @@ spec: value: $FRONTEND_ADDR - key: PAYMENT_ADDR value: $PAYMENT_ADDR - - key: PRODUCT_CATALOG_SERVICE_ADDR - value: $PRODUCT_CATALOG_SERVICE_ADDR + - key: PRODUCT_CATALOG_ADDR + value: $PRODUCT_CATALOG_ADDR - key: RECOMMENDATION_ADDR value: $RECOMMENDATION_ADDR - key: SHIPPING_ADDR From 0a39d4446596318ede4248c9442c690244e6501c Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Thu, 9 Jan 2025 21:37:00 -0500 Subject: [PATCH 059/178] [checkout] rename checkoutservice to checkout (#1867) * rename checkoutservice to checkout * rename checkoutservice to checkout --- .env | 6 +-- .github/workflows/component-build-images.yml | 4 +- .licenserc.json | 2 +- CHANGELOG.md | 2 + Makefile | 2 +- docker-compose-tests.yml | 4 +- docker-compose.minimal.yml | 20 ++++----- docker-compose.yml | 20 ++++----- docker-gen-proto.sh | 2 +- ide-gen-proto.sh | 2 +- renovate.json5 | 4 +- src/checkout/Dockerfile | 26 +++++++++++ src/{checkoutservice => checkout}/README.md | 4 +- .../genproto/Dockerfile | 6 +-- .../genproto/oteldemo/demo.pb.go | 0 .../genproto/oteldemo/demo_grpc.pb.go | 0 src/{checkoutservice => checkout}/go.mod | 2 +- src/{checkoutservice => checkout}/go.sum | 0 .../kafka/producer.go | 0 src/{checkoutservice => checkout}/main.go | 44 +++++++++---------- .../money/money.go | 2 +- .../money/money_test.go | 2 +- src/{checkoutservice => checkout}/tools.go | 0 src/checkoutservice/Dockerfile | 26 ----------- src/frontend/gateways/rpc/Checkout.gateway.ts | 4 +- src/frontend/next.config.js | 4 +- .../{checkoutservice => checkout}/all.yaml | 2 +- .../place-order.yaml | 2 +- test/tracetesting/run.bash | 6 +-- 29 files changed, 100 insertions(+), 98 deletions(-) create mode 100644 src/checkout/Dockerfile rename src/{checkoutservice => checkout}/README.md (84%) rename src/{checkoutservice => checkout}/genproto/Dockerfile (76%) rename src/{checkoutservice => checkout}/genproto/oteldemo/demo.pb.go (100%) rename src/{checkoutservice => checkout}/genproto/oteldemo/demo_grpc.pb.go (100%) rename src/{checkoutservice => checkout}/go.mod (99%) rename src/{checkoutservice => checkout}/go.sum (100%) rename src/{checkoutservice => checkout}/kafka/producer.go (100%) rename src/{checkoutservice => checkout}/main.go (89%) rename src/{checkoutservice => checkout}/money/money.go (97%) rename src/{checkoutservice => checkout}/money/money_test.go (98%) rename src/{checkoutservice => checkout}/tools.go (100%) delete mode 100644 src/checkoutservice/Dockerfile rename test/tracetesting/{checkoutservice => checkout}/all.yaml (89%) rename test/tracetesting/{checkoutservice => checkout}/place-order.yaml (97%) diff --git a/.env b/.env index a98f85dae5..93ee840b82 100644 --- a/.env +++ b/.env @@ -59,9 +59,9 @@ CART_ADDR=cart:${CART_PORT} CART_DOCKERFILE=./src/cart/src/Dockerfile # Checkout Service -CHECKOUT_SERVICE_PORT=5050 -CHECKOUT_SERVICE_ADDR=checkoutservice:${CHECKOUT_SERVICE_PORT} -CHECKOUT_SERVICE_DOCKERFILE=./src/checkoutservice/Dockerfile +CHECKOUT_PORT=5050 +CHECKOUT_ADDR=checkout:${CHECKOUT_PORT} +CHECKOUT_DOCKERFILE=./src/checkout/Dockerfile # Currency Service CURRENCY_PORT=7001 diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 3e561c3c9f..7e4bd9ad59 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -63,8 +63,8 @@ jobs: tag_suffix: cart context: ./ setup-qemu: false - - file: ./src/checkoutservice/Dockerfile - tag_suffix: checkoutservice + - file: ./src/checkout/Dockerfile + tag_suffix: checkout context: ./ setup-qemu: true - file: ./src/currency/Dockerfile diff --git a/.licenserc.json b/.licenserc.json index c802c933e6..56a700cd0a 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -42,7 +42,7 @@ "src/cart/src/obj/", "src/cart/tests/obj/", "src/currency/build/", - "src/checkoutservice/genproto/", + "src/checkout/genproto/", "src/featureflagservice/assets/vendor/", "src/featureflagservice/priv/", "src/product-catalog/genproto/", diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cedc9a7c8..57308f4620 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -66,6 +66,8 @@ the release. ([#1865](https://github.com/open-telemetry/opentelemetry-demo/pull/1865)) * [product-catalog] rename productcatalogservice to product-catalog ([#1864](https://github.com/open-telemetry/opentelemetry-demo/pull/1864)) +* [checkout] rename checkoutservice to checkout + ([#1867](https://github.com/open-telemetry/opentelemetry-demo/pull/1867)) ## 1.12.0 diff --git a/Makefile b/Makefile index c3e77ca408..a10756b585 100644 --- a/Makefile +++ b/Makefile @@ -139,7 +139,7 @@ docker-generate-protobuf: .PHONY: clean clean: - rm -rf ./src/{checkoutservice,product-catalog}/genproto/oteldemo/ + rm -rf ./src/{checkout,product-catalog}/genproto/oteldemo/ rm -rf ./src/recommendation/{demo_pb2,demo_pb2_grpc}.py .PHONY: check-clean-work-tree diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index f9e55f2863..ea12ae7d14 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -39,7 +39,7 @@ services: environment: - AD_ADDR - CART_ADDR - - CHECKOUT_SERVICE_ADDR + - CHECKOUT_ADDR - CURRENCY_ADDR - EMAIL_ADDR - FRONTEND_ADDR @@ -63,7 +63,7 @@ services: condition: service_started cart: condition: service_started - checkoutservice: + checkout: condition: service_started currency: condition: service_started diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index b0d3474ecb..1488d4c77a 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -81,23 +81,23 @@ services: logging: *logging # Checkout service - checkoutservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-checkoutservice - container_name: checkout-service + checkout: + image: ${IMAGE_NAME}:${DEMO_VERSION}-checkout + container_name: checkout build: context: ./ - dockerfile: ${CHECKOUT_SERVICE_DOCKERFILE} + dockerfile: ${CHECKOUT_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-checkoutservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-checkout deploy: resources: limits: memory: 20M restart: unless-stopped ports: - - "${CHECKOUT_SERVICE_PORT}" + - "${CHECKOUT_PORT}" environment: - - CHECKOUT_SERVICE_PORT + - CHECKOUT_PORT - CART_ADDR - CURRENCY_ADDR - EMAIL_ADDR @@ -108,7 +108,7 @@ services: - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=checkoutservice + - OTEL_SERVICE_NAME=checkout depends_on: cart: condition: service_started @@ -201,7 +201,7 @@ services: - FRONTEND_ADDR - AD_ADDR - CART_ADDR - - CHECKOUT_SERVICE_ADDR + - CHECKOUT_ADDR - CURRENCY_ADDR - PRODUCT_CATALOG_ADDR - RECOMMENDATION_ADDR @@ -221,7 +221,7 @@ services: condition: service_started cart: condition: service_started - checkoutservice: + checkout: condition: service_started currency: condition: service_started diff --git a/docker-compose.yml b/docker-compose.yml index 9bbe68949d..c49c4411d6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -113,25 +113,25 @@ services: logging: *logging # Checkout service - checkoutservice: - image: ${IMAGE_NAME}:${DEMO_VERSION}-checkoutservice - container_name: checkout-service + checkout: + image: ${IMAGE_NAME}:${DEMO_VERSION}-checkout + container_name: checkout build: context: ./ - dockerfile: ${CHECKOUT_SERVICE_DOCKERFILE} + dockerfile: ${CHECKOUT_DOCKERFILE} cache_from: - - ${IMAGE_NAME}:${IMAGE_VERSION}-checkoutservice + - ${IMAGE_NAME}:${IMAGE_VERSION}-checkout deploy: resources: limits: memory: 20M restart: unless-stopped ports: - - "${CHECKOUT_SERVICE_PORT}" + - "${CHECKOUT_PORT}" environment: - FLAGD_HOST - FLAGD_PORT - - CHECKOUT_SERVICE_PORT + - CHECKOUT_PORT - CART_ADDR - CURRENCY_ADDR - EMAIL_ADDR @@ -142,7 +142,7 @@ services: - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - - OTEL_SERVICE_NAME=checkoutservice + - OTEL_SERVICE_NAME=checkout depends_on: cart: condition: service_started @@ -273,7 +273,7 @@ services: - FRONTEND_ADDR - AD_ADDR - CART_ADDR - - CHECKOUT_SERVICE_ADDR + - CHECKOUT_ADDR - CURRENCY_ADDR - PRODUCT_CATALOG_ADDR - RECOMMENDATION_ADDR @@ -293,7 +293,7 @@ services: condition: service_started cart: condition: service_started - checkoutservice: + checkout: condition: service_started currency: condition: service_started diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index 656755b3c1..6b08921a6d 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -34,7 +34,7 @@ if [ -z "$1" ]; then #gen_proto_dotnet accounting #gen_proto_java ad #gen_proto_dotnet cart - gen_proto_go checkoutservice + gen_proto_go checkout gen_proto_cpp currency #gen_proto_ruby email #gen_proto_ts frontend diff --git a/ide-gen-proto.sh b/ide-gen-proto.sh index 7487ce1ab3..ec144317ed 100755 --- a/ide-gen-proto.sh +++ b/ide-gen-proto.sh @@ -68,7 +68,7 @@ gen_proto_ts() { gen_proto_dotnet accounting # gen_proto_java ad gen_proto_dotnet cart -gen_proto_go checkoutservice +gen_proto_go checkout # gen_proto_cpp currency # gen_proto_ruby email gen_proto_ts frontend diff --git a/renovate.json5 b/renovate.json5 index 88d31088db..bccb4909a4 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -27,8 +27,8 @@ "groupName": "cart", }, { - "matchFileNames": ["src/checkoutservice/**"], - "groupName": "checkoutservice", + "matchFileNames": ["src/checkout/**"], + "groupName": "checkout", }, { "matchFileNames": ["src/currency/**"], diff --git a/src/checkout/Dockerfile b/src/checkout/Dockerfile new file mode 100644 index 0000000000..425c1a46ac --- /dev/null +++ b/src/checkout/Dockerfile @@ -0,0 +1,26 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + + +FROM golang:1.22-alpine AS builder + +WORKDIR /usr/src/app/ + +RUN --mount=type=cache,target=/go/pkg/mod/ \ + --mount=type=bind,source=./src/checkout/go.sum,target=go.sum \ + --mount=type=bind,source=./src/checkout/go.mod,target=go.mod \ + go mod download + +RUN --mount=type=cache,target=/go/pkg/mod/ \ + --mount=type=cache,target=/root/.cache/go-build \ + --mount=type=bind,rw,source=./src/checkout,target=. \ + go build -ldflags "-s -w" -o /go/bin/checkout/ ./ + +FROM alpine + +WORKDIR /usr/src/app/ + +COPY --from=builder /go/bin/checkout/ ./ + +EXPOSE ${CHECKOUT_PORT} +ENTRYPOINT [ "./checkout" ] diff --git a/src/checkoutservice/README.md b/src/checkout/README.md similarity index 84% rename from src/checkoutservice/README.md rename to src/checkout/README.md index 30c76323d0..28064bda47 100644 --- a/src/checkoutservice/README.md +++ b/src/checkout/README.md @@ -7,7 +7,7 @@ This service provides checkout services for the application. To build the service binary, run: ```sh -go build -o /go/bin/checkoutservice/ +go build -o /go/bin/checkout/ ``` ## Docker Build @@ -15,7 +15,7 @@ go build -o /go/bin/checkoutservice/ From the root directory, run: ```sh -docker compose build checkoutservice +docker compose build checkout ``` ## Regenerate protos diff --git a/src/checkoutservice/genproto/Dockerfile b/src/checkout/genproto/Dockerfile similarity index 76% rename from src/checkoutservice/genproto/Dockerfile rename to src/checkout/genproto/Dockerfile index edc92ccee3..357329e128 100644 --- a/src/checkoutservice/genproto/Dockerfile +++ b/src/checkout/genproto/Dockerfile @@ -7,9 +7,9 @@ WORKDIR /build RUN apk add --no-cache protobuf-dev -COPY ./src/checkoutservice/go.mod ./ -COPY ./src/checkoutservice/go.sum ./ -COPY ./src/checkoutservice/tools.go ./ +COPY ./src/checkout/go.mod ./ +COPY ./src/checkout/go.sum ./ +COPY ./src/checkout/tools.go ./ RUN go env -w GOMODCACHE=/root/.cache/go-build RUN --mount=type=cache,target=/root/.cache/go-build \ diff --git a/src/checkoutservice/genproto/oteldemo/demo.pb.go b/src/checkout/genproto/oteldemo/demo.pb.go similarity index 100% rename from src/checkoutservice/genproto/oteldemo/demo.pb.go rename to src/checkout/genproto/oteldemo/demo.pb.go diff --git a/src/checkoutservice/genproto/oteldemo/demo_grpc.pb.go b/src/checkout/genproto/oteldemo/demo_grpc.pb.go similarity index 100% rename from src/checkoutservice/genproto/oteldemo/demo_grpc.pb.go rename to src/checkout/genproto/oteldemo/demo_grpc.pb.go diff --git a/src/checkoutservice/go.mod b/src/checkout/go.mod similarity index 99% rename from src/checkoutservice/go.mod rename to src/checkout/go.mod index 1b883a3ba3..1b189e7fbb 100644 --- a/src/checkoutservice/go.mod +++ b/src/checkout/go.mod @@ -1,4 +1,4 @@ -module github.com/open-telemetry/opentelemetry-demo/src/checkoutservice +module github.com/open-telemetry/opentelemetry-demo/src/checkout go 1.22.7 diff --git a/src/checkoutservice/go.sum b/src/checkout/go.sum similarity index 100% rename from src/checkoutservice/go.sum rename to src/checkout/go.sum diff --git a/src/checkoutservice/kafka/producer.go b/src/checkout/kafka/producer.go similarity index 100% rename from src/checkoutservice/kafka/producer.go rename to src/checkout/kafka/producer.go diff --git a/src/checkoutservice/main.go b/src/checkout/main.go similarity index 89% rename from src/checkoutservice/main.go rename to src/checkout/main.go index 46bf9d59f7..feea6937d5 100644 --- a/src/checkoutservice/main.go +++ b/src/checkout/main.go @@ -42,9 +42,9 @@ import ( "google.golang.org/grpc/status" "google.golang.org/protobuf/proto" - pb "github.com/open-telemetry/opentelemetry-demo/src/checkoutservice/genproto/oteldemo" - "github.com/open-telemetry/opentelemetry-demo/src/checkoutservice/kafka" - "github.com/open-telemetry/opentelemetry-demo/src/checkoutservice/money" + pb "github.com/open-telemetry/opentelemetry-demo/src/checkout/genproto/oteldemo" + "github.com/open-telemetry/opentelemetry-demo/src/checkout/kafka" + "github.com/open-telemetry/opentelemetry-demo/src/checkout/money" ) //go:generate go install google.golang.org/protobuf/cmd/protoc-gen-go @@ -119,7 +119,7 @@ func initMeterProvider() *sdkmetric.MeterProvider { return mp } -type checkoutService struct { +type checkout struct { productCatalogSvcAddr string cartSvcAddr string currencySvcAddr string @@ -139,7 +139,7 @@ type checkoutService struct { func main() { var port string - mustMapEnv(&port, "CHECKOUT_SERVICE_PORT") + mustMapEnv(&port, "CHECKOUT_PORT") tp := initTracerProvider() defer func() { @@ -163,9 +163,9 @@ func main() { openfeature.SetProvider(flagd.NewProvider()) openfeature.AddHooks(otelhooks.NewTracesHook()) - tracer = tp.Tracer("checkoutservice") + tracer = tp.Tracer("checkout") - svc := new(checkoutService) + svc := new(checkout) mustMapEnv(&svc.shippingSvcAddr, "SHIPPING_ADDR") c := mustCreateClient(svc.shippingSvcAddr) @@ -231,15 +231,15 @@ func mustMapEnv(target *string, envKey string) { *target = v } -func (cs *checkoutService) Check(ctx context.Context, req *healthpb.HealthCheckRequest) (*healthpb.HealthCheckResponse, error) { +func (cs *checkout) Check(ctx context.Context, req *healthpb.HealthCheckRequest) (*healthpb.HealthCheckResponse, error) { return &healthpb.HealthCheckResponse{Status: healthpb.HealthCheckResponse_SERVING}, nil } -func (cs *checkoutService) Watch(req *healthpb.HealthCheckRequest, ws healthpb.Health_WatchServer) error { +func (cs *checkout) Watch(req *healthpb.HealthCheckRequest, ws healthpb.Health_WatchServer) error { return status.Errorf(codes.Unimplemented, "health check via Watch not implemented") } -func (cs *checkoutService) PlaceOrder(ctx context.Context, req *pb.PlaceOrderRequest) (*pb.PlaceOrderResponse, error) { +func (cs *checkout) PlaceOrder(ctx context.Context, req *pb.PlaceOrderRequest) (*pb.PlaceOrderResponse, error) { span := trace.SpanFromContext(ctx) span.SetAttributes( attribute.String("app.user.id", req.UserId), @@ -332,7 +332,7 @@ type orderPrep struct { shippingCostLocalized *pb.Money } -func (cs *checkoutService) prepareOrderItemsAndShippingQuoteFromCart(ctx context.Context, userID, userCurrency string, address *pb.Address) (orderPrep, error) { +func (cs *checkout) prepareOrderItemsAndShippingQuoteFromCart(ctx context.Context, userID, userCurrency string, address *pb.Address) (orderPrep, error) { ctx, span := tracer.Start(ctx, "prepareOrderItemsAndShippingQuoteFromCart") defer span.End() @@ -385,7 +385,7 @@ func mustCreateClient(svcAddr string) *grpc.ClientConn { return c } -func (cs *checkoutService) quoteShipping(ctx context.Context, address *pb.Address, items []*pb.CartItem) (*pb.Money, error) { +func (cs *checkout) quoteShipping(ctx context.Context, address *pb.Address, items []*pb.CartItem) (*pb.Money, error) { shippingQuote, err := cs.shippingSvcClient. GetQuote(ctx, &pb.GetQuoteRequest{ Address: address, @@ -396,7 +396,7 @@ func (cs *checkoutService) quoteShipping(ctx context.Context, address *pb.Addres return shippingQuote.GetCostUsd(), nil } -func (cs *checkoutService) getUserCart(ctx context.Context, userID string) ([]*pb.CartItem, error) { +func (cs *checkout) getUserCart(ctx context.Context, userID string) ([]*pb.CartItem, error) { cart, err := cs.cartSvcClient.GetCart(ctx, &pb.GetCartRequest{UserId: userID}) if err != nil { return nil, fmt.Errorf("failed to get user cart during checkout: %+v", err) @@ -404,14 +404,14 @@ func (cs *checkoutService) getUserCart(ctx context.Context, userID string) ([]*p return cart.GetItems(), nil } -func (cs *checkoutService) emptyUserCart(ctx context.Context, userID string) error { +func (cs *checkout) emptyUserCart(ctx context.Context, userID string) error { if _, err := cs.cartSvcClient.EmptyCart(ctx, &pb.EmptyCartRequest{UserId: userID}); err != nil { return fmt.Errorf("failed to empty user cart during checkout: %+v", err) } return nil } -func (cs *checkoutService) prepOrderItems(ctx context.Context, items []*pb.CartItem, userCurrency string) ([]*pb.OrderItem, error) { +func (cs *checkout) prepOrderItems(ctx context.Context, items []*pb.CartItem, userCurrency string) ([]*pb.OrderItem, error) { out := make([]*pb.OrderItem, len(items)) for i, item := range items { @@ -430,7 +430,7 @@ func (cs *checkoutService) prepOrderItems(ctx context.Context, items []*pb.CartI return out, nil } -func (cs *checkoutService) convertCurrency(ctx context.Context, from *pb.Money, toCurrency string) (*pb.Money, error) { +func (cs *checkout) convertCurrency(ctx context.Context, from *pb.Money, toCurrency string) (*pb.Money, error) { result, err := cs.currencySvcClient.Convert(ctx, &pb.CurrencyConversionRequest{ From: from, ToCode: toCurrency}) @@ -440,7 +440,7 @@ func (cs *checkoutService) convertCurrency(ctx context.Context, from *pb.Money, return result, err } -func (cs *checkoutService) chargeCard(ctx context.Context, amount *pb.Money, paymentInfo *pb.CreditCardInfo) (string, error) { +func (cs *checkout) chargeCard(ctx context.Context, amount *pb.Money, paymentInfo *pb.CreditCardInfo) (string, error) { paymentService := cs.paymentSvcClient if cs.isFeatureFlagEnabled(ctx, "paymentUnreachable") { badAddress := "badAddress:50051" @@ -457,7 +457,7 @@ func (cs *checkoutService) chargeCard(ctx context.Context, amount *pb.Money, pay return paymentResp.GetTransactionId(), nil } -func (cs *checkoutService) sendOrderConfirmation(ctx context.Context, email string, order *pb.OrderResult) error { +func (cs *checkout) sendOrderConfirmation(ctx context.Context, email string, order *pb.OrderResult) error { emailPayload, err := json.Marshal(map[string]interface{}{ "email": email, "order": order, @@ -479,7 +479,7 @@ func (cs *checkoutService) sendOrderConfirmation(ctx context.Context, email stri return err } -func (cs *checkoutService) shipOrder(ctx context.Context, address *pb.Address, items []*pb.CartItem) (string, error) { +func (cs *checkout) shipOrder(ctx context.Context, address *pb.Address, items []*pb.CartItem) (string, error) { resp, err := cs.shippingSvcClient.ShipOrder(ctx, &pb.ShipOrderRequest{ Address: address, Items: items}) @@ -489,7 +489,7 @@ func (cs *checkoutService) shipOrder(ctx context.Context, address *pb.Address, i return resp.GetTrackingId(), nil } -func (cs *checkoutService) sendToPostProcessor(ctx context.Context, result *pb.OrderResult) { +func (cs *checkout) sendToPostProcessor(ctx context.Context, result *pb.OrderResult) { message, err := proto.Marshal(result) if err != nil { log.Errorf("Failed to marshal message to protobuf: %+v", err) @@ -582,7 +582,7 @@ func createProducerSpan(ctx context.Context, msg *sarama.ProducerMessage) trace. return span } -func (cs *checkoutService) isFeatureFlagEnabled(ctx context.Context, featureFlagName string) bool { +func (cs *checkout) isFeatureFlagEnabled(ctx context.Context, featureFlagName string) bool { client := openfeature.NewClient("checkout") // Default value is set to false, but you could also make this a parameter. @@ -596,7 +596,7 @@ func (cs *checkoutService) isFeatureFlagEnabled(ctx context.Context, featureFlag return featureEnabled } -func (cs *checkoutService) getIntFeatureFlag(ctx context.Context, featureFlagName string) int { +func (cs *checkout) getIntFeatureFlag(ctx context.Context, featureFlagName string) int { client := openfeature.NewClient("checkout") // Default value is set to 0, but you could also make this a parameter. diff --git a/src/checkoutservice/money/money.go b/src/checkout/money/money.go similarity index 97% rename from src/checkoutservice/money/money.go rename to src/checkout/money/money.go index 883b405a15..ba21cd8886 100644 --- a/src/checkoutservice/money/money.go +++ b/src/checkout/money/money.go @@ -5,7 +5,7 @@ package money import ( "errors" - pb "github.com/open-telemetry/opentelemetry-demo/src/checkoutservice/genproto/oteldemo" + pb "github.com/open-telemetry/opentelemetry-demo/src/checkout/genproto/oteldemo" ) const ( diff --git a/src/checkoutservice/money/money_test.go b/src/checkout/money/money_test.go similarity index 98% rename from src/checkoutservice/money/money_test.go rename to src/checkout/money/money_test.go index 55da1226cb..8c2c3d7f51 100644 --- a/src/checkoutservice/money/money_test.go +++ b/src/checkout/money/money_test.go @@ -7,7 +7,7 @@ import ( "reflect" "testing" - pb "github.com/open-telemetry/opentelemetry-demo/src/checkoutservice/genproto/oteldemo" + pb "github.com/open-telemetry/opentelemetry-demo/src/checkout/genproto/oteldemo" ) func mmc(u int64, n int32, c string) *pb.Money { return &pb.Money{Units: u, Nanos: n, CurrencyCode: c} } diff --git a/src/checkoutservice/tools.go b/src/checkout/tools.go similarity index 100% rename from src/checkoutservice/tools.go rename to src/checkout/tools.go diff --git a/src/checkoutservice/Dockerfile b/src/checkoutservice/Dockerfile deleted file mode 100644 index ca37f623b4..0000000000 --- a/src/checkoutservice/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright The OpenTelemetry Authors -# SPDX-License-Identifier: Apache-2.0 - - -FROM golang:1.22-alpine AS builder - -WORKDIR /usr/src/app/ - -RUN --mount=type=cache,target=/go/pkg/mod/ \ - --mount=type=bind,source=./src/checkoutservice/go.sum,target=go.sum \ - --mount=type=bind,source=./src/checkoutservice/go.mod,target=go.mod \ - go mod download - -RUN --mount=type=cache,target=/go/pkg/mod/ \ - --mount=type=cache,target=/root/.cache/go-build \ - --mount=type=bind,rw,source=./src/checkoutservice,target=. \ - go build -ldflags "-s -w" -o /go/bin/checkoutservice/ ./ - -FROM alpine - -WORKDIR /usr/src/app/ - -COPY --from=builder /go/bin/checkoutservice/ ./ - -EXPOSE ${CHECKOUT_SERVICE_PORT} -ENTRYPOINT [ "./checkoutservice" ] diff --git a/src/frontend/gateways/rpc/Checkout.gateway.ts b/src/frontend/gateways/rpc/Checkout.gateway.ts index 11250a2942..3d54f9eaca 100644 --- a/src/frontend/gateways/rpc/Checkout.gateway.ts +++ b/src/frontend/gateways/rpc/Checkout.gateway.ts @@ -4,9 +4,9 @@ import { ChannelCredentials } from '@grpc/grpc-js'; import { CheckoutServiceClient, PlaceOrderRequest, PlaceOrderResponse } from '../../protos/demo'; -const { CHECKOUT_SERVICE_ADDR = '' } = process.env; +const { CHECKOUT_ADDR = '' } = process.env; -const client = new CheckoutServiceClient(CHECKOUT_SERVICE_ADDR, ChannelCredentials.createInsecure()); +const client = new CheckoutServiceClient(CHECKOUT_ADDR, ChannelCredentials.createInsecure()); const CheckoutGateway = () => ({ placeOrder(order: PlaceOrderRequest) { diff --git a/src/frontend/next.config.js b/src/frontend/next.config.js index 753e112a0e..ce28af82e0 100755 --- a/src/frontend/next.config.js +++ b/src/frontend/next.config.js @@ -15,7 +15,7 @@ dotenvExpand.expand(myEnv); const { AD_ADDR = '', CART_ADDR = '', - CHECKOUT_SERVICE_ADDR = '', + CHECKOUT_ADDR = '', CURRENCY_ADDR = '', PRODUCT_CATALOG_ADDR = '', RECOMMENDATION_ADDR = '', @@ -47,7 +47,7 @@ const nextConfig = { env: { AD_ADDR, CART_ADDR, - CHECKOUT_SERVICE_ADDR, + CHECKOUT_ADDR, CURRENCY_ADDR, PRODUCT_CATALOG_ADDR, RECOMMENDATION_ADDR, diff --git a/test/tracetesting/checkoutservice/all.yaml b/test/tracetesting/checkout/all.yaml similarity index 89% rename from test/tracetesting/checkoutservice/all.yaml rename to test/tracetesting/checkout/all.yaml index 8d083a8815..39e4391b13 100644 --- a/test/tracetesting/checkoutservice/all.yaml +++ b/test/tracetesting/checkout/all.yaml @@ -3,7 +3,7 @@ type: TestSuite spec: - id: checkout-service-all + id: checkout-all name: 'Checkout Service' description: Run all Checkout Service tests enabled in sequence steps: diff --git a/test/tracetesting/checkoutservice/place-order.yaml b/test/tracetesting/checkout/place-order.yaml similarity index 97% rename from test/tracetesting/checkoutservice/place-order.yaml rename to test/tracetesting/checkout/place-order.yaml index 29ab057b98..2b7eb2917b 100644 --- a/test/tracetesting/checkoutservice/place-order.yaml +++ b/test/tracetesting/checkout/place-order.yaml @@ -10,7 +10,7 @@ spec: type: grpc grpc: protobufFile: ../../../pb/demo.proto - address: ${var:CHECKOUT_SERVICE_ADDR} + address: ${var:CHECKOUT_ADDR} method: oteldemo.CheckoutService.PlaceOrder request: |- { diff --git a/test/tracetesting/run.bash b/test/tracetesting/run.bash index 96efd03630..13b827e754 100755 --- a/test/tracetesting/run.bash +++ b/test/tracetesting/run.bash @@ -8,7 +8,7 @@ set -e # Availalble services to test -ALL_SERVICES=("ad" "cart" "currency" "checkoutservice" "frontend" "email" "payment" "product-catalog" "recommendation" "shipping") +ALL_SERVICES=("ad" "cart" "currency" "checkout" "frontend" "email" "payment" "product-catalog" "recommendation" "shipping") ## Script variables # Will contain the list of services to test @@ -38,8 +38,8 @@ spec: value: $AD_ADDR - key: CART_ADDR value: $CART_ADDR - - key: CHECKOUT_SERVICE_ADDR - value: $CHECKOUT_SERVICE_ADDR + - key: CHECKOUT_ADDR + value: $CHECKOUT_ADDR - key: CURRENCY_ADDR value: $CURRENCY_ADDR - key: EMAIL_ADDR From 933b7b91db0a36b97554e566ff43c62092ee10ab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 21:48:38 -0500 Subject: [PATCH 060/178] build(deps): bump the nuget-production-dependencies group across 4 directories with 7 updates (#1884) Bumps the nuget-production-dependencies group with 4 updates in the /src/accounting directory: [Confluent.Kafka](https://github.com/confluentinc/confluent-kafka-dotnet), [Google.Protobuf](https://github.com/protocolbuffers/protobuf), [Grpc.Tools](https://github.com/grpc/grpc) and [Microsoft.Extensions.Logging](https://github.com/dotnet/runtime). Bumps the nuget-production-dependencies group with 1 update in the /src/cart directory: [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit). Bumps the nuget-production-dependencies group with 2 updates in the /src/cart/src directory: [OpenFeature](https://github.com/open-feature/dotnet-sdk) and [StackExchange.Redis](https://github.com/StackExchange/StackExchange.Redis). Bumps the nuget-production-dependencies group with 3 updates in the /src/cart/tests directory: [OpenFeature](https://github.com/open-feature/dotnet-sdk), [StackExchange.Redis](https://github.com/StackExchange/StackExchange.Redis) and [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit). Updates `Confluent.Kafka` from 2.5.3 to 2.8.0 - [Release notes](https://github.com/confluentinc/confluent-kafka-dotnet/releases) - [Changelog](https://github.com/confluentinc/confluent-kafka-dotnet/blob/master/CHANGELOG.md) - [Commits](https://github.com/confluentinc/confluent-kafka-dotnet/compare/v2.5.3...v2.8.0) Updates `Google.Protobuf` from 3.28.2 to 3.29.2 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.28.2...v3.29.2) Updates `Grpc.Tools` from 2.66.0 to 2.68.1 - [Release notes](https://github.com/grpc/grpc/releases) - [Changelog](https://github.com/grpc/grpc/blob/master/doc/grpc_release_schedule.md) - [Commits](https://github.com/grpc/grpc/commits) Updates `Microsoft.Extensions.Logging` from 8.0.0 to 9.0.0 - [Release notes](https://github.com/dotnet/runtime/releases) - [Commits](https://github.com/dotnet/runtime/compare/v8.0.0...v9.0.0) Updates `xunit.runner.visualstudio` from 2.8.2 to 3.0.0 - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.8.2...3.0.0) Updates `OpenFeature` from 2.1.0 to 2.2.0 - [Release notes](https://github.com/open-feature/dotnet-sdk/releases) - [Changelog](https://github.com/open-feature/dotnet-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/dotnet-sdk/compare/v2.1.0...v2.2.0) Updates `StackExchange.Redis` from 2.8.22 to 2.8.24 - [Release notes](https://github.com/StackExchange/StackExchange.Redis/releases) - [Changelog](https://github.com/StackExchange/StackExchange.Redis/blob/main/docs/ReleaseNotes.md) - [Commits](https://github.com/StackExchange/StackExchange.Redis/compare/2.8.22...2.8.24) Updates `OpenFeature` from 2.1.0 to 2.2.0 - [Release notes](https://github.com/open-feature/dotnet-sdk/releases) - [Changelog](https://github.com/open-feature/dotnet-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/dotnet-sdk/compare/v2.1.0...v2.2.0) Updates `StackExchange.Redis` from 2.8.22 to 2.8.24 - [Release notes](https://github.com/StackExchange/StackExchange.Redis/releases) - [Changelog](https://github.com/StackExchange/StackExchange.Redis/blob/main/docs/ReleaseNotes.md) - [Commits](https://github.com/StackExchange/StackExchange.Redis/compare/2.8.22...2.8.24) Updates `xunit.runner.visualstudio` from 2.8.2 to 3.0.0 - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.8.2...3.0.0) --- updated-dependencies: - dependency-name: Confluent.Kafka dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: Google.Protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: Grpc.Tools dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: Microsoft.Extensions.Logging dependency-type: direct:production update-type: version-update:semver-major dependency-group: nuget-production-dependencies - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-major dependency-group: nuget-production-dependencies - dependency-name: OpenFeature dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: StackExchange.Redis dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: OpenFeature dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: StackExchange.Redis dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-major dependency-group: nuget-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/accounting/Accounting.csproj | 8 ++++---- src/cart/src/cart.csproj | 4 ++-- src/cart/tests/cart.tests.csproj | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/accounting/Accounting.csproj b/src/accounting/Accounting.csproj index 2e0eeb5917..a5287dad37 100644 --- a/src/accounting/Accounting.csproj +++ b/src/accounting/Accounting.csproj @@ -9,13 +9,13 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/cart/src/cart.csproj b/src/cart/src/cart.csproj index d62a131f7f..ac86fbc9f2 100644 --- a/src/cart/src/cart.csproj +++ b/src/cart/src/cart.csproj @@ -27,10 +27,10 @@ - + - + diff --git a/src/cart/tests/cart.tests.csproj b/src/cart/tests/cart.tests.csproj index c7ef905f72..19eda08d34 100644 --- a/src/cart/tests/cart.tests.csproj +++ b/src/cart/tests/cart.tests.csproj @@ -9,7 +9,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive From 9673c12a30b55d2724f3fc2cd7105b1721f3c3ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 21:53:02 -0500 Subject: [PATCH 061/178] build(deps): bump the actions-production-dependencies group across 1 directory with 3 updates (#1885) Bumps the actions-production-dependencies group with 3 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [dorny/paths-filter](https://github.com/dorny/paths-filter) and [actions/stale](https://github.com/actions/stale). Updates `actions/checkout` from 2 to 4 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v4) Updates `dorny/paths-filter` from 2 to 3 - [Release notes](https://github.com/dorny/paths-filter/releases) - [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md) - [Commits](https://github.com/dorny/paths-filter/compare/v2...v3) Updates `actions/stale` from 8 to 9 - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v8...v9) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-production-dependencies - dependency-name: dorny/paths-filter dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-production-dependencies - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- .github/workflows/label-pr.yml | 4 ++-- .github/workflows/stale.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml index 73707abf73..141e769b3e 100644 --- a/.github/workflows/label-pr.yml +++ b/.github/workflows/label-pr.yml @@ -15,11 +15,11 @@ jobs: contents: read steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Check for changed files id: file_changes - uses: dorny/paths-filter@v2 + uses: dorny/paths-filter@v3 with: list-files: shell filters: | diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 8b7a1dfd80..ef7516d8a2 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -12,7 +12,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v8 + - uses: actions/stale@v9 with: stale-pr-message: 'This PR was marked stale due to lack of activity. It will be closed in 7 days.' close-pr-message: 'Closed as inactive. Feel free to reopen if this PR is still being worked on.' From 2f4e30bfe69c227780a1b4004e446befd04e0111 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:09:00 -0500 Subject: [PATCH 062/178] build(deps): bump the npm-development-dependencies group across 4 directories with 18 updates (#1888) Bumps the npm-development-dependencies group with 8 updates in the /src/flagd-ui directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.14.15` | `22.10.5` | | [eslint](https://github.com/eslint/eslint) | `8.57.0` | `9.17.0` | | [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `14.2.5` | `15.1.4` | | [postcss](https://github.com/postcss/postcss) | `8.4.41` | `8.4.49` | | [prettier](https://github.com/prettier/prettier) | `3.3.3` | `3.4.2` | | [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) | `0.6.6` | `0.6.9` | | [tailwindcss](https://github.com/tailwindlabs/tailwindcss) | `3.4.10` | `3.4.17` | | [typescript](https://github.com/microsoft/TypeScript) | `5.5.4` | `5.7.2` | Bumps the npm-development-dependencies group with 10 updates in the /src/frontend directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.14.10` | `22.10.5` | | [eslint](https://github.com/eslint/eslint) | `8.57.0` | `9.17.0` | | [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `14.2.5` | `15.1.4` | | [typescript](https://github.com/microsoft/TypeScript) | `5.5.3` | `5.7.2` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `7.16.0` | `8.19.1` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `7.16.0` | `8.19.1` | | [cypress](https://github.com/cypress-io/cypress) | `13.13.0` | `13.17.0` | | [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | `7.34.4` | `7.37.3` | | [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `4.6.2` | `5.1.0` | | [openapi-typescript](https://github.com/openapi-ts/openapi-typescript/tree/HEAD/packages/openapi-typescript) | `7.0.2` | `7.5.2` | Bumps the npm-development-dependencies group with 1 update in the /src/payment directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Bumps the npm-development-dependencies group with 9 updates in the /src/react-native-app directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `18.19.64` | `18.19.70` | | [eslint](https://github.com/eslint/eslint) | `8.57.1` | `9.17.0` | | [prettier](https://github.com/prettier/prettier) | `3.3.3` | `3.4.2` | | [typescript](https://github.com/microsoft/TypeScript) | `5.3.3` | `5.7.2` | | [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | `7.37.2` | `7.37.3` | | [eslint-config-expo](https://github.com/expo/expo/tree/HEAD/packages/eslint-config-expo) | `7.1.2` | `8.0.1` | | [jest-expo](https://github.com/expo/expo/tree/HEAD/packages/jest-expo) | `51.0.4` | `52.0.2` | | [react-test-renderer](https://github.com/facebook/react/tree/HEAD/packages/react-test-renderer) | `18.2.0` | `19.0.0` | | [@types/react-test-renderer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-test-renderer) | `18.3.0` | `19.0.0` | Updates `@types/node` from 20.14.15 to 22.10.5 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 8.57.0 to 9.17.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.57.0...v9.17.0) Updates `eslint-config-next` from 14.2.5 to 15.1.4 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.1.4/packages/eslint-config-next) Updates `postcss` from 8.4.41 to 8.4.49 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.41...8.4.49) Updates `prettier` from 3.3.3 to 3.4.2 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.3.3...3.4.2) Updates `prettier-plugin-tailwindcss` from 0.6.6 to 0.6.9 - [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.6...v0.6.9) Updates `tailwindcss` from 3.4.10 to 3.4.17 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.17/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.10...v3.4.17) Updates `typescript` from 5.5.4 to 5.7.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.5.4...v5.7.2) Updates `@typescript-eslint/parser` from 7.2.0 to 8.19.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.1/packages/parser) Updates `eslint-plugin-react` from 7.35.0 to 7.37.3 - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.4...v7.37.3) Updates `eslint-plugin-react-hooks` from 4.6.2 to 5.1.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks) Updates `@types/node` from 20.14.10 to 22.10.5 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 8.57.0 to 9.17.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.57.0...v9.17.0) Updates `eslint-config-next` from 14.2.5 to 15.1.4 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.1.4/packages/eslint-config-next) Updates `typescript` from 5.5.3 to 5.7.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.5.4...v5.7.2) Updates `@typescript-eslint/eslint-plugin` from 7.16.0 to 8.19.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 7.16.0 to 8.19.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.1/packages/parser) Updates `cypress` from 13.13.0 to 13.17.0 - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v13.13.0...v13.17.0) Updates `eslint-plugin-react` from 7.34.4 to 7.37.3 - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.4...v7.37.3) Updates `eslint-plugin-react-hooks` from 4.6.2 to 5.1.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks) Updates `openapi-typescript` from 7.0.2 to 7.5.2 - [Release notes](https://github.com/openapi-ts/openapi-typescript/releases) - [Changelog](https://github.com/openapi-ts/openapi-typescript/blob/main/packages/openapi-typescript/CHANGELOG.md) - [Commits](https://github.com/openapi-ts/openapi-typescript/commits/openapi-typescript@7.5.2/packages/openapi-typescript) Updates `@types/node` from 20.10.4 to 22.10.5 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@types/node` from 18.19.64 to 18.19.70 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 8.57.1 to 9.17.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.57.0...v9.17.0) Updates `prettier` from 3.3.3 to 3.4.2 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.3.3...3.4.2) Updates `typescript` from 5.3.3 to 5.7.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.5.4...v5.7.2) Updates `eslint-plugin-react` from 7.37.2 to 7.37.3 - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.4...v7.37.3) Updates `eslint-config-expo` from 7.1.2 to 8.0.1 - [Changelog](https://github.com/expo/expo/blob/main/packages/eslint-config-expo/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/eslint-config-expo) Updates `jest-expo` from 51.0.4 to 52.0.2 - [Changelog](https://github.com/expo/expo/blob/main/packages/jest-expo/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/jest-expo) Updates `react-test-renderer` from 18.2.0 to 19.0.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react-test-renderer) Updates `@types/react-test-renderer` from 18.3.0 to 19.0.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-test-renderer) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: postcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: prettier-plugin-tailwindcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: tailwindcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: indirect update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: eslint-plugin-react dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-plugin-react-hooks dependency-type: indirect update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: cypress dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-plugin-react-hooks dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: openapi-typescript dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: indirect update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-plugin-react dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint-config-expo dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: jest-expo dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: react-test-renderer dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: "@types/react-test-renderer" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/flagd-ui/package-lock.json | 2106 ++++++++++--------- src/flagd-ui/package.json | 14 +- src/frontend/package-lock.json | 2564 +++++++++++------------- src/frontend/package.json | 20 +- src/payment/package-lock.json | 15 +- src/react-native-app/package-lock.json | 2181 +++++++++++++------- src/react-native-app/package.json | 14 +- 7 files changed, 3782 insertions(+), 3132 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 0e519853c4..573068b85b 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -16,16 +16,16 @@ }, "devDependencies": { "@types/json5": "^2.2.0", - "@types/node": "^20", + "@types/node": "^22", "@types/react": "^18.3.4", "@types/react-dom": "^18.3.0", "autoprefixer": "^10.4.20", - "eslint": "^8", - "eslint-config-next": "14.2.5", - "postcss": "^8.4.41", - "prettier": "^3.3.3", - "prettier-plugin-tailwindcss": "^0.6.6", - "tailwindcss": "^3.4.10", + "eslint": "^9", + "eslint-config-next": "15.1.4", + "postcss": "^8.4.49", + "prettier": "^3.4.2", + "prettier-plugin-tailwindcss": "^0.6.9", + "tailwindcss": "^3.4.17", "typescript": "^5" } }, @@ -57,24 +57,50 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -82,7 +108,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -111,27 +137,68 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { @@ -147,12 +214,18 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -252,12 +325,40 @@ "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz", - "integrity": "sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.4.tgz", + "integrity": "sha512-HwlEXwCK3sr6zmVGEvWBjW9tBFs1Oe6hTmTLoFQtpm4As5HCdu8jfSE0XJOp7uhfEGLniIx8yrGxEWwNnY0fmQ==", + "dev": true, + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "glob": "10.3.10" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/@next/swc-darwin-arm64": { @@ -430,6 +531,15 @@ "node": ">= 8" } }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "engines": { + "node": ">=12.4.0" + } + }, "node_modules/@opentelemetry/api": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", @@ -580,6 +690,12 @@ "node": ">=14" } }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, "node_modules/@rushstack/eslint-patch": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", @@ -600,6 +716,18 @@ "tslib": "^2.4.0" } }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, "node_modules/@types/json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-2.2.0.tgz", @@ -612,12 +740,12 @@ } }, "node_modules/@types/node": { - "version": "20.14.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.15.tgz", - "integrity": "sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==", + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.20.0" } }, "node_modules/@types/prop-types": { @@ -654,58 +782,106 @@ "license": "MIT", "peer": true }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", + "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/type-utils": "8.19.1", + "@typescript-eslint/utils": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, "node_modules/@typescript-eslint/parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", - "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz", + "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", + "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", + "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/utils": "8.19.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz", + "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -713,31 +889,29 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", + "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -750,9 +924,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -764,28 +938,57 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@typescript-eslint/utils": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz", + "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", + "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "8.19.1", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, "node_modules/@vercel/otel": { "version": "1.10.0", @@ -806,9 +1009,9 @@ } }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "bin": { "acorn": "bin/acorn" }, @@ -906,22 +1109,22 @@ "dev": true }, "node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, - "dependencies": { - "deep-equal": "^2.0.5" + "engines": { + "node": ">= 0.4" } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -950,15 +1153,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", @@ -1018,15 +1212,15 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -1052,19 +1246,18 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -1133,21 +1326,21 @@ } }, "node_modules/axe-core": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz", - "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axobject-query": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", - "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, - "dependencies": { - "deep-equal": "^2.0.5" + "engines": { + "node": ">= 0.4" } }, "node_modules/balanced-match": { @@ -1235,16 +1428,44 @@ } }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -1388,9 +1609,9 @@ "dev": true }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "dependencies": { "path-key": "^3.1.0", @@ -1426,14 +1647,14 @@ "dev": true }, "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -1443,29 +1664,29 @@ } }, "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/inspect-js" } }, "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, @@ -1492,38 +1713,6 @@ } } }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -1570,18 +1759,6 @@ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", @@ -1589,15 +1766,29 @@ "dev": true }, "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/eastasianwidth": { @@ -1620,9 +1811,9 @@ "dev": true }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -1633,57 +1824,62 @@ } }, "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -1693,13 +1889,10 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -1713,46 +1906,28 @@ "node": ">= 0.4" } }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.2" + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" }, "engines": { "node": ">= 0.4" @@ -1771,14 +1946,15 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.4", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -1794,14 +1970,14 @@ } }, "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -1833,78 +2009,83 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-config-next": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.5.tgz", - "integrity": "sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.4.tgz", + "integrity": "sha512-u9+7lFmfhKNgGjhQ9tBeyCFsPJyq0SvGioMJBngPC7HXUpR0U+ckEwQR48s7TrRNHra1REm6evGL2ie38agALg==", "dev": true, "dependencies": { - "@next/eslint-plugin-next": "14.2.5", - "@rushstack/eslint-patch": "^1.3.3", - "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0", + "@next/eslint-plugin-next": "15.1.4", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.0.0" }, "peerDependencies": { - "eslint": "^7.23.0 || ^8.0.0", + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", "typescript": ">=3.3.1" }, "peerDependenciesMeta": { @@ -1934,18 +2115,19 @@ } }, "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.7.0.tgz", + "integrity": "sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==", "dev": true, "dependencies": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "fast-glob": "^3.3.1", - "get-tsconfig": "^4.5.0", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3" + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.7", + "enhanced-resolve": "^5.15.0", + "fast-glob": "^3.3.2", + "get-tsconfig": "^4.7.5", + "is-bun-module": "^1.0.2", + "is-glob": "^4.0.3", + "stable-hash": "^0.0.4" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -1955,13 +2137,45 @@ }, "peerDependencies": { "eslint": "*", - "eslint-plugin-import": "*" + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-typescript/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, + "node_modules/eslint-import-resolver-typescript/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -1985,34 +2199,36 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", "array.prototype.flat": "^1.3.2", "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "node_modules/eslint-plugin-import/node_modules/debug": { @@ -2024,18 +2240,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -2046,58 +2250,57 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz", - "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, "dependencies": { - "aria-query": "~5.1.3", + "aria-query": "^5.3.2", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", - "axe-core": "^4.9.1", - "axobject-query": "~3.1.1", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.19", "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.0" + "string.prototype.includes": "^2.0.1" }, "engines": { "node": ">=4.0" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "node_modules/eslint-plugin-react": { - "version": "7.35.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", - "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "version": "7.37.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz", + "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==", "dev": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", + "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", + "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11", + "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "engines": { @@ -2108,27 +2311,15 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", + "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", "dev": true, "engines": { "node": ">=10" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "node_modules/eslint-plugin-react/node_modules/resolve": { @@ -2158,16 +2349,16 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2201,6 +2392,18 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2208,17 +2411,29 @@ "dev": true }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2326,15 +2541,15 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -2366,23 +2581,22 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true }, "node_modules/for-each": { @@ -2424,12 +2638,6 @@ "url": "https://github.com/sponsors/rawify" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -2453,15 +2661,17 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -2480,16 +2690,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dev": true, "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -2498,15 +2713,28 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -2516,9 +2744,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.6.tgz", - "integrity": "sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", "dev": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -2586,15 +2814,12 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2616,33 +2841,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2660,10 +2865,13 @@ "dev": true }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2690,10 +2898,13 @@ } }, "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -2702,9 +2913,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "engines": { "node": ">= 0.4" @@ -2786,61 +2997,29 @@ "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, "dependencies": { "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -2850,12 +3029,15 @@ } }, "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", + "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -2865,12 +3047,15 @@ } }, "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, "dependencies": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2889,13 +3074,13 @@ } }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2904,6 +3089,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-bun-module": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", + "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", + "dev": true, + "dependencies": { + "semver": "^7.6.3" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -2917,9 +3111,9 @@ } }, "node_modules/is-core-module": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", - "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dependencies": { "hasown": "^2.0.2" }, @@ -2931,11 +3125,13 @@ } }, "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" }, "engines": { @@ -2946,12 +3142,13 @@ } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2970,12 +3167,15 @@ } }, "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2991,12 +3191,15 @@ } }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -3029,18 +3232,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -3051,12 +3242,13 @@ } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3065,23 +3257,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -3103,12 +3288,12 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -3118,12 +3303,13 @@ } }, "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3133,12 +3319,14 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -3148,12 +3336,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -3175,25 +3363,28 @@ } }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -3215,16 +3406,20 @@ "dev": true }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/jackspeak": { @@ -3356,12 +3551,15 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { @@ -3408,6 +3606,15 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -3418,9 +3625,9 @@ } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "dependencies": { "braces": "^3.0.3", @@ -3627,26 +3834,10 @@ } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, "engines": { "node": ">= 0.4" }, @@ -3664,14 +3855,16 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -3728,12 +3921,13 @@ } }, "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, @@ -3744,15 +3938,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -3770,6 +3955,23 @@ "node": ">= 0.8.0" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -3821,15 +4023,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -3860,19 +4053,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -3914,9 +4098,9 @@ } }, "node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -3932,11 +4116,10 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -4013,18 +4196,6 @@ } } }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, "node_modules/postcss-nested": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", @@ -4079,11 +4250,10 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -4095,11 +4265,10 @@ } }, "node_modules/prettier-plugin-tailwindcss": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.6.tgz", - "integrity": "sha512-OPva5S7WAsPLEsOuOWXATi13QrCKACCiIonFgIR6V4lYv4QLp++UXVhZSzRbZxXGimkQtQT86CC6fQqTOybGng==", + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.9.tgz", + "integrity": "sha512-r0i3uhaZAXYP0At5xGfJH876W3HHGHDp+LCRUJrs57PBeQ6mYHMwr25KH8NPX44F2yGTvdnH7OqCshlQx183Eg==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.21.3" }, @@ -4264,18 +4433,19 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", + "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -4285,15 +4455,17 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -4369,43 +4541,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -4430,14 +4565,15 @@ } }, "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -4447,15 +4583,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -4515,6 +4667,20 @@ "node": ">= 0.4" } }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -4544,15 +4710,16 @@ "peer": true }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4561,47 +4728,85 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "dependencies": { - "internal-slot": "^1.0.4" + "engines": { + "node": ">=14" }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, + "node_modules/stable-hash": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.4.tgz", + "integrity": "sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==", + "dev": true + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -4676,33 +4881,38 @@ } }, "node_modules/string.prototype.includes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz", - "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -4722,15 +4932,18 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4740,15 +4953,19 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4884,34 +5101,33 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz", - "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==", + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", "dev": true, - "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.3.0", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", @@ -4930,12 +5146,6 @@ "node": ">=6" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -4970,15 +5180,15 @@ } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-interface-checker": { @@ -5003,8 +5213,7 @@ "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/tslib": { "version": "2.6.3", @@ -5023,43 +5232,31 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -5069,17 +5266,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -5089,17 +5287,17 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -5109,9 +5307,9 @@ } }, "node_modules/typescript": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", - "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -5122,24 +5320,27 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true }, "node_modules/update-browserslist-db": { @@ -5204,39 +5405,43 @@ } }, "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-builtin-type": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", - "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, "dependencies": { + "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", + "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", + "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", - "which-typed-array": "^1.1.15" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -5264,15 +5469,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { @@ -5385,12 +5591,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, "node_modules/yaml": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 769ccd3f5e..a8e0ca1117 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -17,16 +17,16 @@ }, "devDependencies": { "@types/json5": "^2.2.0", - "@types/node": "^20", + "@types/node": "^22", "@types/react": "^18.3.4", "@types/react-dom": "^18.3.0", "autoprefixer": "^10.4.20", - "eslint": "^8", - "eslint-config-next": "14.2.5", - "postcss": "^8.4.41", - "prettier": "^3.3.3", - "prettier-plugin-tailwindcss": "^0.6.6", - "tailwindcss": "^3.4.10", + "eslint": "^9", + "eslint-config-next": "15.1.4", + "postcss": "^8.4.49", + "prettier": "^3.4.2", + "prettier-plugin-tailwindcss": "^0.6.9", + "tailwindcss": "^3.4.17", "typescript": "^5" } } diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index a9e81c4a33..c3fffbaed4 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -45,20 +45,20 @@ "uuid": "10.0.0" }, "devDependencies": { - "@types/node": "20.14.10", + "@types/node": "22.10.5", "@types/react": "18.3.3", "@types/react-dom": "18.3.0", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "7.16.0", - "@typescript-eslint/parser": "7.16.0", - "cypress": "13.13.0", - "eslint": "8.57.0", - "eslint-config-next": "14.2.5", - "eslint-plugin-react": "7.34.4", - "eslint-plugin-react-hooks": "4.6.2", - "openapi-typescript": "7.0.2", - "typescript": "5.5.3" + "@typescript-eslint/eslint-plugin": "8.19.1", + "@typescript-eslint/parser": "8.19.1", + "cypress": "13.17.0", + "eslint": "9.17.0", + "eslint-config-next": "15.1.4", + "eslint-plugin-react": "7.37.3", + "eslint-plugin-react-hooks": "5.1.0", + "openapi-typescript": "7.5.2", + "typescript": "5.7.2" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -178,18 +178,6 @@ "node": ">=4" } }, - "node_modules/@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@bufbuild/protobuf": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.0.tgz", @@ -223,9 +211,9 @@ } }, "node_modules/@cypress/request": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", - "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.7.tgz", + "integrity": "sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==", "dev": true, "dependencies": { "aws-sign2": "~0.7.0", @@ -234,16 +222,16 @@ "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "http-signature": "~1.3.6", + "form-data": "~4.0.0", + "http-signature": "~1.4.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "6.10.4", + "qs": "6.13.1", "safe-buffer": "^5.1.2", - "tough-cookie": "^4.1.3", + "tough-cookie": "^5.0.0", "tunnel-agent": "^0.6.0", "uuid": "^8.3.2" }, @@ -322,24 +310,50 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -347,7 +361,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -376,12 +390,33 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@grpc/grpc-js": { @@ -413,19 +448,39 @@ "node": ">=6" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { @@ -441,12 +496,18 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@img/sharp-darwin-arm64": { "version": "0.33.4", @@ -879,117 +940,55 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "node_modules/@next/env": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz", + "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==" }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@next/eslint-plugin-next": { + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.4.tgz", + "integrity": "sha512-HwlEXwCK3sr6zmVGEvWBjW9tBFs1Oe6hTmTLoFQtpm4As5HCdu8jfSE0XJOp7uhfEGLniIx8yrGxEWwNnY0fmQ==", "dev": true, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "fast-glob": "3.3.1" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@next/eslint-plugin-next/node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "dependencies": { - "ansi-regex": "^6.0.1" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=8.6.0" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@next/eslint-plugin-next/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@js-sdsl/ordered-map": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", - "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/@next/env": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz", - "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz", - "integrity": "sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==", - "dev": true, - "dependencies": { - "glob": "10.3.10" + "node": ">= 6" } }, "node_modules/@next/swc-darwin-arm64": { @@ -1162,6 +1161,15 @@ "node": ">= 8" } }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "engines": { + "node": ">=12.4.0" + } + }, "node_modules/@openfeature/core": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-1.3.0.tgz", @@ -2530,16 +2538,6 @@ "@opentelemetry/api": "^1.1.0" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@protobuf-ts/runtime": { "version": "2.9.4", "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.4.tgz", @@ -2608,15 +2606,15 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@redocly/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-9GWx27t7xWhDIR02PA18nzBdLcKQRgc46xNQvjFkrYk4UOmvKhJ/dawwiX0cCOeetN5LcaaiqQbVOWYK62SGHw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js-replace": "^1.0.1" }, "funding": { "type": "github", @@ -2624,24 +2622,23 @@ } }, "node_modules/@redocly/config": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.6.3.tgz", - "integrity": "sha512-hGWJgCsXRw0Ow4rplqRlUQifZvoSwZipkYnt11e3SeH1Eb23VUIDBcRuaQOUqy1wn0eevXkU2GzzQ8fbKdQ7Mg==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.17.1.tgz", + "integrity": "sha512-CEmvaJuG7pm2ylQg53emPmtgm4nW2nxBgwXzbVEHpGas/lGnMyN8Zlkgiz6rPw0unASg6VW3wlz27SOL5XFHYQ==", "dev": true }, "node_modules/@redocly/openapi-core": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.18.0.tgz", - "integrity": "sha512-kcbt7w23pcVYGLnJkh2LZpXF1OX5RDM4DLOtwPug2HvRE8ow/YfY8ZEM1YCFlA41D8rBPBVP918cYeIx4BVUbw==", + "version": "1.27.1", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.27.1.tgz", + "integrity": "sha512-zQ47/A+Drk2Y75/af69MD3Oad4H9LxkUDzcm7XBkyLNDKIWQrDKDnS5476oDq77+zciymNxgMVtxxVXlnGS8kw==", "dev": true, "dependencies": { - "@redocly/ajv": "^8.11.0", - "@redocly/config": "^0.6.2", + "@redocly/ajv": "^8.11.2", + "@redocly/config": "^0.17.0", "colorette": "^1.2.0", "https-proxy-agent": "^7.0.4", "js-levenshtein": "^1.1.6", "js-yaml": "^4.1.0", - "lodash.isequal": "^4.5.0", "minimatch": "^5.0.1", "node-fetch": "^2.6.1", "pluralize": "^8.0.0", @@ -2679,10 +2676,16 @@ "node": ">=10" } }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, "node_modules/@rushstack/eslint-patch": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.2.tgz", - "integrity": "sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==", + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.5.tgz", + "integrity": "sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==", "dev": true }, "node_modules/@swc/counter": { @@ -2760,6 +2763,12 @@ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, "node_modules/@types/hoist-non-react-statics": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", @@ -2770,6 +2779,12 @@ "hoist-non-react-statics": "^3.3.0" } }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -2793,11 +2808,11 @@ } }, "node_modules/@types/node": { - "version": "20.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", - "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.20.0" } }, "node_modules/@types/pg": { @@ -2901,77 +2916,69 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.0.tgz", - "integrity": "sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", + "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/type-utils": "7.16.0", - "@typescript-eslint/utils": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/type-utils": "8.19.1", + "@typescript-eslint/utils": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.0.tgz", - "integrity": "sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz", + "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/typescript-estree": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz", - "integrity": "sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", + "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0" + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -2979,39 +2986,35 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.0.tgz", - "integrity": "sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", + "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.16.0", - "@typescript-eslint/utils": "7.16.0", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/utils": "8.19.1", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", - "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz", + "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==", "dev": true, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3019,31 +3022,29 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz", - "integrity": "sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", + "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -3071,9 +3072,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -3083,54 +3084,61 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.0.tgz", - "integrity": "sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz", + "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/typescript-estree": "7.16.0" + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", - "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", + "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.16.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.19.1", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "bin": { "acorn": "bin/acorn" }, @@ -3279,22 +3287,22 @@ "dev": true }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, - "dependencies": { - "dequal": "^2.0.3" + "engines": { + "node": ">= 0.4" } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -3323,15 +3331,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", @@ -3391,15 +3390,15 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3408,18 +3407,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, "node_modules/array.prototype.tosorted": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", @@ -3437,19 +3424,18 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -3536,27 +3522,27 @@ } }, "node_modules/aws4": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz", - "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", "dev": true }, "node_modules/axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, - "dependencies": { - "dequal": "^2.0.3" + "engines": { + "node": ">= 0.4" } }, "node_modules/balanced-match": { @@ -3690,15 +3676,41 @@ } }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -3788,6 +3800,12 @@ "node": ">=8" } }, + "node_modules/change-case": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "dev": true + }, "node_modules/check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", @@ -3798,9 +3816,9 @@ } }, "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", + "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", "dev": true, "funding": [ { @@ -3990,9 +4008,9 @@ "dev": true }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "dependencies": { "path-key": "^3.1.0", @@ -4032,13 +4050,13 @@ "integrity": "sha512-LO/lzYRw134LMDVnLyAf1dHE5tyO6axEFkR3TXjQIOmMkAM9YL6QsiUwuXzZAmFnuDJcs4hayOgyIYtViXFrLw==" }, "node_modules/cypress": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.0.tgz", - "integrity": "sha512-ou/MQUDq4tcDJI2FsPaod2FZpex4kpIK43JJlcBgWrX8WX7R/05ZxGTuxedOuZBfxjZxja+fbijZGyxiLP6CFA==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.17.0.tgz", + "integrity": "sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@cypress/request": "^3.0.0", + "@cypress/request": "^3.0.6", "@cypress/xvfb": "^1.2.4", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", @@ -4049,6 +4067,7 @@ "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", + "ci-info": "^4.0.0", "cli-cursor": "^3.1.0", "cli-table3": "~0.6.1", "commander": "^6.2.1", @@ -4063,7 +4082,6 @@ "figures": "^3.2.0", "fs-extra": "^9.1.0", "getos": "^3.2.1", - "is-ci": "^3.0.1", "is-installed-globally": "~0.4.0", "lazy-ass": "^1.6.0", "listr2": "^3.8.3", @@ -4078,6 +4096,7 @@ "semver": "^7.5.3", "supports-color": "^8.1.1", "tmp": "~0.2.3", + "tree-kill": "1.2.2", "untildify": "^4.0.0", "yauzl": "^2.10.0" }, @@ -4107,14 +4126,14 @@ } }, "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4124,29 +4143,29 @@ } }, "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/inspect-js" } }, "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, @@ -4227,15 +4246,6 @@ "node": ">=0.4.0" } }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/detect-libc": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", @@ -4244,28 +4254,16 @@ "node": ">=8" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, "node_modules/dotenv": { @@ -4312,11 +4310,18 @@ "node": ">=0.10" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/ecc-jsbn": { "version": "0.1.2", @@ -4344,9 +4349,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -4370,57 +4375,62 @@ } }, "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -4430,12 +4440,9 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "engines": { "node": ">= 0.4" } @@ -4449,25 +4456,27 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.2" + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" }, "engines": { "node": ">= 0.4" @@ -4477,7 +4486,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, "dependencies": { "es-errors": "^1.3.0" }, @@ -4486,14 +4494,15 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.4", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -4509,14 +4518,14 @@ } }, "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -4546,165 +4555,84 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-next": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.5.tgz", - "integrity": "sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA==", - "dev": true, - "dependencies": { - "@next/eslint-plugin-next": "14.2.5", - "@rushstack/eslint-patch": "^1.3.3", - "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + "url": "https://eslint.org/donate" }, "peerDependencies": { - "eslint": "^7.23.0 || ^8.0.0", - "typescript": ">=3.3.1" + "jiti": "*" }, "peerDependenciesMeta": { - "typescript": { + "jiti": { "optional": true } } }, - "node_modules/eslint-config-next/node_modules/@typescript-eslint/parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", - "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "node_modules/eslint-config-next": { + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.4.tgz", + "integrity": "sha512-u9+7lFmfhKNgGjhQ9tBeyCFsPJyq0SvGioMJBngPC7HXUpR0U+ckEwQR48s7TrRNHra1REm6evGL2ie38agALg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@next/eslint-plugin-next": "15.1.4", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.0.0" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-config-next/node_modules/@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-config-next/node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-config-next/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "typescript": ">=3.3.1" }, "peerDependenciesMeta": { "typescript": { @@ -4712,59 +4640,6 @@ } } }, - "node_modules/eslint-config-next/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.2.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-config-next/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/eslint-config-next/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/eslint-config-next/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", @@ -4786,18 +4661,19 @@ } }, "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.7.0.tgz", + "integrity": "sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==", "dev": true, "dependencies": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "fast-glob": "^3.3.1", - "get-tsconfig": "^4.5.0", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3" + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.7", + "enhanced-resolve": "^5.15.0", + "fast-glob": "^3.3.2", + "get-tsconfig": "^4.7.5", + "is-bun-module": "^1.0.2", + "is-glob": "^4.0.3", + "stable-hash": "^0.0.4" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -4807,13 +4683,45 @@ }, "peerDependencies": { "eslint": "*", - "eslint-plugin-import": "*" + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } } }, + "node_modules/eslint-import-resolver-typescript/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-typescript/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -4837,34 +4745,36 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", "array.prototype.flat": "^1.3.2", "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "node_modules/eslint-plugin-import/node_modules/debug": { @@ -4876,18 +4786,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -4898,90 +4796,76 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", - "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, "dependencies": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" }, "engines": { "node": ">=4.0" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "node_modules/eslint-plugin-react": { - "version": "7.34.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.4.tgz", - "integrity": "sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==", + "version": "7.37.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz", + "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==", "dev": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", + "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", + "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11", + "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", + "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", "dev": true, "engines": { "node": ">=10" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "node_modules/eslint-plugin-react/node_modules/resolve": { @@ -5011,16 +4895,16 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -5054,6 +4938,18 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -5061,17 +4957,29 @@ "dev": true }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -5287,15 +5195,15 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -5327,23 +5235,22 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true }, "node_modules/for-each": { @@ -5354,34 +5261,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -5392,17 +5271,17 @@ } }, "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.12" + "node": ">= 6" } }, "node_modules/fs-extra": { @@ -5420,12 +5299,6 @@ "node": ">=10" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -5435,15 +5308,17 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -5497,15 +5372,20 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5514,6 +5394,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -5530,14 +5422,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -5547,9 +5439,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz", - "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", "dev": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -5576,28 +5468,6 @@ "assert-plus": "^1.0.0" } }, - "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -5610,30 +5480,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", @@ -5650,39 +5496,25 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -5691,32 +5523,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5763,9 +5575,13 @@ } }, "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -5774,9 +5590,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "engines": { "node": ">= 0.4" }, @@ -5819,14 +5635,14 @@ } }, "node_modules/http-signature": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", - "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz", + "integrity": "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==", "dev": true, "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", - "sshpk": "^1.14.1" + "sshpk": "^1.18.0" }, "engines": { "node": ">=0.10" @@ -5938,17 +5754,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -5964,14 +5769,14 @@ } }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, "dependencies": { "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5993,13 +5798,14 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -6014,12 +5820,15 @@ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" }, "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", + "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -6029,25 +5838,28 @@ } }, "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, "dependencies": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6056,6 +5868,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-bun-module": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", + "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", + "dev": true, + "dependencies": { + "semver": "^7.6.3" + } + }, + "node_modules/is-bun-module/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -6067,35 +5900,28 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" }, "engines": { @@ -6106,12 +5932,13 @@ } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6130,12 +5957,15 @@ } }, "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6203,18 +6033,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -6225,12 +6043,13 @@ } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6249,13 +6068,15 @@ } }, "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -6277,12 +6098,12 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -6303,12 +6124,13 @@ } }, "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6318,12 +6140,14 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -6333,11 +6157,11 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -6377,25 +6201,28 @@ } }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -6423,34 +6250,20 @@ "dev": true }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" - } - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "node": ">= 0.4" } }, "node_modules/js-levenshtein": { @@ -6594,9 +6407,9 @@ } }, "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", "dev": true }, "node_modules/language-tags": { @@ -6686,12 +6499,6 @@ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -6792,6 +6599,14 @@ "node": "14 || >=16.14" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -6871,15 +6686,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/module-details-from-path": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", @@ -7011,10 +6817,13 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7029,14 +6838,16 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -7093,12 +6904,13 @@ } }, "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, @@ -7134,13 +6946,14 @@ } }, "node_modules/openapi-typescript": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.0.2.tgz", - "integrity": "sha512-BBrYEf0YdW31Ernd07cD/qHoalSuiiUQvy+rHvU/1Iz9WbcFpRsIXrnfEnrEuiGTRuKCG6cDQCrxNK/rbwQRLg==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.5.2.tgz", + "integrity": "sha512-W/QXuQz0Fa3bGY6LKoqTCgrSX+xI/ST+E5RXo2WBmp3WwgXCWKDJPHv5GZmElF4yLCccnqYsakBDOJikHZYGRw==", "dev": true, "dependencies": { - "@redocly/openapi-core": "^1.16.0", + "@redocly/openapi-core": "^1.27.0", "ansi-colors": "^4.1.3", + "change-case": "^5.4.4", "parse-json": "^8.1.0", "supports-color": "^9.4.0", "yargs-parser": "^21.1.1" @@ -7187,6 +7000,23 @@ "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", "dev": true }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -7270,54 +7100,20 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -7538,12 +7334,6 @@ "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", "dev": true }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -7564,12 +7354,12 @@ } }, "node_modules/qs": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", - "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", "dev": true, "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -7578,12 +7368,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -7634,18 +7418,19 @@ "dev": true }, "node_modules/reflect.getprototypeof": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", + "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -7654,22 +7439,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -7716,12 +7497,6 @@ "node": ">=8.6.0" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -7785,43 +7560,6 @@ "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", "dev": true }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -7855,14 +7593,15 @@ } }, "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -7892,15 +7631,31 @@ } ] }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -7979,6 +7734,20 @@ "node": ">= 0.4" } }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", @@ -8075,15 +7844,69 @@ "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -8106,15 +7929,6 @@ "is-arrayish": "^0.3.1" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/slice-ansi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", @@ -8162,6 +7976,12 @@ "node": ">=0.10.0" } }, + "node_modules/stable-hash": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.4.tgz", + "integrity": "sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==", + "dev": true + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -8183,50 +8003,44 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -8246,15 +8060,18 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8264,15 +8081,19 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8305,19 +8126,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -8464,12 +8272,6 @@ "node": ">=6" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, "node_modules/throttleit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", @@ -8485,6 +8287,24 @@ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, + "node_modules/tldts": { + "version": "6.1.71", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.71.tgz", + "integrity": "sha512-LQIHmHnuzfZgZWAf2HzL83TIIrD8NhhI0DVxqo9/FdOd4ilec+NTNZOlDZf7EwrTNoutccbsHjvWHYXLAtvxjw==", + "dev": true, + "dependencies": { + "tldts-core": "^6.1.71" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.71", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.71.tgz", + "integrity": "sha512-LRbChn2YRpic1KxY+ldL1pGXN/oVvKfCVufwfVzEQdFYNo39uF7AJa/WXdo+gYO7PTvdfkCPCed6Hkvz/kR7jg==", + "dev": true + }, "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", @@ -8507,27 +8327,15 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", + "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", "dev": true, "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" + "tldts": "^6.1.32" }, "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" + "node": ">=16" } }, "node_modules/tr46": { @@ -8535,16 +8343,25 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-poet": { @@ -8638,30 +8455,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -8671,17 +8488,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -8691,17 +8509,17 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -8711,9 +8529,9 @@ } }, "node_modules/typescript": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", - "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -8724,24 +8542,27 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" }, "node_modules/universalify": { "version": "2.0.1", @@ -8770,15 +8591,11 @@ "punycode": "^2.1.0" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } + "node_modules/uri-js-replace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uri-js-replace/-/uri-js-replace-1.0.1.tgz", + "integrity": "sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==", + "dev": true }, "node_modules/use-sync-external-store": { "version": "1.2.2", @@ -8856,39 +8673,43 @@ } }, "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", + "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -8916,14 +8737,15 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { @@ -8949,24 +8771,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/src/frontend/package.json b/src/frontend/package.json index 026d998135..143f05207c 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -48,19 +48,19 @@ "uuid": "10.0.0" }, "devDependencies": { - "@types/node": "20.14.10", + "@types/node": "22.10.5", "@types/react": "18.3.3", "@types/react-dom": "18.3.0", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "7.16.0", - "@typescript-eslint/parser": "7.16.0", - "cypress": "13.13.0", - "eslint": "8.57.0", - "eslint-config-next": "14.2.5", - "eslint-plugin-react": "7.34.4", - "eslint-plugin-react-hooks": "4.6.2", - "openapi-typescript": "7.0.2", - "typescript": "5.5.3" + "@typescript-eslint/eslint-plugin": "8.19.1", + "@typescript-eslint/parser": "8.19.1", + "cypress": "13.17.0", + "eslint": "9.17.0", + "eslint-config-next": "15.1.4", + "eslint-plugin-react": "7.37.3", + "eslint-plugin-react-hooks": "5.1.0", + "openapi-typescript": "7.5.2", + "typescript": "5.7.2" } } diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index 8128bed3ab..322c29373d 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -6,7 +6,6 @@ "packages": { "": { "name": "payment", - "version": "1.12.0", "license": "ISC", "dependencies": { "@grpc/grpc-js": "1.10.11", @@ -1634,11 +1633,11 @@ } }, "node_modules/@types/node": { - "version": "20.10.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", - "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.20.0" } }, "node_modules/@types/pg": { @@ -2652,9 +2651,9 @@ "license": "0BSD" }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" }, "node_modules/util": { "version": "0.12.5", diff --git a/src/react-native-app/package-lock.json b/src/react-native-app/package-lock.json index f1016955c9..1599dcc4ac 100644 --- a/src/react-native-app/package-lock.json +++ b/src/react-native-app/package-lock.json @@ -53,17 +53,17 @@ "@babel/core": "^7.20.0", "@types/jest": "^29.5.12", "@types/react": "~18.2.45", - "@types/react-test-renderer": "^18.0.7", - "eslint": "^8.57.0", - "eslint-config-expo": "~7.1.2", + "@types/react-test-renderer": "^19.0.0", + "eslint": "^9.17.0", + "eslint-config-expo": "~8.0.1", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "jest": "^29.2.1", - "jest-expo": "~51.0.1", - "prettier": "^3.3.3", - "react-test-renderer": "18.2.0", + "jest-expo": "~52.0.2", + "prettier": "^3.4.2", + "react-test-renderer": "19.0.0", "ts-proto": "1.181.1", - "typescript": "~5.3.3" + "typescript": "~5.7.2" } }, "node_modules/@ampproject/remapping": { @@ -2244,16 +2244,42 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -2261,46 +2287,52 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@eslint/js": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@expo/bunyan": { @@ -3524,19 +3556,39 @@ "@hapi/hoek": "^9.0.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { @@ -3552,12 +3604,18 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -6736,6 +6794,34 @@ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -6804,9 +6890,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.19.64", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.64.tgz", - "integrity": "sha512-955mDqvO2vFf/oL7V3WiUtiz+BugyX8uVbaT2H8oj3+8dRyH2FLiNdowe7eNqRM7IOIZvzDH76EoAT+gwm6aIQ==", + "version": "18.19.70", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.70.tgz", + "integrity": "sha512-RE+K0+KZoEpDUbGGctnGdkrLFwi1eYKTlIHNl2Um98mUkGsm1u2Ff6Ltd0e8DktTtC98uy7rSj+hO8t/QuLoVQ==", "dependencies": { "undici-types": "~5.26.4" } @@ -6841,9 +6927,9 @@ "integrity": "sha512-CmtnfZnHKkVupG71SI9S7DDqkV6dtxxNIAzh2r1F1/tB8vg2weBtLhHmcruMIwp9Y69IZZ3DwJ0BhRpsbj42QA==" }, "node_modules/@types/react-test-renderer": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.3.0.tgz", - "integrity": "sha512-HW4MuEYxfDbOHQsVlY/XtOvNHftCVEPhJF2pQXXwcUiUF+Oyb0usgp48HSgpK5rt8m9KZb22yqOeZm+rrVG8gw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-19.0.0.tgz", + "integrity": "sha512-qDVnNybqFm2eZKJ4jD34EvRd6VHD67KjgnWaEMM0Id9L22EpWe3nOSVKHWL1XWRCxUWe3lhXwlEeCKD1BlJCQA==", "dev": true, "dependencies": { "@types/react": "*" @@ -6884,77 +6970,69 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", + "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/type-utils": "8.19.1", + "@typescript-eslint/utils": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz", + "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", + "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -6962,39 +7040,35 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", + "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/utils": "8.19.1", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz", + "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==", "dev": true, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -7002,31 +7076,29 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", + "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -7066,49 +7138,56 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz", + "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", + "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.19.1", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, "node_modules/@urql/core": { "version": "2.3.6", @@ -7139,6 +7218,167 @@ "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==" }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, "node_modules/@xmldom/xmldom": { "version": "0.7.13", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", @@ -7148,6 +7388,20 @@ "node": ">=10.0.0" } }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "peer": true + }, "node_modules/@zxing/text-encoding": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", @@ -7222,6 +7476,18 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-loose": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.4.0.tgz", + "integrity": "sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/acorn-walk": { "version": "8.3.4", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", @@ -7309,6 +7575,16 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/anser": { "version": "1.4.10", "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", @@ -7428,12 +7704,12 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -7529,15 +7805,15 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -7563,18 +7839,17 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dependencies": { "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -8176,15 +8451,41 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -8328,6 +8629,16 @@ "node": ">=12.13.0" } }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -8747,9 +9058,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", - "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8841,13 +9152,13 @@ } }, "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8857,27 +9168,27 @@ } }, "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/inspect-js" } }, "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, @@ -9139,18 +9450,6 @@ "node": ">=8" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/domexception": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", @@ -9198,11 +9497,24 @@ "detect-libc": "^1.0.3" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -9324,56 +9636,61 @@ } }, "node_modules/es-abstract": { - "version": "1.23.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", - "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -9383,12 +9700,9 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "engines": { "node": ">= 0.4" } @@ -9402,31 +9716,39 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", - "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", + "get-intrinsic": "^1.2.6", "globalthis": "^1.0.4", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.3", - "safe-array-concat": "^1.1.2" + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" }, "engines": { "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true, + "peer": true + }, "node_modules/es-object-atoms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", @@ -9439,13 +9761,14 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dependencies": { - "get-intrinsic": "^1.2.4", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -9461,13 +9784,13 @@ } }, "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -9532,79 +9855,110 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-config-expo": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/eslint-config-expo/-/eslint-config-expo-7.1.2.tgz", - "integrity": "sha512-WxrDVNklN43Op0v3fglQfzL2bC7vqacUq9oVwJcGCUEDzdM7kGOR6pfEJiz3i3dQv3cFjHtct0CFEExep5c/dA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-expo/-/eslint-config-expo-8.0.1.tgz", + "integrity": "sha512-r9PSgkuZk5Q5ALbk1yowYwEIj0oqO/ikRO9TNhpx2DzSOdK65y3urgFI04WYvQzMr9q1fnA62wr9iGfrsmF5pQ==", "dev": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "^7.4.0", - "@typescript-eslint/parser": "^7.4.0", - "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-expo": "^0.0.1", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-react": "^7.34.0", - "eslint-plugin-react-hooks": "^4.6.0" + "@typescript-eslint/eslint-plugin": "^8.9.0", + "@typescript-eslint/parser": "^8.9.0", + "eslint-import-resolver-typescript": "^3.6.3", + "eslint-plugin-expo": "^0.1.0", + "eslint-plugin-import": "^2.30.0", + "eslint-plugin-react": "^7.36.1", + "eslint-plugin-react-hooks": "^4.6.2" }, "peerDependencies": { "eslint": ">=8.10" } }, + "node_modules/eslint-config-expo/node_modules/eslint-plugin-expo": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-expo/-/eslint-plugin-expo-0.1.0.tgz", + "integrity": "sha512-bX0ABF5CTbwUnFXHN5aHhx2uyasbmr1ADlY/D1bmFb31sNd1rc+K1Ss4/BlTU6H0urGNOD30+q7LTDABKB/10g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "^8.9.0", + "@typescript-eslint/utils": "^8.9.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "eslint": ">=8 <9" + } + }, + "node_modules/eslint-config-expo/node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, "node_modules/eslint-config-prettier": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", @@ -9698,22 +10052,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-expo": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-expo/-/eslint-plugin-expo-0.0.1.tgz", - "integrity": "sha512-dNri81vunJ3T+N1YWWxjLU6ux6KiukwZ4ECXCOPp8hG7M4kuvPAb9YQSIM63AT0pbtfYH/a6htikhaQcRPjhRA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "^7.2.0", - "@typescript-eslint/utils": "^7.2.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "eslint": ">=8" - } - }, "node_modules/eslint-plugin-import": { "version": "2.31.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", @@ -9799,28 +10137,28 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.37.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", - "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "version": "7.37.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz", + "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==", "dev": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", + "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.1.0", + "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11", + "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "engines": { @@ -9830,18 +10168,6 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -9872,16 +10198,16 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -9899,45 +10225,42 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -10012,6 +10335,16 @@ "node": ">=6" } }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/exec-async": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", @@ -10960,15 +11293,15 @@ "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==" }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -11144,23 +11477,22 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true }, "node_modules/flow-enums-runtime": { @@ -11285,14 +11617,16 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -11326,15 +11660,20 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -11360,6 +11699,18 @@ "node": ">=4" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -11372,13 +11723,13 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -11438,6 +11789,13 @@ "node": ">=10.13.0" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "peer": true + }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -11503,11 +11861,11 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11547,9 +11905,12 @@ } }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11574,9 +11935,12 @@ } }, "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -11585,9 +11949,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "engines": { "node": ">= 0.4" }, @@ -11925,13 +12289,13 @@ } }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dependencies": { "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -11977,12 +12341,13 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -11997,12 +12362,14 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", + "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -12012,23 +12379,26 @@ } }, "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dependencies": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -12089,10 +12459,12 @@ } }, "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" }, "engines": { @@ -12103,11 +12475,12 @@ } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -12147,12 +12520,14 @@ } }, "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", - "dev": true, + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12242,18 +12617,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "engines": { "node": ">= 0.4" }, @@ -12270,11 +12633,12 @@ } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -12325,12 +12689,14 @@ "dev": true }, "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -12343,7 +12709,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -12352,11 +12717,11 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -12374,11 +12739,12 @@ } }, "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -12388,11 +12754,13 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -12402,11 +12770,11 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -12441,7 +12809,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -12450,24 +12817,26 @@ } }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "dev": true, + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -12593,16 +12962,17 @@ } }, "node_modules/iterator.prototype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", - "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -12968,169 +13338,103 @@ } }, "node_modules/jest-expo": { - "version": "51.0.4", - "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-51.0.4.tgz", - "integrity": "sha512-WmlR4rUur1TNF/F14brKCmPdX3TWf7Bno/6A1PuxnflN79LEIXpXuPKMlMWwCCChTohGB5FRniknRibblWu1ug==", + "version": "52.0.2", + "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-52.0.2.tgz", + "integrity": "sha512-6xV/+IRw93Org1UlgIqu89Ex3vuPRozD5VqTS95AonHMgjb0XTHHhMmn+TdR1d3i3ziy7JFbWAMoBLwminIalw==", "dev": true, "dependencies": { - "@expo/config": "~9.0.0-beta.0", - "@expo/json-file": "^8.3.0", + "@expo/config": "~10.0.4", + "@expo/json-file": "^9.0.0", "@jest/create-cache-key-function": "^29.2.1", + "@jest/globals": "^29.2.1", "babel-jest": "^29.2.1", + "fbemitter": "^3.0.0", "find-up": "^5.0.0", "jest-environment-jsdom": "^29.2.1", + "jest-snapshot": "^29.2.1", "jest-watch-select-projects": "^2.0.0", "jest-watch-typeahead": "2.2.1", "json5": "^2.2.3", "lodash": "^4.17.19", - "react-test-renderer": "18.2.0", + "react-server-dom-webpack": "19.0.0-rc-6230622a1a-20240610", + "react-test-renderer": "18.3.1", + "server-only": "^0.0.1", "stacktrace-js": "^2.0.2" }, "bin": { "jest": "bin/jest.js" + }, + "peerDependencies": { + "expo": "*", + "react-native": "*" } }, - "node_modules/jest-expo/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "node_modules/jest-expo/node_modules/react": { + "version": "19.0.0-rc-6230622a1a-20240610", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-6230622a1a-20240610.tgz", + "integrity": "sha512-SMgWGY//7nO7F3HMuBfmC15Cr4vTe2tlpSCATfnz/wymSftDOKUqc+0smjRhcUeCFCc1zhOAWJ+N//U5CrmOzQ==", "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" + "peer": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/jest-expo/node_modules/@expo/config": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", - "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", + "node_modules/jest-expo/node_modules/react-dom": { + "version": "19.0.0-rc-6230622a1a-20240610", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-6230622a1a-20240610.tgz", + "integrity": "sha512-56G4Pum5E7FeGL1rwHX5IxidSJxQnXP4yORRo0pVeOJuu5DQJvNKpUwmJoftMP/ez0AiglYTY77L2Gs8iyt1Hg==", "dev": true, + "peer": true, "dependencies": { - "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~8.0.8", - "@expo/config-types": "^51.0.3", - "@expo/json-file": "^8.3.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "semver": "^7.6.0", - "slugify": "^1.3.4", - "sucrase": "3.34.0" + "scheduler": "0.25.0-rc-6230622a1a-20240610" + }, + "peerDependencies": { + "react": "19.0.0-rc-6230622a1a-20240610" } }, - "node_modules/jest-expo/node_modules/@expo/config-plugins": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", - "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "node_modules/jest-expo/node_modules/react-dom/node_modules/scheduler": { + "version": "0.25.0-rc-6230622a1a-20240610", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-6230622a1a-20240610.tgz", + "integrity": "sha512-GTIQdJXthps5mgkIFo7yAq03M0QQYTfN8z+GrnMC/SCKFSuyFP5tk2BMaaWUsVy4u4r+dTLdiXH8JEivVls0Bw==", "dev": true, - "dependencies": { - "@expo/config-types": "^51.0.3", - "@expo/json-file": "~8.3.0", - "@expo/plist": "^0.1.0", - "@expo/sdk-runtime-versions": "^1.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.1", - "find-up": "~5.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "semver": "^7.5.4", - "slash": "^3.0.0", - "slugify": "^1.6.6", - "xcode": "^3.0.1", - "xml2js": "0.6.0" - } + "peer": true }, - "node_modules/jest-expo/node_modules/@expo/config-types": { - "version": "51.0.3", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", - "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==", + "node_modules/jest-expo/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, - "node_modules/jest-expo/node_modules/@expo/json-file": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", - "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", - "dev": true, - "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^2.2.2", - "write-file-atomic": "^2.3.0" - } - }, - "node_modules/jest-expo/node_modules/@expo/plist": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", - "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", - "dev": true, - "dependencies": { - "@xmldom/xmldom": "~0.7.7", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" - } - }, - "node_modules/jest-expo/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jest-expo/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/jest-expo/node_modules/react-server-dom-webpack": { + "version": "19.0.0-rc-6230622a1a-20240610", + "resolved": "https://registry.npmjs.org/react-server-dom-webpack/-/react-server-dom-webpack-19.0.0-rc-6230622a1a-20240610.tgz", + "integrity": "sha512-nr+IsOVD07QdeCr4BLvR5TALfLaZLi9AIaoa6vXymBc051iDPWedJujYYrjRJy5+9jp9oCx3G8Tt/Bs//TckJw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "acorn-loose": "^8.3.0", + "neo-async": "^2.6.1" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jest-expo/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node": ">=0.10.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "react": "19.0.0-rc-6230622a1a-20240610", + "react-dom": "19.0.0-rc-6230622a1a-20240610", + "webpack": "^5.59.0" } }, - "node_modules/jest-expo/node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "node_modules/jest-expo/node_modules/react-test-renderer": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.3.1.tgz", + "integrity": "sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" + "react-is": "^18.3.1", + "react-shallow-renderer": "^16.15.0", + "scheduler": "^0.23.2" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "react": "^18.3.1" } }, "node_modules/jest-get-type": { @@ -14189,6 +14493,16 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -14510,6 +14824,14 @@ "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==" }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", @@ -15389,13 +15711,15 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -15452,12 +15776,13 @@ } }, "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, @@ -15664,6 +15989,22 @@ "os-tmpdir": "^1.0.0" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -16037,9 +16378,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -16286,6 +16627,16 @@ } ] }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -16741,23 +17092,28 @@ } }, "node_modules/react-test-renderer": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz", - "integrity": "sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-19.0.0.tgz", + "integrity": "sha512-oX5u9rOQlHzqrE/64CNr0HB0uWxkCQmZNSfozlYvwE71TLVgeZxVf0IjouGEr1v7r1kcDifdAJBeOhdhxsG/DA==", "dev": true, "dependencies": { - "react-is": "^18.2.0", - "react-shallow-renderer": "^16.15.0", - "scheduler": "^0.23.0" + "react-is": "^19.0.0", + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^19.0.0" } }, "node_modules/react-test-renderer/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", + "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", + "dev": true + }, + "node_modules/react-test-renderer/node_modules/scheduler": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", "dev": true }, "node_modules/readable-stream": { @@ -16812,18 +17168,18 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", - "dev": true, + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", + "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -17119,13 +17475,14 @@ } }, "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -17154,14 +17511,29 @@ } ] }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -17202,9 +17574,9 @@ } }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -17212,7 +17584,7 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -17344,6 +17716,16 @@ "node": ">=0.10.0" } }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/serve-static": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", @@ -17440,6 +17822,12 @@ "node": ">= 0.8" } }, + "node_modules/server-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", + "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==", + "dev": true + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -17480,6 +17868,19 @@ "node": ">= 0.4" } }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -17539,14 +17940,65 @@ "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -17940,23 +18392,24 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -17976,14 +18429,17 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -17993,14 +18449,18 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -18380,6 +18840,72 @@ "node": ">=10" } }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -18559,15 +19085,15 @@ } }, "node_modules/ts-api-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", - "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-interface-checker": { @@ -18684,28 +19210,28 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -18715,16 +19241,17 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -18734,16 +19261,16 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -18772,9 +19299,9 @@ } }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "devOptional": true, "bin": { "tsc": "bin/tsc", @@ -18810,14 +19337,17 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -19092,6 +19622,20 @@ "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz", "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==" }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -19128,6 +19672,106 @@ "node": ">=12" } }, + "node_modules/webpack": { + "version": "5.97.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", + "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -19203,38 +19847,41 @@ } }, "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-builtin-type": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", - "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dependencies": { + "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", + "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", + "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", - "which-typed-array": "^1.1.15" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -19247,7 +19894,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -19267,14 +19913,15 @@ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { diff --git a/src/react-native-app/package.json b/src/react-native-app/package.json index 0309320c65..f8b68ffd52 100644 --- a/src/react-native-app/package.json +++ b/src/react-native-app/package.json @@ -60,17 +60,17 @@ "@babel/core": "^7.20.0", "@types/jest": "^29.5.12", "@types/react": "~18.2.45", - "@types/react-test-renderer": "^18.0.7", - "eslint": "^8.57.0", - "eslint-config-expo": "~7.1.2", + "@types/react-test-renderer": "^19.0.0", + "eslint": "^9.17.0", + "eslint-config-expo": "~8.0.1", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "jest": "^29.2.1", - "jest-expo": "~51.0.1", - "prettier": "^3.3.3", - "react-test-renderer": "18.2.0", + "jest-expo": "~52.0.2", + "prettier": "^3.4.2", + "react-test-renderer": "19.0.0", "ts-proto": "1.181.1", - "typescript": "~5.3.3" + "typescript": "~5.7.2" }, "private": true } From 93991f5380927cee6fd891ecaa5113f438ea3afe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:12:08 -0500 Subject: [PATCH 063/178] build(deps): bump the composer-production-dependencies group across 1 directory with 11 updates (#1890) Updates the requirements on [monolog/monolog](https://github.com/Seldaek/monolog), [open-telemetry/sdk](https://github.com/opentelemetry-php/sdk), [open-telemetry/exporter-otlp](https://github.com/opentelemetry-php/exporter-otlp), [open-telemetry/opentelemetry-auto-slim](https://github.com/opentelemetry-php/contrib-auto-slim), [guzzlehttp/guzzle](https://github.com/guzzle/guzzle), [php-di/php-di](https://github.com/PHP-DI/PHP-DI), [php-di/slim-bridge](https://github.com/PHP-DI/Slim-Bridge), [php-http/guzzle7-adapter](https://github.com/php-http/guzzle7-adapter), [react/http](https://github.com/reactphp/http), [slim/psr7](https://github.com/slimphp/Slim-Psr7) and [slim/slim](https://github.com/slimphp/Slim) to permit the latest version. Updates `monolog/monolog` to 3.8.1 - [Release notes](https://github.com/Seldaek/monolog/releases) - [Changelog](https://github.com/Seldaek/monolog/blob/main/CHANGELOG.md) - [Commits](https://github.com/Seldaek/monolog/compare/3.5.0...3.8.1) Updates `open-telemetry/sdk` to 1.2.0 - [Release notes](https://github.com/opentelemetry-php/sdk/releases) - [Commits](https://github.com/opentelemetry-php/sdk/compare/1.0.8...1.2.0) Updates `open-telemetry/exporter-otlp` to 1.2.0 - [Release notes](https://github.com/opentelemetry-php/exporter-otlp/releases) - [Commits](https://github.com/opentelemetry-php/exporter-otlp/compare/1.0.4...1.2.0) Updates `open-telemetry/opentelemetry-auto-slim` to 1.0.7 - [Release notes](https://github.com/opentelemetry-php/contrib-auto-slim/releases) - [Commits](https://github.com/opentelemetry-php/contrib-auto-slim/compare/1.0.6...1.0.7) Updates `guzzlehttp/guzzle` to 7.9.2 - [Release notes](https://github.com/guzzle/guzzle/releases) - [Changelog](https://github.com/guzzle/guzzle/blob/7.9/CHANGELOG.md) - [Commits](https://github.com/guzzle/guzzle/compare/7.8.1...7.9.2) Updates `php-di/php-di` to 7.0.7 - [Release notes](https://github.com/PHP-DI/PHP-DI/releases) - [Commits](https://github.com/PHP-DI/PHP-DI/compare/7.0.6...7.0.7) Updates `php-di/slim-bridge` to 3.4.1 - [Release notes](https://github.com/PHP-DI/Slim-Bridge/releases) - [Commits](https://github.com/PHP-DI/Slim-Bridge/compare/3.4.0...3.4.1) Updates `php-http/guzzle7-adapter` to 1.1.0 - [Release notes](https://github.com/php-http/guzzle7-adapter/releases) - [Changelog](https://github.com/php-http/guzzle7-adapter/blob/1.x/CHANGELOG.md) - [Commits](https://github.com/php-http/guzzle7-adapter/compare/1.0.0...1.1.0) Updates `react/http` to 1.11.0 - [Release notes](https://github.com/reactphp/http/releases) - [Changelog](https://github.com/reactphp/http/blob/v1.11.0/CHANGELOG.md) - [Commits](https://github.com/reactphp/http/compare/v1.9.0...v1.11.0) Updates `slim/psr7` to 1.7.0 - [Release notes](https://github.com/slimphp/Slim-Psr7/releases) - [Commits](https://github.com/slimphp/Slim-Psr7/compare/1.6.1...1.7.0) Updates `slim/slim` to 4.14.0 - [Release notes](https://github.com/slimphp/Slim/releases) - [Changelog](https://github.com/slimphp/Slim/blob/4.x/CHANGELOG.md) - [Commits](https://github.com/slimphp/Slim/compare/4.12.0...4.14.0) --- updated-dependencies: - dependency-name: monolog/monolog dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: open-telemetry/sdk dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: open-telemetry/exporter-otlp dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: open-telemetry/opentelemetry-auto-slim dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: guzzlehttp/guzzle dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: php-di/php-di dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: php-di/slim-bridge dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: php-http/guzzle7-adapter dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: react/http dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: slim/psr7 dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: slim/slim dependency-type: direct:production dependency-group: composer-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/quote/composer.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/quote/composer.json b/src/quote/composer.json index 689515431a..44ee4bb554 100644 --- a/src/quote/composer.json +++ b/src/quote/composer.json @@ -6,20 +6,20 @@ "php": ">= 8.3", "ext-json": "*", "ext-pcntl": "*", - "monolog/monolog": "3.5.0", + "monolog/monolog": "3.8.1", "open-telemetry/api": "1.0.3", - "open-telemetry/sdk": "1.0.8", - "open-telemetry/exporter-otlp": "1.0.4", - "open-telemetry/opentelemetry-auto-slim": "1.0.6", + "open-telemetry/sdk": "1.2.0", + "open-telemetry/exporter-otlp": "1.2.0", + "open-telemetry/opentelemetry-auto-slim": "1.0.7", "open-telemetry/detector-container": "1.0.0", "open-telemetry/opentelemetry-logger-monolog": "1.0.0", - "guzzlehttp/guzzle": "7.8.1", - "php-di/php-di": "7.0.6", - "php-di/slim-bridge": "3.4.0", - "php-http/guzzle7-adapter": "1.0.0", - "react/http": "v1.9.0", - "slim/psr7": "1.6.1", - "slim/slim": "4.12.0" + "guzzlehttp/guzzle": "7.9.2", + "php-di/php-di": "7.0.7", + "php-di/slim-bridge": "3.4.1", + "php-http/guzzle7-adapter": "1.1.0", + "react/http": "v1.11.0", + "slim/psr7": "1.7.0", + "slim/slim": "4.14.0" }, "autoload": { "psr-4": { From 1fdc9474453a0d58644b1c6904db33859886c056 Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Fri, 10 Jan 2025 09:48:51 +0100 Subject: [PATCH 064/178] =?UTF-8?q?Revert=20"build(deps):=20bump=20the=20c?= =?UTF-8?q?omposer-production-dependencies=20group=20across=201=E2=80=A6"?= =?UTF-8?q?=20(#1898)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 93991f5380927cee6fd891ecaa5113f438ea3afe. --- src/quote/composer.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/quote/composer.json b/src/quote/composer.json index 44ee4bb554..689515431a 100644 --- a/src/quote/composer.json +++ b/src/quote/composer.json @@ -6,20 +6,20 @@ "php": ">= 8.3", "ext-json": "*", "ext-pcntl": "*", - "monolog/monolog": "3.8.1", + "monolog/monolog": "3.5.0", "open-telemetry/api": "1.0.3", - "open-telemetry/sdk": "1.2.0", - "open-telemetry/exporter-otlp": "1.2.0", - "open-telemetry/opentelemetry-auto-slim": "1.0.7", + "open-telemetry/sdk": "1.0.8", + "open-telemetry/exporter-otlp": "1.0.4", + "open-telemetry/opentelemetry-auto-slim": "1.0.6", "open-telemetry/detector-container": "1.0.0", "open-telemetry/opentelemetry-logger-monolog": "1.0.0", - "guzzlehttp/guzzle": "7.9.2", - "php-di/php-di": "7.0.7", - "php-di/slim-bridge": "3.4.1", - "php-http/guzzle7-adapter": "1.1.0", - "react/http": "v1.11.0", - "slim/psr7": "1.7.0", - "slim/slim": "4.14.0" + "guzzlehttp/guzzle": "7.8.1", + "php-di/php-di": "7.0.6", + "php-di/slim-bridge": "3.4.0", + "php-http/guzzle7-adapter": "1.0.0", + "react/http": "v1.9.0", + "slim/psr7": "1.6.1", + "slim/slim": "4.12.0" }, "autoload": { "psr-4": { From 0c7c104a97b930d6a9585e886f56a3a854be0299 Mon Sep 17 00:00:00 2001 From: Charlie Le Date: Mon, 13 Jan 2025 01:34:37 -0800 Subject: [PATCH 065/178] fix(docker): add workaround for JDK-8345296 on OSX with _JAVA_OPTIONS (#1872) * fix(docker): add workaround for JDK-8345296 on OSX with _JAVA_OPTIONS Signed-off-by: Charlie Le * fix(docker): add macOS arm64 support for JDK-8345296 workaround Signed-off-by: Charlie Le * set adFailure back to off --------- Signed-off-by: Charlie Le Co-authored-by: Juliano Costa --- .env.arm64 | 1 + Makefile | 15 ++++++++++++--- docker-compose.minimal.yml | 4 ++++ docker-compose.yml | 6 ++++++ src/ad/Dockerfile | 4 +++- src/flagd/demo.flagd.json | 2 +- 6 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 .env.arm64 diff --git a/.env.arm64 b/.env.arm64 new file mode 100644 index 0000000000..92b04b3a5f --- /dev/null +++ b/.env.arm64 @@ -0,0 +1 @@ +_JAVA_OPTIONS=-XX:UseSVE=0 diff --git a/Makefile b/Makefile index a10756b585..3f0eb3fd91 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,15 @@ MISSPELL = $(TOOLS_DIR)/$(MISSPELL_BINARY) DOCKER_COMPOSE_CMD ?= docker compose DOCKER_COMPOSE_ENV=--env-file .env --env-file .env.override +DOCKER_COMPOSE_BUILD_ARGS= + +# Java Workaround for macOS 15.2+ and M4 chips (see https://bugs.openjdk.org/browse/JDK-8345296) +ifeq ($(shell uname -m),arm64) + ifeq ($(shell uname -s),Darwin) + DOCKER_COMPOSE_ENV+= --env-file .env.arm64 + DOCKER_COMPOSE_BUILD_ARGS+= --build-arg=_JAVA_OPTIONS=-XX:UseSVE=0 + endif +endif # see https://github.com/open-telemetry/build-tools/releases for semconvgen updates # Keep links in semantic_conventions/README.md and .vscode/settings.json in sync! @@ -77,11 +86,11 @@ install-tools: $(MISSPELL) .PHONY: build build: - $(DOCKER_COMPOSE_CMD) build + $(DOCKER_COMPOSE_CMD) build $(DOCKER_COMPOSE_BUILD_ARGS) .PHONY: build-and-push build-and-push: - $(DOCKER_COMPOSE_CMD) $(DOCKER_COMPOSE_ENV) build --push + $(DOCKER_COMPOSE_CMD) $(DOCKER_COMPOSE_ENV) build $(DOCKER_COMPOSE_BUILD_ARGS) --push # Create multiplatform builder for buildx .PHONY: create-multiplatform-builder @@ -209,7 +218,7 @@ ifdef SERVICE endif ifdef service - $(DOCKER_COMPOSE_CMD) $(DOCKER_COMPOSE_ENV) build $(service) + $(DOCKER_COMPOSE_CMD) $(DOCKER_COMPOSE_ENV) build $(DOCKER_COMPOSE_BUILD_ARGS) $(service) $(DOCKER_COMPOSE_CMD) $(DOCKER_COMPOSE_ENV) stop $(service) $(DOCKER_COMPOSE_CMD) $(DOCKER_COMPOSE_ENV) rm --force $(service) $(DOCKER_COMPOSE_CMD) $(DOCKER_COMPOSE_ENV) create $(service) diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 1488d4c77a..4e3b12ed13 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -44,6 +44,8 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_LOGS_EXPORTER=otlp - OTEL_SERVICE_NAME=ad + # Workaround on OSX for https://bugs.openjdk.org/browse/JDK-8345296 + - _JAVA_OPTIONS depends_on: otel-collector: condition: service_started @@ -654,6 +656,8 @@ services: - OPENSEARCH_JAVA_OPTS=-Xms300m -Xmx300m - DISABLE_INSTALL_DEMO_CONFIG=true - DISABLE_SECURITY_PLUGIN=true + # Workaround on OSX for https://bugs.openjdk.org/browse/JDK-8345296 + - _JAVA_OPTIONS ulimits: memlock: soft: -1 diff --git a/docker-compose.yml b/docker-compose.yml index c49c4411d6..18862db8b6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -71,6 +71,8 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_LOGS_EXPORTER=otlp - OTEL_SERVICE_NAME=ad + # Workaround on OSX for https://bugs.openjdk.org/browse/JDK-8345296 + - _JAVA_OPTIONS depends_on: otel-collector: condition: service_started @@ -658,6 +660,8 @@ services: - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=kafka - KAFKA_HEAP_OPTS=-Xmx400m -Xms400m + # Workaround on OSX for https://bugs.openjdk.org/browse/JDK-8345296 + - _JAVA_OPTIONS healthcheck: test: nc -z kafka 9092 start_period: 10s @@ -798,6 +802,8 @@ services: - OPENSEARCH_JAVA_OPTS=-Xms300m -Xmx300m - DISABLE_INSTALL_DEMO_CONFIG=true - DISABLE_SECURITY_PLUGIN=true + # Workaround on OSX for https://bugs.openjdk.org/browse/JDK-8345296 + - _JAVA_OPTIONS ulimits: memlock: soft: -1 diff --git a/src/ad/Dockerfile b/src/ad/Dockerfile index 1e8cd71d7a..1b59165945 100644 --- a/src/ad/Dockerfile +++ b/src/ad/Dockerfile @@ -3,7 +3,7 @@ FROM --platform=${BUILDPLATFORM} eclipse-temurin:21-jdk AS builder - +ARG _JAVA_OPTIONS WORKDIR /usr/src/app/ COPY ./src/ad/gradlew* ./src/ad/settings.gradle* ./src/ad/build.gradle ./ @@ -23,6 +23,8 @@ RUN ./gradlew installDist -PprotoSourceDir=./proto FROM eclipse-temurin:21-jre ARG OTEL_JAVA_AGENT_VERSION +ARG _JAVA_OPTIONS + WORKDIR /usr/src/app/ COPY --from=builder /usr/src/app/ ./ diff --git a/src/flagd/demo.flagd.json b/src/flagd/demo.flagd.json index 4425e72415..b4febb1570 100644 --- a/src/flagd/demo.flagd.json +++ b/src/flagd/demo.flagd.json @@ -44,7 +44,7 @@ "on": true, "off": false }, - "defaultVariant": "on" + "defaultVariant": "off" }, "kafkaQueueProblems": { "description": "Overloads Kafka queue while simultaneously introducing a consumer side delay leading to a lag spike", From d534e42955e9a7d88d9528bd7fc2a141730a70e2 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Tue, 14 Jan 2025 07:37:47 -0500 Subject: [PATCH 066/178] [chore] drop _SERVICE for dependent service env variables (#1897) * drop _SERVICE suffix * drop _SERVICE suffix --------- Co-authored-by: Juliano Costa --- .dockerignore | 25 +------------------ .env | 20 +++++++-------- .gitignore | 4 --- .licenserc.json | 2 -- CHANGELOG.md | 2 ++ docker-compose-tests.yml | 2 +- docker-compose.minimal.yml | 14 +++++------ docker-compose.yml | 22 ++++++++-------- src/accounting/Consumer.cs | 4 +-- src/checkout/main.go | 2 +- .../src/main/kotlin/frauddetection/main.kt | 4 +-- src/frontendproxy/envoy.tmpl.yaml | 8 +++--- 12 files changed, 41 insertions(+), 68 deletions(-) diff --git a/.dockerignore b/.dockerignore index 5610276644..94fdc73a30 100644 --- a/.dockerignore +++ b/.dockerignore @@ -13,35 +13,12 @@ src/*/*/Dockerfile ./src/currency/node_modules/ ################################### -################################### -# featureflagservice -# Common development/test artifacts -./src/featureflagservice/cover/ -./src/featureflagservice/doc/ -./src/featureflagservice/test/ -./src/featureflagservice/tmp/ -./src/featureflagservice/.elixir_ls - ################################### # frontend ./src/frontend/node_modules/ ################################### -# shippingservice +# shipping ./src/shipping/target ################################### -# Mix artifacts -./src/featureflagservice/_build/ -./src/featureflagservice/deps/ -./src/featureflagservice/*.ez - -# Generated on crash by the VM -./src/featureflagservice/erl_crash.dump - -# Static artifacts - These should be fetched and built inside the Docker image -./src/featureflagservice/assets/node_modules/ -./src/featureflagservice/priv/static/assets/ -./src/featureflagservice/priv/static/cache_manifest.json -################################### - diff --git a/.env b/.env index 93ee840b82..feb7495f93 100644 --- a/.env +++ b/.env @@ -139,9 +139,9 @@ FLAGD_UI_PORT=4000 FLAGD_UI_DOCKERFILE=./src/flagd-ui/Dockerfile # Kafka -KAFKA_SERVICE_PORT=9092 -KAFKA_SERVICE_ADDR=kafka:${KAFKA_SERVICE_PORT} -KAFKA_SERVICE_DOCKERFILE=./src/kafka/Dockerfile +KAFKA_PORT=9092 +KAFKA_ADDR=kafka:${KAFKA_PORT} +KAFKA_DOCKERFILE=./src/kafka/Dockerfile # Valkey VALKEY_PORT=6379 @@ -151,14 +151,14 @@ VALKEY_ADDR=valkey-cart:${VALKEY_PORT} # Telemetry Components # ******************** # Grafana -GRAFANA_SERVICE_PORT=3000 -GRAFANA_SERVICE_HOST=grafana +GRAFANA_PORT=3000 +GRAFANA_HOST=grafana # Jaeger -JAEGER_SERVICE_PORT=16686 -JAEGER_SERVICE_HOST=jaeger +JAEGER_PORT=16686 +JAEGER_HOST=jaeger # Prometheus -PROMETHEUS_SERVICE_PORT=9090 -PROMETHEUS_SERVICE_HOST=prometheus -PROMETHEUS_ADDR=${PROMETHEUS_SERVICE_HOST}:${PROMETHEUS_SERVICE_PORT} +PROMETHEUS_PORT=9090 +PROMETHEUS_HOST=prometheus +PROMETHEUS_ADDR=${PROMETHEUS_HOST}:${PROMETHEUS_PORT} diff --git a/.gitignore b/.gitignore index d4bd3ae744..4a6df8a42e 100644 --- a/.gitignore +++ b/.gitignore @@ -43,10 +43,6 @@ test/tracetesting/tracetesting-vars.yaml # Ignore copied/generated protobuf files /src/accounting/src/protos/ /src/cart/src/protos/ -/src/featureflagservice/proto/ -/src/featureflagservice/src/ffs_demo_pb.erl -/src/featureflagservice/src/ffs_service_*.erl -/src/featureflagservice/src/oteldemo_*.erl /src/fraud-detection/src/main/proto /src/frontend/pb/ /src/frontend/protos/ diff --git a/.licenserc.json b/.licenserc.json index 56a700cd0a..5e9a7eaac5 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -43,8 +43,6 @@ "src/cart/tests/obj/", "src/currency/build/", "src/checkout/genproto/", - "src/featureflagservice/assets/vendor/", - "src/featureflagservice/priv/", "src/product-catalog/genproto/", "src/react-native-app/ios/Pods/", "src/react-native-app/ios/build/", diff --git a/CHANGELOG.md b/CHANGELOG.md index 57308f4620..479235bb0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,6 +68,8 @@ the release. ([#1864](https://github.com/open-telemetry/opentelemetry-demo/pull/1864)) * [checkout] rename checkoutservice to checkout ([#1867](https://github.com/open-telemetry/opentelemetry-demo/pull/1867)) +* [chore] remove `SERVICE_` from environment variables + ([#1897](https://github.com/open-telemetry/opentelemetry-demo/pull/1897)) ## 1.12.0 diff --git a/docker-compose-tests.yml b/docker-compose-tests.yml index ea12ae7d14..d9418a5d79 100644 --- a/docker-compose-tests.yml +++ b/docker-compose-tests.yml @@ -47,7 +47,7 @@ services: - PRODUCT_CATALOG_ADDR - RECOMMENDATION_ADDR - SHIPPING_ADDR - - KAFKA_SERVICE_ADDR + - KAFKA_ADDR extra_hosts: - "host.docker.internal:host-gateway" volumes: diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 4e3b12ed13..a4b4fe7351 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -261,10 +261,10 @@ services: - FRONTEND_HOST - LOCUST_WEB_HOST - LOCUST_WEB_PORT - - GRAFANA_SERVICE_PORT - - GRAFANA_SERVICE_HOST - - JAEGER_SERVICE_PORT - - JAEGER_SERVICE_HOST + - GRAFANA_PORT + - GRAFANA_HOST + - JAEGER_PORT + - JAEGER_HOST - OTEL_COLLECTOR_HOST - IMAGE_PROVIDER_HOST - IMAGE_PROVIDER_PORT @@ -558,7 +558,7 @@ services: memory: 400M restart: unless-stopped ports: - - "${JAEGER_SERVICE_PORT}" # Jaeger UI + - "${JAEGER_PORT}" # Jaeger UI - "${OTEL_COLLECTOR_PORT_GRPC}" environment: - METRICS_STORAGE_TYPE=prometheus @@ -579,7 +579,7 @@ services: - ./src/grafana/grafana.ini:/etc/grafana/grafana.ini - ./src/grafana/provisioning/:/etc/grafana/provisioning/ ports: - - "${GRAFANA_SERVICE_PORT}" + - "${GRAFANA_PORT}" logging: *logging # OpenTelemetry Collector @@ -636,7 +636,7 @@ services: memory: 300M restart: unless-stopped ports: - - "${PROMETHEUS_SERVICE_PORT}:${PROMETHEUS_SERVICE_PORT}" + - "${PROMETHEUS_PORT}:${PROMETHEUS_PORT}" logging: *logging # OpenSearch diff --git a/docker-compose.yml b/docker-compose.yml index 18862db8b6..9a65ae6469 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,7 +32,7 @@ services: memory: 120M restart: unless-stopped environment: - - KAFKA_SERVICE_ADDR + - KAFKA_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP} - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES @@ -140,7 +140,7 @@ services: - PAYMENT_ADDR - PRODUCT_CATALOG_ADDR - SHIPPING_ADDR - - KAFKA_SERVICE_ADDR + - KAFKA_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES @@ -240,7 +240,7 @@ services: environment: - FLAGD_HOST - FLAGD_PORT - - KAFKA_SERVICE_ADDR + - KAFKA_ADDR - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP} - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_INSTRUMENTATION_KAFKA_EXPERIMENTAL_SPAN_ATTRIBUTES=true @@ -335,10 +335,10 @@ services: - FRONTEND_HOST - LOCUST_WEB_HOST - LOCUST_WEB_PORT - - GRAFANA_SERVICE_PORT - - GRAFANA_SERVICE_HOST - - JAEGER_SERVICE_PORT - - JAEGER_SERVICE_HOST + - GRAFANA_PORT + - GRAFANA_HOST + - JAEGER_PORT + - JAEGER_HOST - OTEL_COLLECTOR_HOST - IMAGE_PROVIDER_HOST - IMAGE_PROVIDER_PORT @@ -643,7 +643,7 @@ services: container_name: kafka build: context: ./ - dockerfile: ${KAFKA_SERVICE_DOCKERFILE} + dockerfile: ${KAFKA_DOCKERFILE} cache_from: - ${IMAGE_NAME}:${IMAGE_VERSION}-kafka args: @@ -704,7 +704,7 @@ services: memory: 1200M restart: unless-stopped ports: - - "${JAEGER_SERVICE_PORT}" # Jaeger UI + - "${JAEGER_PORT}" # Jaeger UI - "${OTEL_COLLECTOR_PORT_GRPC}" environment: - METRICS_STORAGE_TYPE=prometheus @@ -725,7 +725,7 @@ services: - ./src/grafana/grafana.ini:/etc/grafana/grafana.ini - ./src/grafana/provisioning/:/etc/grafana/provisioning/ ports: - - "${GRAFANA_SERVICE_PORT}" + - "${GRAFANA_PORT}" logging: *logging # OpenTelemetry Collector @@ -782,7 +782,7 @@ services: memory: 300M restart: unless-stopped ports: - - "${PROMETHEUS_SERVICE_PORT}:${PROMETHEUS_SERVICE_PORT}" + - "${PROMETHEUS_PORT}:${PROMETHEUS_PORT}" logging: *logging # OpenSearch diff --git a/src/accounting/Consumer.cs b/src/accounting/Consumer.cs index 421f04809e..707f90737d 100644 --- a/src/accounting/Consumer.cs +++ b/src/accounting/Consumer.cs @@ -19,8 +19,8 @@ public Consumer(ILogger logger) { _logger = logger; - var servers = Environment.GetEnvironmentVariable("KAFKA_SERVICE_ADDR") - ?? throw new ArgumentNullException("KAFKA_SERVICE_ADDR"); + var servers = Environment.GetEnvironmentVariable("KAFKA_ADDR") + ?? throw new ArgumentNullException("KAFKA_ADDR"); _consumer = BuildConsumer(servers); _consumer.Subscribe(TopicName); diff --git a/src/checkout/main.go b/src/checkout/main.go index feea6937d5..c9d40c7f06 100644 --- a/src/checkout/main.go +++ b/src/checkout/main.go @@ -197,7 +197,7 @@ func main() { svc.paymentSvcClient = pb.NewPaymentServiceClient(c) defer c.Close() - svc.kafkaBrokerSvcAddr = os.Getenv("KAFKA_SERVICE_ADDR") + svc.kafkaBrokerSvcAddr = os.Getenv("KAFKA_ADDR") if svc.kafkaBrokerSvcAddr != "" { svc.KafkaProducerClient, err = kafka.CreateKafkaProducer([]string{svc.kafkaBrokerSvcAddr}, log) diff --git a/src/fraud-detection/src/main/kotlin/frauddetection/main.kt b/src/fraud-detection/src/main/kotlin/frauddetection/main.kt index ac36b66d44..bcb480ae77 100644 --- a/src/fraud-detection/src/main/kotlin/frauddetection/main.kt +++ b/src/fraud-detection/src/main/kotlin/frauddetection/main.kt @@ -39,9 +39,9 @@ fun main() { props[KEY_DESERIALIZER_CLASS_CONFIG] = StringDeserializer::class.java.name props[VALUE_DESERIALIZER_CLASS_CONFIG] = ByteArrayDeserializer::class.java.name props[GROUP_ID_CONFIG] = groupID - val bootstrapServers = System.getenv("KAFKA_SERVICE_ADDR") + val bootstrapServers = System.getenv("KAFKA_ADDR") if (bootstrapServers == null) { - println("KAFKA_SERVICE_ADDR is not supplied") + println("KAFKA_ADDR is not supplied") exitProcess(1) } props[BOOTSTRAP_SERVERS_CONFIG] = bootstrapServers diff --git a/src/frontendproxy/envoy.tmpl.yaml b/src/frontendproxy/envoy.tmpl.yaml index dbb539fc68..6ddbf7b6da 100644 --- a/src/frontendproxy/envoy.tmpl.yaml +++ b/src/frontendproxy/envoy.tmpl.yaml @@ -258,8 +258,8 @@ static_resources: - endpoint: address: socket_address: - address: ${GRAFANA_SERVICE_HOST} - port_value: ${GRAFANA_SERVICE_PORT} + address: ${GRAFANA_HOST} + port_value: ${GRAFANA_PORT} - name: jaeger type: STRICT_DNS lb_policy: ROUND_ROBIN @@ -270,8 +270,8 @@ static_resources: - endpoint: address: socket_address: - address: ${JAEGER_SERVICE_HOST} - port_value: ${JAEGER_SERVICE_PORT} + address: ${JAEGER_HOST} + port_value: ${JAEGER_PORT} admin: address: socket_address: From f135bffc0c19322f3d61a2684142d0361f56014d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 14:26:53 +0100 Subject: [PATCH 067/178] build(deps): bump the composer-production-dependencies group across 1 directory with 11 updates (#1899) * build(deps): bump the composer-production-dependencies group across 1 directory with 11 updates Updates the requirements on [monolog/monolog](https://github.com/Seldaek/monolog), [open-telemetry/sdk](https://github.com/opentelemetry-php/sdk), [open-telemetry/exporter-otlp](https://github.com/opentelemetry-php/exporter-otlp), [open-telemetry/opentelemetry-auto-slim](https://github.com/opentelemetry-php/contrib-auto-slim), [guzzlehttp/guzzle](https://github.com/guzzle/guzzle), [php-di/php-di](https://github.com/PHP-DI/PHP-DI), [php-di/slim-bridge](https://github.com/PHP-DI/Slim-Bridge), [php-http/guzzle7-adapter](https://github.com/php-http/guzzle7-adapter), [react/http](https://github.com/reactphp/http), [slim/psr7](https://github.com/slimphp/Slim-Psr7) and [slim/slim](https://github.com/slimphp/Slim) to permit the latest version. Updates `monolog/monolog` to 3.8.1 - [Release notes](https://github.com/Seldaek/monolog/releases) - [Changelog](https://github.com/Seldaek/monolog/blob/main/CHANGELOG.md) - [Commits](https://github.com/Seldaek/monolog/compare/3.5.0...3.8.1) Updates `open-telemetry/sdk` to 1.2.0 - [Release notes](https://github.com/opentelemetry-php/sdk/releases) - [Commits](https://github.com/opentelemetry-php/sdk/compare/1.0.8...1.2.0) Updates `open-telemetry/exporter-otlp` to 1.2.0 - [Release notes](https://github.com/opentelemetry-php/exporter-otlp/releases) - [Commits](https://github.com/opentelemetry-php/exporter-otlp/compare/1.0.4...1.2.0) Updates `open-telemetry/opentelemetry-auto-slim` to 1.0.7 - [Release notes](https://github.com/opentelemetry-php/contrib-auto-slim/releases) - [Commits](https://github.com/opentelemetry-php/contrib-auto-slim/compare/1.0.6...1.0.7) Updates `guzzlehttp/guzzle` to 7.9.2 - [Release notes](https://github.com/guzzle/guzzle/releases) - [Changelog](https://github.com/guzzle/guzzle/blob/7.9/CHANGELOG.md) - [Commits](https://github.com/guzzle/guzzle/compare/7.8.1...7.9.2) Updates `php-di/php-di` to 7.0.7 - [Release notes](https://github.com/PHP-DI/PHP-DI/releases) - [Commits](https://github.com/PHP-DI/PHP-DI/compare/7.0.6...7.0.7) Updates `php-di/slim-bridge` to 3.4.1 - [Release notes](https://github.com/PHP-DI/Slim-Bridge/releases) - [Commits](https://github.com/PHP-DI/Slim-Bridge/compare/3.4.0...3.4.1) Updates `php-http/guzzle7-adapter` to 1.1.0 - [Release notes](https://github.com/php-http/guzzle7-adapter/releases) - [Changelog](https://github.com/php-http/guzzle7-adapter/blob/1.x/CHANGELOG.md) - [Commits](https://github.com/php-http/guzzle7-adapter/compare/1.0.0...1.1.0) Updates `react/http` to 1.11.0 - [Release notes](https://github.com/reactphp/http/releases) - [Changelog](https://github.com/reactphp/http/blob/v1.11.0/CHANGELOG.md) - [Commits](https://github.com/reactphp/http/compare/v1.9.0...v1.11.0) Updates `slim/psr7` to 1.7.0 - [Release notes](https://github.com/slimphp/Slim-Psr7/releases) - [Commits](https://github.com/slimphp/Slim-Psr7/compare/1.6.1...1.7.0) Updates `slim/slim` to 4.14.0 - [Release notes](https://github.com/slimphp/Slim/releases) - [Changelog](https://github.com/slimphp/Slim/blob/4.x/CHANGELOG.md) - [Commits](https://github.com/slimphp/Slim/compare/4.12.0...4.14.0) --- updated-dependencies: - dependency-name: monolog/monolog dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: open-telemetry/sdk dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: open-telemetry/exporter-otlp dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: open-telemetry/opentelemetry-auto-slim dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: guzzlehttp/guzzle dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: php-di/php-di dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: php-di/slim-bridge dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: php-http/guzzle7-adapter dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: react/http dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: slim/psr7 dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: slim/slim dependency-type: direct:production dependency-group: composer-production-dependencies ... Signed-off-by: dependabot[bot] * bump open-telemetry/api --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa --- src/quote/composer.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/quote/composer.json b/src/quote/composer.json index 689515431a..8e19ee3753 100644 --- a/src/quote/composer.json +++ b/src/quote/composer.json @@ -6,20 +6,20 @@ "php": ">= 8.3", "ext-json": "*", "ext-pcntl": "*", - "monolog/monolog": "3.5.0", - "open-telemetry/api": "1.0.3", - "open-telemetry/sdk": "1.0.8", - "open-telemetry/exporter-otlp": "1.0.4", - "open-telemetry/opentelemetry-auto-slim": "1.0.6", + "monolog/monolog": "3.8.1", + "open-telemetry/api": "1.2.0", + "open-telemetry/sdk": "1.2.0", + "open-telemetry/exporter-otlp": "1.2.0", + "open-telemetry/opentelemetry-auto-slim": "1.0.7", "open-telemetry/detector-container": "1.0.0", "open-telemetry/opentelemetry-logger-monolog": "1.0.0", - "guzzlehttp/guzzle": "7.8.1", - "php-di/php-di": "7.0.6", - "php-di/slim-bridge": "3.4.0", - "php-http/guzzle7-adapter": "1.0.0", - "react/http": "v1.9.0", - "slim/psr7": "1.6.1", - "slim/slim": "4.12.0" + "guzzlehttp/guzzle": "7.9.2", + "php-di/php-di": "7.0.7", + "php-di/slim-bridge": "3.4.1", + "php-http/guzzle7-adapter": "1.1.0", + "react/http": "v1.11.0", + "slim/psr7": "1.7.0", + "slim/slim": "4.14.0" }, "autoload": { "psr-4": { From ea8456f52b9e2bca6a214a1bddfdd770cff995fb Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Tue, 14 Jan 2025 09:24:21 -0500 Subject: [PATCH 068/178] [frontend-proxy] Rename frontend proxy service (#1910) * rename frontend-proxy * rename frontend-proxy --- .env | 2 +- .github/workflows/component-build-images.yml | 4 ++-- CHANGELOG.md | 2 ++ docker-compose.minimal.yml | 4 ++-- docker-compose.yml | 4 ++-- renovate.json5 | 4 ++-- src/{frontendproxy => frontend-proxy}/Dockerfile | 2 +- src/{frontendproxy => frontend-proxy}/README.md | 0 src/{frontendproxy => frontend-proxy}/envoy.tmpl.yaml | 0 src/otel-collector/otelcol-config.yml | 6 +++--- 10 files changed, 15 insertions(+), 13 deletions(-) rename src/{frontendproxy => frontend-proxy}/Dockerfile (85%) rename src/{frontendproxy => frontend-proxy}/README.md (100%) rename src/{frontendproxy => frontend-proxy}/envoy.tmpl.yaml (100%) diff --git a/.env b/.env index feb7495f93..fc20a17aaa 100644 --- a/.env +++ b/.env @@ -85,7 +85,7 @@ FRONTEND_DOCKERFILE=./src/frontend/Dockerfile FRONTEND_HOST=frontend ENVOY_PORT=8080 FRONTEND_PROXY_ADDR=frontend-proxy:${ENVOY_PORT} -FRONTEND_PROXY_DOCKERFILE=./src/frontendproxy/Dockerfile +FRONTEND_PROXY_DOCKERFILE=./src/frontend-proxy/Dockerfile # Image Provider IMAGE_PROVIDER_HOST=image-provider diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 7e4bd9ad59..c181337058 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -83,8 +83,8 @@ jobs: tag_suffix: frontend context: ./ setup-qemu: true - - file: ./src/frontendproxy/Dockerfile - tag_suffix: frontendproxy + - file: ./src/frontend-proxy/Dockerfile + tag_suffix: frontend-proxy context: ./ setup-qemu: true - file: ./src/frontend/Dockerfile.cypress diff --git a/CHANGELOG.md b/CHANGELOG.md index 479235bb0b..984415f6fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -70,6 +70,8 @@ the release. ([#1867](https://github.com/open-telemetry/opentelemetry-demo/pull/1867)) * [chore] remove `SERVICE_` from environment variables ([#1897](https://github.com/open-telemetry/opentelemetry-demo/pull/1897)) +* [frontend-proxy] rename frontendproxy to frontend-proxy + ([#1910](https://github.com/open-telemetry/opentelemetry-demo/pull/1910)) ## 1.12.0 diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index a4b4fe7351..44cc686da4 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -242,8 +242,8 @@ services: logging: *logging # Frontend Proxy (Envoy) - frontendproxy: - image: ${IMAGE_NAME}:${DEMO_VERSION}-frontendproxy + frontend-proxy: + image: ${IMAGE_NAME}:${DEMO_VERSION}-frontend-proxy container_name: frontend-proxy build: context: ./ diff --git a/docker-compose.yml b/docker-compose.yml index 9a65ae6469..4eac5cc061 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -316,8 +316,8 @@ services: logging: *logging # Frontend Proxy (Envoy) - frontendproxy: - image: ${IMAGE_NAME}:${DEMO_VERSION}-frontendproxy + frontend-proxy: + image: ${IMAGE_NAME}:${DEMO_VERSION}-frontend-proxy container_name: frontend-proxy build: context: ./ diff --git a/renovate.json5 b/renovate.json5 index bccb4909a4..401cfce8d7 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -51,8 +51,8 @@ "groupName": "frontend", }, { - "matchFileNames": ["src/frontendproxy/**"], - "groupName": "frontendproxy", + "matchFileNames": ["src/frontend-proxy/**"], + "groupName": "frontend-proxy", }, { "matchFileNames": ["src/grafana/**"], diff --git a/src/frontendproxy/Dockerfile b/src/frontend-proxy/Dockerfile similarity index 85% rename from src/frontendproxy/Dockerfile rename to src/frontend-proxy/Dockerfile index e9b4bfd5b6..b97031d539 100644 --- a/src/frontendproxy/Dockerfile +++ b/src/frontend-proxy/Dockerfile @@ -6,6 +6,6 @@ RUN apt-get update && apt-get install -y gettext-base && apt-get clean && rm -rf USER envoy WORKDIR /home/envoy -COPY ./src/frontendproxy/envoy.tmpl.yaml envoy.tmpl.yaml +COPY ./src/frontend-proxy/envoy.tmpl.yaml envoy.tmpl.yaml ENTRYPOINT ["/bin/sh", "-c", "envsubst < envoy.tmpl.yaml > envoy.yaml && envoy -c envoy.yaml;"] diff --git a/src/frontendproxy/README.md b/src/frontend-proxy/README.md similarity index 100% rename from src/frontendproxy/README.md rename to src/frontend-proxy/README.md diff --git a/src/frontendproxy/envoy.tmpl.yaml b/src/frontend-proxy/envoy.tmpl.yaml similarity index 100% rename from src/frontendproxy/envoy.tmpl.yaml rename to src/frontend-proxy/envoy.tmpl.yaml diff --git a/src/otel-collector/otelcol-config.yml b/src/otel-collector/otelcol-config.yml index 387d1a0d47..248c372c4f 100644 --- a/src/otel-collector/otelcol-config.yml +++ b/src/otel-collector/otelcol-config.yml @@ -12,9 +12,9 @@ receivers: allowed_origins: - "http://*" - "https://*" - httpcheck/frontendproxy: + httpcheck/frontend-proxy: targets: - - endpoint: http://frontendproxy:${env:ENVOY_PORT} + - endpoint: http://frontend-proxy:${env:ENVOY_PORT} docker_stats: endpoint: unix:///var/run/docker.sock redis: @@ -126,7 +126,7 @@ service: processors: [transform, batch] exporters: [otlp, debug, spanmetrics] metrics: - receivers: [hostmetrics, docker_stats, httpcheck/frontendproxy, otlp, prometheus, redis, spanmetrics] + receivers: [hostmetrics, docker_stats, httpcheck/frontend-proxy, otlp, prometheus, redis, spanmetrics] processors: [batch] exporters: [otlphttp/prometheus, debug] logs: From b604d28cfc6731c8377ad28bb42f9d5ab95ef31d Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Tue, 14 Jan 2025 21:35:45 -0500 Subject: [PATCH 069/178] remove -service and _service suffixes (#1914) --- docker-compose.minimal.yml | 12 ++++++------ docker-compose.yml | 12 ++++++------ src/ad/Dockerfile | 2 +- src/ad/README.md | 2 +- src/ad/settings.gradle | 2 +- src/currency/CMakeLists.txt | 2 +- test/README.md | 6 +++--- test/tracetesting/ad/all.yaml | 2 +- test/tracetesting/currency/all.yaml | 2 +- test/tracetesting/recommendation/all.yaml | 2 +- test/tracetesting/run.bash | 4 ++-- test/tracetesting/shipping/all.yaml | 2 +- 12 files changed, 25 insertions(+), 25 deletions(-) diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 44cc686da4..6d85afd3d2 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -54,7 +54,7 @@ services: # Cart service cart: image: ${IMAGE_NAME}:${DEMO_VERSION}-cart - container_name: cart-service + container_name: cart build: context: ./ dockerfile: ${CART_DOCKERFILE} @@ -131,7 +131,7 @@ services: # Currency service currency: image: ${IMAGE_NAME}:${DEMO_VERSION}-currency - container_name: currency-service + container_name: currency build: context: ./ dockerfile: ${CURRENCY_DOCKERFILE} @@ -159,7 +159,7 @@ services: # Email service email: image: ${IMAGE_NAME}:${DEMO_VERSION}-email - container_name: email-service + container_name: email build: context: ./src/email cache_from: @@ -355,7 +355,7 @@ services: # Payment service payment: image: ${IMAGE_NAME}:${DEMO_VERSION}-payment - container_name: payment-service + container_name: payment build: context: ./ dockerfile: ${PAYMENT_DOCKERFILE} @@ -411,7 +411,7 @@ services: # Quote service quote: image: ${IMAGE_NAME}:${DEMO_VERSION}-quote - container_name: quote-service + container_name: quote build: context: ./ dockerfile: ${QUOTE_DOCKERFILE} @@ -439,7 +439,7 @@ services: # Recommendation service recommendation: image: ${IMAGE_NAME}:${DEMO_VERSION}-recommendation - container_name: recommendation-service + container_name: recommendation build: context: ./ dockerfile: ${RECOMMENDATION_DOCKERFILE} diff --git a/docker-compose.yml b/docker-compose.yml index 4eac5cc061..436a70d45b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -83,7 +83,7 @@ services: # Cart service cart: image: ${IMAGE_NAME}:${DEMO_VERSION}-cart - container_name: cart-service + container_name: cart build: context: ./ dockerfile: ${CART_DOCKERFILE} @@ -169,7 +169,7 @@ services: # Currency service currency: image: ${IMAGE_NAME}:${DEMO_VERSION}-currency - container_name: currency-service + container_name: currency build: context: ./ dockerfile: ${CURRENCY_DOCKERFILE} @@ -197,7 +197,7 @@ services: # Email service email: image: ${IMAGE_NAME}:${DEMO_VERSION}-email - container_name: email-service + container_name: email build: context: ./ dockerfile: ${EMAIL_DOCKERFILE} @@ -431,7 +431,7 @@ services: # Payment service payment: image: ${IMAGE_NAME}:${DEMO_VERSION}-payment - container_name: payment-service + container_name: payment build: context: ./ dockerfile: ${PAYMENT_DOCKERFILE} @@ -493,7 +493,7 @@ services: # Quote service quote: image: ${IMAGE_NAME}:${DEMO_VERSION}-quote - container_name: quote-service + container_name: quote build: context: ./ dockerfile: ${QUOTE_DOCKERFILE} @@ -521,7 +521,7 @@ services: # Recommendation service recommendation: image: ${IMAGE_NAME}:${DEMO_VERSION}-recommendation - container_name: recommendation-service + container_name: recommendation build: context: ./ dockerfile: ${RECOMMENDATION_DOCKERFILE} diff --git a/src/ad/Dockerfile b/src/ad/Dockerfile index 1b59165945..92f69c049e 100644 --- a/src/ad/Dockerfile +++ b/src/ad/Dockerfile @@ -32,4 +32,4 @@ ADD --chmod=644 https://github.com/open-telemetry/opentelemetry-java-instrumenta ENV JAVA_TOOL_OPTIONS=-javaagent:/usr/src/app/opentelemetry-javaagent.jar EXPOSE ${AD_PORT} -ENTRYPOINT [ "./build/install/opentelemetry-demo-ad-service/bin/Ad" ] +ENTRYPOINT [ "./build/install/opentelemetry-demo-ad/bin/Ad" ] diff --git a/src/ad/README.md b/src/ad/README.md index e3865d16b9..f19b735c9a 100644 --- a/src/ad/README.md +++ b/src/ad/README.md @@ -21,7 +21,7 @@ To run the Ad Service: ```sh export AD_PORT=8080 export FEATURE_FLAG_GRPC_SERVICE_ADDR=featureflagservice:50053 -./build/install/opentelemetry-demo-ad-service/bin/Ad +./build/install/opentelemetry-demo-ad/bin/Ad ``` ### Upgrading Gradle diff --git a/src/ad/settings.gradle b/src/ad/settings.gradle index 963f698863..b85c24c7d1 100644 --- a/src/ad/settings.gradle +++ b/src/ad/settings.gradle @@ -1,2 +1,2 @@ -rootProject.name = 'opentelemetry-demo-ad-service' +rootProject.name = 'opentelemetry-demo-ad' diff --git a/src/currency/CMakeLists.txt b/src/currency/CMakeLists.txt index 3bf13c25bc..d642155dca 100644 --- a/src/currency/CMakeLists.txt +++ b/src/currency/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.1) -project(currency-service) +project(currency) find_package(Protobuf REQUIRED) find_package(gRPC CONFIG REQUIRED) diff --git a/test/README.md b/test/README.md index 2d79d0ce61..3d17b9f1e7 100644 --- a/test/README.md +++ b/test/README.md @@ -25,9 +25,9 @@ make run-tracetesting SERVICES_TO_TEST="service-1 service-2 ..." docker compose run traceBasedTests "service-1 service-2 ..." ``` -For instance, if you need to run the tests for `ad-service` and -`payment-service`, you can run them with: +For instance, if you need to run the tests for `ad` and `payment`, you can run +them with: ```sh -make run-tracetesting SERVICES_TO_TEST="ad-service payment-service" +make run-tracetesting SERVICES_TO_TEST="ad payment" ``` diff --git a/test/tracetesting/ad/all.yaml b/test/tracetesting/ad/all.yaml index a114984752..e57c232224 100644 --- a/test/tracetesting/ad/all.yaml +++ b/test/tracetesting/ad/all.yaml @@ -3,7 +3,7 @@ type: TestSuite spec: - id: ad-service-all + id: ad-all name: 'Ad Service' description: Run all Ad Service tests enabled in sequence steps: diff --git a/test/tracetesting/currency/all.yaml b/test/tracetesting/currency/all.yaml index 843df84c9e..2f30f4f526 100644 --- a/test/tracetesting/currency/all.yaml +++ b/test/tracetesting/currency/all.yaml @@ -3,7 +3,7 @@ type: TestSuite spec: - id: currency-service-all + id: currency-all name: 'Currency Service' description: Run all Currency Service tests enabled in sequence steps: diff --git a/test/tracetesting/recommendation/all.yaml b/test/tracetesting/recommendation/all.yaml index d1effe4317..bfc43119d3 100644 --- a/test/tracetesting/recommendation/all.yaml +++ b/test/tracetesting/recommendation/all.yaml @@ -3,7 +3,7 @@ type: TestSuite spec: - id: recommendation-service-all + id: recommendation-all name: 'Recommendation Service' description: Run all Recommendation Service tests enabled in sequence steps: diff --git a/test/tracetesting/run.bash b/test/tracetesting/run.bash index 13b827e754..3842c0858c 100755 --- a/test/tracetesting/run.bash +++ b/test/tracetesting/run.bash @@ -54,8 +54,8 @@ spec: value: $RECOMMENDATION_ADDR - key: SHIPPING_ADDR value: $SHIPPING_ADDR - - key: KAFKA_SERVICE_ADDR - value: $KAFKA_SERVICE_ADDR + - key: KAFKA_ADDR + value: $KAFKA_ADDR EOF } diff --git a/test/tracetesting/shipping/all.yaml b/test/tracetesting/shipping/all.yaml index e25a2fca0b..b41610d52a 100644 --- a/test/tracetesting/shipping/all.yaml +++ b/test/tracetesting/shipping/all.yaml @@ -3,7 +3,7 @@ type: TestSuite spec: - id: shipping-service-all + id: shipping-all name: 'Shipping Service' description: Run all Shipping Service tests enabled in sequence steps: From 154464a2d1f20ab310340b0ccbfe95b7eca25da8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Jan 2025 10:23:45 +0100 Subject: [PATCH 070/178] build(deps): bump docker/build-push-action (#1918) Bumps the actions-production-dependencies group with 1 update in the / directory: [docker/build-push-action](https://github.com/docker/build-push-action). Updates `docker/build-push-action` from 6.11.0 to 6.12.0 - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v6.11.0...v6.12.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/component-build-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index c181337058..cf9ad7eb28 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -189,7 +189,7 @@ jobs: max-parallelism = 2 - name: Matrix Build and push demo images if: steps.check_changes.outputs.skip == 'false' - uses: docker/build-push-action@v6.11.0 + uses: docker/build-push-action@v6.12.0 with: context: ${{ matrix.file_tag.context }} file: ${{ matrix.file_tag.file }} From 68e67df8c7c83514b4225d4b3bde01aa75469f87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Jan 2025 14:51:29 +0100 Subject: [PATCH 071/178] build(deps): bump the go-production-dependencies group across 2 directories with 2 updates (#1920) * build(deps): bump the go-production-dependencies group across 2 directories with 2 updates Bumps the go-production-dependencies group with 2 updates in the /src/checkout directory: [google.golang.org/grpc](https://github.com/grpc/grpc-go) and google.golang.org/protobuf. Bumps the go-production-dependencies group with 2 updates in the /src/product-catalog directory: [google.golang.org/grpc](https://github.com/grpc/grpc-go) and google.golang.org/protobuf. Updates `google.golang.org/grpc` from 1.69.2 to 1.69.4 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.69.2...v1.69.4) Updates `google.golang.org/protobuf` from 1.36.2 to 1.36.3 Updates `google.golang.org/grpc` from 1.69.2 to 1.69.4 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.69.2...v1.69.4) Updates `google.golang.org/protobuf` from 1.36.2 to 1.36.3 --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] * chore: update protobuf Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/checkout/genproto/oteldemo/demo.pb.go | 2 +- src/checkout/go.mod | 4 ++-- src/checkout/go.sum | 8 ++++---- src/product-catalog/genproto/oteldemo/demo.pb.go | 2 +- src/product-catalog/go.mod | 4 ++-- src/product-catalog/go.sum | 8 ++++---- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/checkout/genproto/oteldemo/demo.pb.go b/src/checkout/genproto/oteldemo/demo.pb.go index ce111c2c17..2079a889aa 100644 --- a/src/checkout/genproto/oteldemo/demo.pb.go +++ b/src/checkout/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.2 +// protoc-gen-go v1.36.3 // protoc v4.24.4 // source: demo.proto diff --git a/src/checkout/go.mod b/src/checkout/go.mod index 1b189e7fbb..d94a9516b3 100644 --- a/src/checkout/go.mod +++ b/src/checkout/go.mod @@ -20,9 +20,9 @@ require ( go.opentelemetry.io/otel/sdk v1.33.0 go.opentelemetry.io/otel/sdk/metric v1.33.0 go.opentelemetry.io/otel/trace v1.33.0 - google.golang.org/grpc v1.69.2 + google.golang.org/grpc v1.69.4 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.36.2 + google.golang.org/protobuf v1.36.3 ) require ( diff --git a/src/checkout/go.sum b/src/checkout/go.sum index 84a08b3ace..7f8730a1da 100644 --- a/src/checkout/go.sum +++ b/src/checkout/go.sum @@ -261,12 +261,12 @@ google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1: google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= -google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= -google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= +google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= -google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU= +google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/src/product-catalog/genproto/oteldemo/demo.pb.go b/src/product-catalog/genproto/oteldemo/demo.pb.go index ce111c2c17..2079a889aa 100644 --- a/src/product-catalog/genproto/oteldemo/demo.pb.go +++ b/src/product-catalog/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.2 +// protoc-gen-go v1.36.3 // protoc v4.24.4 // source: demo.proto diff --git a/src/product-catalog/go.mod b/src/product-catalog/go.mod index 745ca6d017..58e964556d 100644 --- a/src/product-catalog/go.mod +++ b/src/product-catalog/go.mod @@ -17,9 +17,9 @@ require ( go.opentelemetry.io/otel/sdk v1.33.0 go.opentelemetry.io/otel/sdk/metric v1.33.0 go.opentelemetry.io/otel/trace v1.33.0 - google.golang.org/grpc v1.69.2 + google.golang.org/grpc v1.69.4 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.36.2 + google.golang.org/protobuf v1.36.3 ) require ( diff --git a/src/product-catalog/go.sum b/src/product-catalog/go.sum index e0e9554fbd..788b810f36 100644 --- a/src/product-catalog/go.sum +++ b/src/product-catalog/go.sum @@ -189,12 +189,12 @@ google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1: google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= -google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= -google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= +google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= -google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU= +google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From a7bbd6c30fdad48d790aaf9fb38483a7b96e75c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcell=20M=C3=BCnnich?= <71495475+maindotmarcell@users.noreply.github.com> Date: Thu, 16 Jan 2025 17:05:15 +0100 Subject: [PATCH 072/178] flagd-ui refactor: fixed eslint ignore comment with useCallback (#1923) * fixed eslint ignore comment with useCallback * added change to changelog --- CHANGELOG.md | 2 ++ .../src/components/advanced/AdvancedView.tsx | 36 +++++++++---------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 984415f6fd..46443701a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -72,6 +72,8 @@ the release. ([#1897](https://github.com/open-telemetry/opentelemetry-demo/pull/1897)) * [frontend-proxy] rename frontendproxy to frontend-proxy ([#1910](https://github.com/open-telemetry/opentelemetry-demo/pull/1910)) +* [flagd-ui] fixed eslint ignore comment with useCallback + ([#1923](https://github.com/open-telemetry/opentelemetry-demo/pull/1923)) ## 1.12.0 diff --git a/src/flagd-ui/src/components/advanced/AdvancedView.tsx b/src/flagd-ui/src/components/advanced/AdvancedView.tsx index 9ed1ecdf18..f0ee9dd864 100644 --- a/src/flagd-ui/src/components/advanced/AdvancedView.tsx +++ b/src/flagd-ui/src/components/advanced/AdvancedView.tsx @@ -1,7 +1,7 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 "use client"; -import { useEffect, useRef, useState } from "react"; +import { useEffect, useRef, useState, useCallback } from "react"; import FileEditor from "./FileEditor"; import Ajv, { AnySchema } from "ajv"; import { useLoading } from "../Layout"; @@ -17,6 +17,22 @@ export default function AdvancedView() { const textAreaRef = useRef(null); const { setIsLoading } = useLoading(); + const requestSchemas = useCallback(async (url: string): Promise => { + try { + setIsLoading(true); + const response = await fetch(url); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + const data = await response.json(); + setIsLoading(false); + return data; + } catch (error: any) { + console.error("There was an error:", error.message); + } + return null; + }, [setIsLoading]); + useEffect(() => { const readFile = async (file_name: string) => { try { @@ -56,24 +72,8 @@ export default function AdvancedView() { return null; } loadSchema(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + }, [ajv, requestSchemas]); - async function requestSchemas(url: string): Promise { - try { - setIsLoading(true); - const response = await fetch(url); - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`); - } - const data = await response.json(); - setIsLoading(false); - return data; - } catch (error: any) { - console.error("There was an error:", error.message); - } - return null; - } function parseJSON(): string | null { try { From aa93594e8ba53e6a74b22d1549f1dd70092310f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2025 13:40:30 +0100 Subject: [PATCH 073/178] build(deps): bump the nuget-production-dependencies group across 3 directories with 8 updates (#1921) Bumps the nuget-production-dependencies group with 3 updates in the /src/accounting directory: [Google.Protobuf](https://github.com/protocolbuffers/protobuf), [Grpc.Tools](https://github.com/grpc/grpc) and [Microsoft.Extensions.Logging](https://github.com/dotnet/runtime). Bumps the nuget-production-dependencies group with 3 updates in the /src/cart directory: [Microsoft.AspNetCore.TestHost](https://github.com/dotnet/aspnetcore), [xunit](https://github.com/xunit/xunit) and [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit). Bumps the nuget-production-dependencies group with 5 updates in the /src/cart/tests directory: | Package | From | To | | --- | --- | --- | | [OpenTelemetry.Exporter.OpenTelemetryProtocol](https://github.com/open-telemetry/opentelemetry-dotnet) | `1.10.0` | `1.11.0` | | [OpenTelemetry.Extensions.Hosting](https://github.com/open-telemetry/opentelemetry-dotnet) | `1.10.0` | `1.11.0` | | [Microsoft.AspNetCore.TestHost](https://github.com/dotnet/aspnetcore) | `8.0.11` | `8.0.12` | | [xunit](https://github.com/xunit/xunit) | `2.9.2` | `2.9.3` | | [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) | `3.0.0` | `3.0.1` | Updates `Google.Protobuf` from 3.29.2 to 3.29.3 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.29.2...v3.29.3) Updates `Grpc.Tools` from 2.68.1 to 2.69.0 - [Release notes](https://github.com/grpc/grpc/releases) - [Changelog](https://github.com/grpc/grpc/blob/master/doc/grpc_release_schedule.md) - [Commits](https://github.com/grpc/grpc/commits) Updates `Microsoft.Extensions.Logging` from 9.0.0 to 9.0.1 - [Release notes](https://github.com/dotnet/runtime/releases) - [Commits](https://github.com/dotnet/runtime/compare/v9.0.0...v9.0.1) Updates `Microsoft.AspNetCore.TestHost` from 8.0.11 to 8.0.12 - [Release notes](https://github.com/dotnet/aspnetcore/releases) - [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md) - [Commits](https://github.com/dotnet/aspnetcore/compare/v8.0.11...v8.0.12) Updates `xunit` from 2.9.2 to 2.9.3 - [Commits](https://github.com/xunit/xunit/compare/v2-2.9.2...v2-2.9.3) Updates `xunit.runner.visualstudio` from 3.0.0 to 3.0.1 - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/compare/3.0.0...3.0.1) Updates `OpenTelemetry.Exporter.OpenTelemetryProtocol` from 1.10.0 to 1.11.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet/compare/core-1.10.0...core-1.11.0) Updates `OpenTelemetry.Extensions.Hosting` from 1.10.0 to 1.11.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet/compare/core-1.10.0...core-1.11.0) Updates `Microsoft.AspNetCore.TestHost` from 8.0.11 to 8.0.12 - [Release notes](https://github.com/dotnet/aspnetcore/releases) - [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md) - [Commits](https://github.com/dotnet/aspnetcore/compare/v8.0.11...v8.0.12) Updates `xunit` from 2.9.2 to 2.9.3 - [Commits](https://github.com/xunit/xunit/compare/v2-2.9.2...v2-2.9.3) Updates `xunit.runner.visualstudio` from 3.0.0 to 3.0.1 - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/compare/3.0.0...3.0.1) --- updated-dependencies: - dependency-name: Google.Protobuf dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: Grpc.Tools dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: Microsoft.Extensions.Logging dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: Microsoft.AspNetCore.TestHost dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: xunit dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: OpenTelemetry.Exporter.OpenTelemetryProtocol dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: OpenTelemetry.Extensions.Hosting dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: Microsoft.AspNetCore.TestHost dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: xunit dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Roger Coll --- src/accounting/Accounting.csproj | 6 +++--- src/cart/src/cart.csproj | 4 ++-- src/cart/tests/cart.tests.csproj | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/accounting/Accounting.csproj b/src/accounting/Accounting.csproj index a5287dad37..91356fa873 100644 --- a/src/accounting/Accounting.csproj +++ b/src/accounting/Accounting.csproj @@ -10,12 +10,12 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/cart/src/cart.csproj b/src/cart/src/cart.csproj index ac86fbc9f2..7b761e71c8 100644 --- a/src/cart/src/cart.csproj +++ b/src/cart/src/cart.csproj @@ -17,8 +17,8 @@ - - + + diff --git a/src/cart/tests/cart.tests.csproj b/src/cart/tests/cart.tests.csproj index 19eda08d34..d384b8d408 100644 --- a/src/cart/tests/cart.tests.csproj +++ b/src/cart/tests/cart.tests.csproj @@ -6,10 +6,10 @@ - + - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive From 513586b996ff94e09767cac0c1610f14864bb061 Mon Sep 17 00:00:00 2001 From: Mikko Viitanen <74129181+mviitane@users.noreply.github.com> Date: Wed, 22 Jan 2025 10:58:31 +0200 Subject: [PATCH 074/178] Update memory limits (#1931) * Update memory limits * add more mem for opensearch * add changelog --- CHANGELOG.md | 2 ++ docker-compose.minimal.yml | 6 +++--- docker-compose.yml | 8 ++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46443701a0..b9f65ad21b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -74,6 +74,8 @@ the release. ([#1910](https://github.com/open-telemetry/opentelemetry-demo/pull/1910)) * [flagd-ui] fixed eslint ignore comment with useCallback ([#1923](https://github.com/open-telemetry/opentelemetry-demo/pull/1923)) +* [chore] Add memory for frontend-proxy, kafka, grafana, opensearch + ([#1931](https://github.com/open-telemetry/opentelemetry-demo/pull/1931)) ## 1.12.0 diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 6d85afd3d2..c05c266f6c 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -251,7 +251,7 @@ services: deploy: resources: limits: - memory: 50M + memory: 65M restart: unless-stopped ports: - "${ENVOY_PORT}:${ENVOY_PORT}" @@ -571,7 +571,7 @@ services: deploy: resources: limits: - memory: 100M + memory: 120M restart: unless-stopped environment: - "GF_INSTALL_PLUGINS=grafana-opensearch-datasource" @@ -646,7 +646,7 @@ services: deploy: resources: limits: - memory: 1G + memory: 1.1G restart: unless-stopped environment: - cluster.name=demo-cluster diff --git a/docker-compose.yml b/docker-compose.yml index 436a70d45b..8e965910a6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -325,7 +325,7 @@ services: deploy: resources: limits: - memory: 50M + memory: 65M restart: unless-stopped ports: - "${ENVOY_PORT}:${ENVOY_PORT}" @@ -651,7 +651,7 @@ services: deploy: resources: limits: - memory: 600M + memory: 620M restart: unless-stopped environment: - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 @@ -717,7 +717,7 @@ services: deploy: resources: limits: - memory: 100M + memory: 120M restart: unless-stopped environment: - "GF_INSTALL_PLUGINS=grafana-opensearch-datasource" @@ -792,7 +792,7 @@ services: deploy: resources: limits: - memory: 1G + memory: 1.1G restart: unless-stopped environment: - cluster.name=demo-cluster From afbc808bff8b17da965722b0cbda38853815e266 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 11:15:52 +0200 Subject: [PATCH 075/178] build(deps): bump the go-production-dependencies group across 2 directories with 9 updates (#1929) Bumps the go-production-dependencies group with 5 updates in the /src/checkout directory: | Package | From | To | | --- | --- | --- | | [go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.58.0` | `0.59.0` | | [go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.58.0` | `0.59.0` | | [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.58.0` | `0.59.0` | | [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go) | `1.33.0` | `1.34.0` | | [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go) | `1.33.0` | `1.34.0` | Bumps the go-production-dependencies group with 4 updates in the /src/product-catalog directory: [go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc](https://github.com/open-telemetry/opentelemetry-go-contrib), [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib), [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go) and [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go). Updates `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` from 0.58.0 to 0.59.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.58.0...zpages/v0.59.0) Updates `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` from 0.58.0 to 0.59.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.58.0...zpages/v0.59.0) Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.58.0 to 0.59.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.58.0...zpages/v0.59.0) Updates `go.opentelemetry.io/otel` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) Updates `go.opentelemetry.io/otel/sdk` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) Updates `go.opentelemetry.io/otel/sdk/metric` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) Updates `go.opentelemetry.io/otel/trace` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) Updates `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` from 0.58.0 to 0.59.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.58.0...zpages/v0.59.0) Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.58.0 to 0.59.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.58.0...zpages/v0.59.0) Updates `go.opentelemetry.io/otel` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) Updates `go.opentelemetry.io/otel/sdk` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) Updates `go.opentelemetry.io/otel/sdk/metric` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) Updates `go.opentelemetry.io/otel/trace` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/runtime dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk/metric dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/trace dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/runtime dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk/metric dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/trace dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mikko Viitanen <74129181+mviitane@users.noreply.github.com> --- src/checkout/go.mod | 30 +++++++++--------- src/checkout/go.sum | 60 +++++++++++++++++------------------ src/product-catalog/go.mod | 32 +++++++++---------- src/product-catalog/go.sum | 64 +++++++++++++++++++------------------- 4 files changed, 93 insertions(+), 93 deletions(-) diff --git a/src/checkout/go.mod b/src/checkout/go.mod index d94a9516b3..87ff40fb0e 100644 --- a/src/checkout/go.mod +++ b/src/checkout/go.mod @@ -11,15 +11,15 @@ require ( github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 - go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0 - go.opentelemetry.io/otel v1.33.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 - go.opentelemetry.io/otel/sdk v1.33.0 - go.opentelemetry.io/otel/sdk/metric v1.33.0 - go.opentelemetry.io/otel/trace v1.33.0 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 + go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0 + go.opentelemetry.io/otel v1.34.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 + go.opentelemetry.io/otel/sdk v1.34.0 + go.opentelemetry.io/otel/sdk/metric v1.34.0 + go.opentelemetry.io/otel/trace v1.34.0 google.golang.org/grpc v1.69.4 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.36.3 @@ -47,7 +47,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect @@ -73,9 +73,9 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect - go.opentelemetry.io/otel/metric v1.33.0 // indirect - go.opentelemetry.io/proto/otlp v1.4.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect + go.opentelemetry.io/otel/metric v1.34.0 // indirect + go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/crypto v0.32.0 // indirect @@ -84,8 +84,8 @@ require ( golang.org/x/net v0.34.0 // indirect golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/src/checkout/go.sum b/src/checkout/go.sum index 7f8730a1da..281350c701 100644 --- a/src/checkout/go.sum +++ b/src/checkout/go.sum @@ -63,8 +63,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 h1:VNqngBF40hVlDloBruUehVYC3ArSgIyScOAyMRqBxRg= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1/go.mod h1:RBRO7fro65R6tjKzYgLAFo0t1QEXY1Dp+i/bvpRiqiQ= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -163,30 +163,30 @@ github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0 h1:GrcF8ABgnBHQFgp4zu5/jTSqLkoJ9uiDz2e7eKkjq+w= -go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0/go.mod h1:+kxR5prZLoFAJVXJWZKWO2e4PY2dYyXIRNklBuOyzpM= -go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= -go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 h1:7F29RDmnlqk6B5d+sUqemt8TBfDqxryYW5gX6L74RFA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0/go.mod h1:ZiGDq7xwDMKmWDrN1XsXAj0iC7hns+2DhxBFSncNHSE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA= -go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= -go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= -go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM= -go.opentelemetry.io/otel/sdk v1.33.0/go.mod h1:A1Q5oi7/9XaMlIWzPSxLRWOI8nG3FnzHJNbiENQuihM= -go.opentelemetry.io/otel/sdk/metric v1.33.0 h1:Gs5VK9/WUJhNXZgn8MR6ITatvAmKeIuCtNbsP3JkNqU= -go.opentelemetry.io/otel/sdk/metric v1.33.0/go.mod h1:dL5ykHZmm1B1nVRk9dDjChwDmt81MjVp3gLkQRwKf/Q= -go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= -go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= -go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg= -go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 h1:rgMkmiGfix9vFJDcDi1PK8WEQP4FLQwLDfhp5ZLpFeE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0/go.mod h1:ijPqXp5P6IRRByFVVg9DY8P5HkxkHE5ARIa+86aXPf4= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 h1:CV7UdSGJt/Ao6Gp4CXckLxVRRsRgDHoI8XjbL3PDl8s= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0/go.mod h1:FRmFuRJfag1IZ2dPkHnEoSFVgTVPUd2qf5Vi69hLb8I= +go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0 h1:rfi2MMujBc4yowE0iHckZX4o4jg6SA67EnFVL8ldVvU= +go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0/go.mod h1:IO/gfPEcQYpOpPxn1OXFp1DvRY0viP8ONMedXLjjHIU= +go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= +go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0 h1:ajl4QczuJVA2TU9W9AGw++86Xga/RKt//16z/yxPgdk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0/go.mod h1:Vn3/rlOJ3ntf/Q3zAI0V5lDnTbHGaUsNUeF6nZmm7pA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= +go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= +go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= +go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= +go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= +go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= +go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= +go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= +go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= +go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= @@ -257,10 +257,10 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= +google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f h1:gap6+3Gk41EItBuyi4XX/bp4oqJ3UwuIMl25yGinuAA= +google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:Ic02D47M+zbarjYYUlK57y316f2MoN0gjAwI3f2S95o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50= google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= diff --git a/src/product-catalog/go.mod b/src/product-catalog/go.mod index 58e964556d..3f04e915bf 100644 --- a/src/product-catalog/go.mod +++ b/src/product-catalog/go.mod @@ -9,14 +9,14 @@ require ( github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 - go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0 - go.opentelemetry.io/otel v1.33.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 - go.opentelemetry.io/otel/sdk v1.33.0 - go.opentelemetry.io/otel/sdk/metric v1.33.0 - go.opentelemetry.io/otel/trace v1.33.0 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 + go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0 + go.opentelemetry.io/otel v1.34.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 + go.opentelemetry.io/otel/sdk v1.34.0 + go.opentelemetry.io/otel/sdk/metric v1.34.0 + go.opentelemetry.io/otel/trace v1.34.0 google.golang.org/grpc v1.69.4 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.36.3 @@ -39,7 +39,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect @@ -54,18 +54,18 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect - go.opentelemetry.io/otel/metric v1.33.0 // indirect - go.opentelemetry.io/proto/otlp v1.4.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect + go.opentelemetry.io/otel/metric v1.34.0 // indirect + go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.32.0 // indirect - golang.org/x/sys v0.28.0 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/src/product-catalog/go.sum b/src/product-catalog/go.sum index 788b810f36..2324ed6b0a 100644 --- a/src/product-catalog/go.sum +++ b/src/product-catalog/go.sum @@ -47,8 +47,8 @@ github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2 github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 h1:VNqngBF40hVlDloBruUehVYC3ArSgIyScOAyMRqBxRg= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1/go.mod h1:RBRO7fro65R6tjKzYgLAFo0t1QEXY1Dp+i/bvpRiqiQ= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -114,28 +114,28 @@ github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= -go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0 h1:GrcF8ABgnBHQFgp4zu5/jTSqLkoJ9uiDz2e7eKkjq+w= -go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0/go.mod h1:+kxR5prZLoFAJVXJWZKWO2e4PY2dYyXIRNklBuOyzpM= -go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= -go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 h1:7F29RDmnlqk6B5d+sUqemt8TBfDqxryYW5gX6L74RFA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0/go.mod h1:ZiGDq7xwDMKmWDrN1XsXAj0iC7hns+2DhxBFSncNHSE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA= -go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= -go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= -go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM= -go.opentelemetry.io/otel/sdk v1.33.0/go.mod h1:A1Q5oi7/9XaMlIWzPSxLRWOI8nG3FnzHJNbiENQuihM= -go.opentelemetry.io/otel/sdk/metric v1.33.0 h1:Gs5VK9/WUJhNXZgn8MR6ITatvAmKeIuCtNbsP3JkNqU= -go.opentelemetry.io/otel/sdk/metric v1.33.0/go.mod h1:dL5ykHZmm1B1nVRk9dDjChwDmt81MjVp3gLkQRwKf/Q= -go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= -go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= -go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg= -go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 h1:rgMkmiGfix9vFJDcDi1PK8WEQP4FLQwLDfhp5ZLpFeE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0/go.mod h1:ijPqXp5P6IRRByFVVg9DY8P5HkxkHE5ARIa+86aXPf4= +go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0 h1:rfi2MMujBc4yowE0iHckZX4o4jg6SA67EnFVL8ldVvU= +go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0/go.mod h1:IO/gfPEcQYpOpPxn1OXFp1DvRY0viP8ONMedXLjjHIU= +go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= +go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0 h1:ajl4QczuJVA2TU9W9AGw++86Xga/RKt//16z/yxPgdk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0/go.mod h1:Vn3/rlOJ3ntf/Q3zAI0V5lDnTbHGaUsNUeF6nZmm7pA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= +go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= +go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= +go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= +go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= +go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= +go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= +go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= +go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= +go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= @@ -157,8 +157,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= -golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -169,8 +169,8 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= @@ -185,10 +185,10 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= +google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f h1:gap6+3Gk41EItBuyi4XX/bp4oqJ3UwuIMl25yGinuAA= +google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:Ic02D47M+zbarjYYUlK57y316f2MoN0gjAwI3f2S95o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50= google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= From 98e85e12acbdcdbeb47e4e32b8adb0e48bd1c531 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 14:49:45 +0200 Subject: [PATCH 076/178] build(deps): bump the npm-development-dependencies group across 3 directories with 13 updates (#1932) Bumps the npm-development-dependencies group with 9 updates in the /src/flagd-ui directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.10.5` | `22.10.7` | | [eslint](https://github.com/eslint/eslint) | `9.17.0` | `9.18.0` | | [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.1.4` | `15.1.5` | | [postcss](https://github.com/postcss/postcss) | `8.4.49` | `8.5.1` | | [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) | `0.6.9` | `0.6.10` | | [typescript](https://github.com/microsoft/TypeScript) | `5.7.2` | `5.7.3` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.19.1` | `8.21.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.19.1` | `8.21.0` | | [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | `7.37.3` | `7.37.4` | Bumps the npm-development-dependencies group with 8 updates in the /src/frontend directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.10.5` | `22.10.7` | | [eslint](https://github.com/eslint/eslint) | `9.17.0` | `9.18.0` | | [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.1.4` | `15.1.5` | | [typescript](https://github.com/microsoft/TypeScript) | `5.7.2` | `5.7.3` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.19.1` | `8.21.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.19.1` | `8.21.0` | | [cypress](https://github.com/cypress-io/cypress) | `13.17.0` | `14.0.0` | | [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | `7.37.3` | `7.37.4` | Bumps the npm-development-dependencies group with 9 updates in the /src/react-native-app directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `18.19.70` | `18.19.71` | | [eslint](https://github.com/eslint/eslint) | `9.17.0` | `9.18.0` | | [typescript](https://github.com/microsoft/TypeScript) | `5.7.2` | `5.7.3` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.19.1` | `8.21.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.19.1` | `8.21.0` | | [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | `7.37.3` | `7.37.4` | | [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) | `9.1.0` | `10.0.1` | | [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) | `5.2.1` | `5.2.3` | | [jest-expo](https://github.com/expo/expo/tree/HEAD/packages/jest-expo) | `52.0.2` | `52.0.3` | Updates `@types/node` from 22.10.5 to 22.10.7 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 9.17.0 to 9.18.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.17.0...v9.18.0) Updates `eslint-config-next` from 15.1.4 to 15.1.5 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.1.5/packages/eslint-config-next) Updates `postcss` from 8.4.49 to 8.5.1 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.49...8.5.1) Updates `prettier-plugin-tailwindcss` from 0.6.9 to 0.6.10 - [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.9...v0.6.10) Updates `typescript` from 5.7.2 to 5.7.3 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.2...v5.7.3) Updates `@typescript-eslint/eslint-plugin` from 8.19.1 to 8.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.21.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.19.1 to 8.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.21.0/packages/parser) Updates `eslint-plugin-react` from 7.37.3 to 7.37.4 - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.3...v7.37.4) Updates `@types/node` from 22.10.5 to 22.10.7 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 9.17.0 to 9.18.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.17.0...v9.18.0) Updates `eslint-config-next` from 15.1.4 to 15.1.5 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.1.5/packages/eslint-config-next) Updates `typescript` from 5.7.2 to 5.7.3 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.2...v5.7.3) Updates `@typescript-eslint/eslint-plugin` from 8.19.1 to 8.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.21.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.19.1 to 8.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.21.0/packages/parser) Updates `cypress` from 13.17.0 to 14.0.0 - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v13.17.0...v14.0.0) Updates `eslint-plugin-react` from 7.37.3 to 7.37.4 - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.3...v7.37.4) Updates `@types/node` from 18.19.70 to 18.19.71 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 9.17.0 to 9.18.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.17.0...v9.18.0) Updates `typescript` from 5.7.2 to 5.7.3 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.2...v5.7.3) Updates `@typescript-eslint/eslint-plugin` from 8.19.1 to 8.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.21.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.19.1 to 8.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.21.0/packages/parser) Updates `eslint-plugin-react` from 7.37.3 to 7.37.4 - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.3...v7.37.4) Updates `eslint-config-prettier` from 9.1.0 to 10.0.1 - [Release notes](https://github.com/prettier/eslint-config-prettier/releases) - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v9.1.0...v10.0.1) Updates `eslint-plugin-prettier` from 5.2.1 to 5.2.3 - [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases) - [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.2.1...v5.2.3) Updates `jest-expo` from 52.0.2 to 52.0.3 - [Changelog](https://github.com/expo/expo/blob/main/packages/jest-expo/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/jest-expo) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: postcss dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: prettier-plugin-tailwindcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-plugin-react dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: cypress dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-plugin-react dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: eslint-plugin-prettier dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: jest-expo dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mikko Viitanen <74129181+mviitane@users.noreply.github.com> --- src/flagd-ui/package-lock.json | 205 ++++++++++++--------- src/flagd-ui/package.json | 6 +- src/frontend/package-lock.json | 198 +++++++++++--------- src/frontend/package.json | 16 +- src/react-native-app/package-lock.json | 239 ++++++++++++++----------- src/react-native-app/package.json | 10 +- 6 files changed, 378 insertions(+), 296 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 573068b85b..538352a01a 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -21,10 +21,10 @@ "@types/react-dom": "^18.3.0", "autoprefixer": "^10.4.20", "eslint": "^9", - "eslint-config-next": "15.1.4", - "postcss": "^8.4.49", + "eslint-config-next": "15.1.5", + "postcss": "^8.5.1", "prettier": "^3.4.2", - "prettier-plugin-tailwindcss": "^0.6.9", + "prettier-plugin-tailwindcss": "^0.6.10", "tailwindcss": "^3.4.17", "typescript": "^5" } @@ -80,10 +80,11 @@ } }, "node_modules/@eslint/core": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", - "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" }, @@ -137,10 +138,11 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", - "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -155,11 +157,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", - "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, + "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -325,10 +329,11 @@ "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.4.tgz", - "integrity": "sha512-HwlEXwCK3sr6zmVGEvWBjW9tBFs1Oe6hTmTLoFQtpm4As5HCdu8jfSE0XJOp7uhfEGLniIx8yrGxEWwNnY0fmQ==", + "version": "15.1.5", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.5.tgz", + "integrity": "sha512-3cCrXBybsqe94UxD6DBQCYCCiP9YohBMgZ5IzzPYHmPzj8oqNlhBii5b6o1HDDaRHdz2pVnSsAROCtrczy8O0g==", "dev": true, + "license": "MIT", "dependencies": { "fast-glob": "3.3.1" } @@ -338,6 +343,7 @@ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -354,6 +360,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -726,7 +733,8 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "2.2.0", @@ -740,10 +748,11 @@ } }, "node_modules/@types/node": { - "version": "22.10.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", - "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", + "version": "22.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", + "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~6.20.0" } @@ -783,16 +792,17 @@ "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", - "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz", + "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/type-utils": "8.19.1", - "@typescript-eslint/utils": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/type-utils": "8.21.0", + "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -812,15 +822,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz", - "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz", + "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/typescript-estree": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "debug": "^4.3.4" }, "engines": { @@ -836,13 +847,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", - "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz", + "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1" + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -853,13 +865,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", - "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz", + "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.19.1", - "@typescript-eslint/utils": "8.19.1", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/utils": "8.21.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.0" }, @@ -876,10 +889,11 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz", - "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz", + "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -889,13 +903,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", - "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz", + "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -919,6 +934,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -928,6 +944,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -939,15 +956,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz", - "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz", + "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/typescript-estree": "8.19.1" + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -962,12 +980,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", - "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz", + "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/types": "8.21.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -983,6 +1002,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -2009,18 +2029,19 @@ } }, "node_modules/eslint": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", - "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", + "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.17.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", @@ -2068,12 +2089,13 @@ } }, "node_modules/eslint-config-next": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.4.tgz", - "integrity": "sha512-u9+7lFmfhKNgGjhQ9tBeyCFsPJyq0SvGioMJBngPC7HXUpR0U+ckEwQR48s7TrRNHra1REm6evGL2ie38agALg==", + "version": "15.1.5", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.5.tgz", + "integrity": "sha512-Awm7iUJY8toOR+fU8yTxZnA7/LyOGUGOd6cENCuDfJ3gucHOSmLdOSGJ4u+nlrs8p5qXemua42bZmq+uOzxl6Q==", "dev": true, + "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.1.4", + "@next/eslint-plugin-next": "15.1.5", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -2279,10 +2301,11 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.37.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz", - "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==", + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -3691,15 +3714,16 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -4098,9 +4122,9 @@ } }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", "dev": true, "funding": [ { @@ -4116,8 +4140,9 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -4265,10 +4290,11 @@ } }, "node_modules/prettier-plugin-tailwindcss": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.9.tgz", - "integrity": "sha512-r0i3uhaZAXYP0At5xGfJH876W3HHGHDp+LCRUJrs57PBeQ6mYHMwr25KH8NPX44F2yGTvdnH7OqCshlQx183Eg==", + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.10.tgz", + "integrity": "sha512-ndj2WLDaMzACnr1gAYZiZZLs5ZdOeBYgOsbBmHj3nvW/6q8h8PymsXiEnKvj/9qgCCAoHyvLOisoQdIcsDvIgw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.21.3" }, @@ -4277,7 +4303,7 @@ "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", "@trivago/prettier-plugin-sort-imports": "*", - "@zackad/prettier-plugin-twig-melody": "*", + "@zackad/prettier-plugin-twig": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", @@ -4304,7 +4330,7 @@ "@trivago/prettier-plugin-sort-imports": { "optional": true }, - "@zackad/prettier-plugin-twig-melody": { + "@zackad/prettier-plugin-twig": { "optional": true }, "prettier-plugin-astro": { @@ -5307,10 +5333,11 @@ } }, "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index a8e0ca1117..e0d84917b3 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -22,10 +22,10 @@ "@types/react-dom": "^18.3.0", "autoprefixer": "^10.4.20", "eslint": "^9", - "eslint-config-next": "15.1.4", - "postcss": "^8.4.49", + "eslint-config-next": "15.1.5", + "postcss": "^8.5.1", "prettier": "^3.4.2", - "prettier-plugin-tailwindcss": "^0.6.9", + "prettier-plugin-tailwindcss": "^0.6.10", "tailwindcss": "^3.4.17", "typescript": "^5" } diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index c3fffbaed4..647ec71dde 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -45,20 +45,20 @@ "uuid": "10.0.0" }, "devDependencies": { - "@types/node": "22.10.5", + "@types/node": "22.10.7", "@types/react": "18.3.3", "@types/react-dom": "18.3.0", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.19.1", - "@typescript-eslint/parser": "8.19.1", - "cypress": "13.17.0", - "eslint": "9.17.0", - "eslint-config-next": "15.1.4", - "eslint-plugin-react": "7.37.3", + "@typescript-eslint/eslint-plugin": "8.21.0", + "@typescript-eslint/parser": "8.21.0", + "cypress": "14.0.0", + "eslint": "9.18.0", + "eslint-config-next": "15.1.5", + "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", "openapi-typescript": "7.5.2", - "typescript": "5.7.2" + "typescript": "5.7.3" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -333,10 +333,11 @@ } }, "node_modules/@eslint/core": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", - "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" }, @@ -390,10 +391,11 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", - "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -408,11 +410,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", - "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, + "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -955,10 +959,11 @@ "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.4.tgz", - "integrity": "sha512-HwlEXwCK3sr6zmVGEvWBjW9tBFs1Oe6hTmTLoFQtpm4As5HCdu8jfSE0XJOp7uhfEGLniIx8yrGxEWwNnY0fmQ==", + "version": "15.1.5", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.5.tgz", + "integrity": "sha512-3cCrXBybsqe94UxD6DBQCYCCiP9YohBMgZ5IzzPYHmPzj8oqNlhBii5b6o1HDDaRHdz2pVnSsAROCtrczy8O0g==", "dev": true, + "license": "MIT", "dependencies": { "fast-glob": "3.3.1" } @@ -968,6 +973,7 @@ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -984,6 +990,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2783,7 +2790,8 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", @@ -2808,9 +2816,10 @@ } }, "node_modules/@types/node": { - "version": "22.10.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", - "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", + "version": "22.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", + "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", + "license": "MIT", "dependencies": { "undici-types": "~6.20.0" } @@ -2916,16 +2925,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", - "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz", + "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/type-utils": "8.19.1", - "@typescript-eslint/utils": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/type-utils": "8.21.0", + "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -2945,15 +2955,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz", - "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz", + "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/typescript-estree": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "debug": "^4.3.4" }, "engines": { @@ -2969,13 +2980,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", - "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz", + "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1" + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2986,13 +2998,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", - "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz", + "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.19.1", - "@typescript-eslint/utils": "8.19.1", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/utils": "8.21.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.0" }, @@ -3009,10 +3022,11 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz", - "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz", + "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -3022,13 +3036,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", - "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz", + "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3052,6 +3067,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -3061,6 +3077,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3076,6 +3093,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -3084,15 +3102,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz", - "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz", + "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/typescript-estree": "8.19.1" + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3107,12 +3126,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", - "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz", + "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/types": "8.21.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -3128,6 +3148,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -4050,11 +4071,12 @@ "integrity": "sha512-LO/lzYRw134LMDVnLyAf1dHE5tyO6axEFkR3TXjQIOmMkAM9YL6QsiUwuXzZAmFnuDJcs4hayOgyIYtViXFrLw==" }, "node_modules/cypress": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.17.0.tgz", - "integrity": "sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.0.0.tgz", + "integrity": "sha512-kEGqQr23so5IpKeg/dp6GVi7RlHx1NmW66o2a2Q4wk9gRaAblLZQSiZJuDI8UMC4LlG5OJ7Q6joAiqTrfRNbTw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "dependencies": { "@cypress/request": "^3.0.6", "@cypress/xvfb": "^1.2.4", @@ -4104,7 +4126,7 @@ "cypress": "bin/cypress" }, "engines": { - "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" } }, "node_modules/damerau-levenshtein": { @@ -4555,18 +4577,19 @@ } }, "node_modules/eslint": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", - "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", + "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.17.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", @@ -4614,12 +4637,13 @@ } }, "node_modules/eslint-config-next": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.4.tgz", - "integrity": "sha512-u9+7lFmfhKNgGjhQ9tBeyCFsPJyq0SvGioMJBngPC7HXUpR0U+ckEwQR48s7TrRNHra1REm6evGL2ie38agALg==", + "version": "15.1.5", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.5.tgz", + "integrity": "sha512-Awm7iUJY8toOR+fU8yTxZnA7/LyOGUGOd6cENCuDfJ3gucHOSmLdOSGJ4u+nlrs8p5qXemua42bZmq+uOzxl6Q==", "dev": true, + "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.1.4", + "@next/eslint-plugin-next": "15.1.5", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -4825,10 +4849,11 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.37.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz", - "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==", + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -8529,10 +8554,11 @@ } }, "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/src/frontend/package.json b/src/frontend/package.json index 143f05207c..7992f8349e 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -48,19 +48,19 @@ "uuid": "10.0.0" }, "devDependencies": { - "@types/node": "22.10.5", + "@types/node": "22.10.7", "@types/react": "18.3.3", "@types/react-dom": "18.3.0", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.19.1", - "@typescript-eslint/parser": "8.19.1", - "cypress": "13.17.0", - "eslint": "9.17.0", - "eslint-config-next": "15.1.4", - "eslint-plugin-react": "7.37.3", + "@typescript-eslint/eslint-plugin": "8.21.0", + "@typescript-eslint/parser": "8.21.0", + "cypress": "14.0.0", + "eslint": "9.18.0", + "eslint-config-next": "15.1.5", + "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", "openapi-typescript": "7.5.2", - "typescript": "5.7.2" + "typescript": "5.7.3" } } diff --git a/src/react-native-app/package-lock.json b/src/react-native-app/package-lock.json index 1599dcc4ac..ca44cc7905 100644 --- a/src/react-native-app/package-lock.json +++ b/src/react-native-app/package-lock.json @@ -54,16 +54,16 @@ "@types/jest": "^29.5.12", "@types/react": "~18.2.45", "@types/react-test-renderer": "^19.0.0", - "eslint": "^9.17.0", + "eslint": "^9.18.0", "eslint-config-expo": "~8.0.1", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.2.1", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-prettier": "^5.2.3", "jest": "^29.2.1", - "jest-expo": "~52.0.2", + "jest-expo": "~52.0.3", "prettier": "^3.4.2", "react-test-renderer": "19.0.0", "ts-proto": "1.181.1", - "typescript": "~5.7.2" + "typescript": "~5.7.3" } }, "node_modules/@ampproject/remapping": { @@ -2259,10 +2259,11 @@ } }, "node_modules/@eslint/core": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", - "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" }, @@ -2306,10 +2307,11 @@ } }, "node_modules/@eslint/js": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", - "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -2324,11 +2326,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", - "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, + "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -2921,14 +2925,15 @@ } }, "node_modules/@expo/config": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.4.tgz", - "integrity": "sha512-pkvdPqKTaP6+Qvc8aTmDLQ9Dfwp98P1GO37MFKwsF5XormfN/9/eN8HfIRoM6d3uSIVKCcWW3X2yAEbNmOyfXw==", + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.8.tgz", + "integrity": "sha512-RaKwi8e6PbkMilRexdsxObLMdQwxhY6mlgel+l/eW+IfIw8HEydSU0ERlzYUjlGJxHLHUXe4rC2vw8FEvaowyQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~9.0.0", - "@expo/config-types": "^52.0.0", - "@expo/json-file": "^9.0.0", + "@expo/config-plugins": "~9.0.14", + "@expo/config-types": "^52.0.3", + "@expo/json-file": "^9.0.1", "deepmerge": "^4.3.1", "getenv": "^1.0.0", "glob": "^10.4.2", @@ -2941,13 +2946,14 @@ } }, "node_modules/@expo/config-plugins": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.9.tgz", - "integrity": "sha512-pbgbY3SwCMwkijhfe163J05BrTx4MqzeaV+nVgUMs7vRcjHY1tfM57Pdv6SPtgeDvZ8fvdXFXXzkJva+a7C9Bw==", - "dependencies": { - "@expo/config-types": "^52.0.0", - "@expo/json-file": "~9.0.0", - "@expo/plist": "^0.2.0", + "version": "9.0.14", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.14.tgz", + "integrity": "sha512-Lx1ebV95rTFKKQmbu4wMPLz65rKn7mqSpfANdCx+KwRxuLY2JQls8V4h3lQjG6dW8NWf9qV5QaEFAgNB6VMyOQ==", + "license": "MIT", + "dependencies": { + "@expo/config-types": "^52.0.3", + "@expo/json-file": "~9.0.1", + "@expo/plist": "^0.2.1", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", @@ -2965,6 +2971,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -2973,9 +2980,10 @@ } }, "node_modules/@expo/config-types": { - "version": "52.0.1", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.1.tgz", - "integrity": "sha512-vD8ZetyKV7U29lR6+NJohYeoLYTH+eNYXJeNiSOrWCz0witJYY11meMmEnpEaVbN89EfC6uauSUOa6wihtbyPQ==" + "version": "52.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.3.tgz", + "integrity": "sha512-muxvuARmbysH5OGaiBRlh1Y6vfdmL56JtpXxB+y2Hfhu0ezG1U4FjZYBIacthckZPvnDCcP3xIu1R+eTo7/QFA==", + "license": "MIT" }, "node_modules/@expo/config/node_modules/@babel/code-frame": { "version": "7.10.4", @@ -3134,9 +3142,10 @@ } }, "node_modules/@expo/json-file": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.0.tgz", - "integrity": "sha512-M+55xFVrFzDcgMDf+52lPDLjKB5xwRfStWlv/b/Vu2OLgxGZLWpxoPYjlRoHqxjPbCQIi2ZCbobK+0KuNhsELg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.1.tgz", + "integrity": "sha512-ZVPhbbEBEwafPCJ0+kI25O2Iivt3XKHEKAADCml1q2cmOIbQnKgLyn8DpOJXqWEyRQr/VWS+hflBh8DU2YFSqg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", "json5": "^2.2.3", @@ -3290,9 +3299,10 @@ } }, "node_modules/@expo/plist": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.0.tgz", - "integrity": "sha512-F/IZJQaf8OIVnVA6XWUeMPC3OH6MV00Wxf0WC0JhTQht2QgjyHUa3U5Gs3vRtDq8tXNsZneOQRDVwpaOnd4zTQ==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.1.tgz", + "integrity": "sha512-9TaXGuNxa0LQwHQn4rYiU6YaERv6dPnQgsdKWq2rKKTr6LWOtGNQCi/yOk/HBLeZSxBm59APT5/6x60uRvr0Mg==", + "license": "MIT", "dependencies": { "@xmldom/xmldom": "~0.7.7", "base64-js": "^1.2.3", @@ -6890,9 +6900,10 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.19.70", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.70.tgz", - "integrity": "sha512-RE+K0+KZoEpDUbGGctnGdkrLFwi1eYKTlIHNl2Um98mUkGsm1u2Ff6Ltd0e8DktTtC98uy7rSj+hO8t/QuLoVQ==", + "version": "18.19.71", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.71.tgz", + "integrity": "sha512-evXpcgtZm8FY4jqBSN8+DmOTcVkkvTmAayeo4Wf3m1xAruyVGzGuDh/Fb/WWX2yLItUiho42ozyJjB0dw//Tkw==", + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } @@ -6970,16 +6981,17 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", - "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz", + "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/type-utils": "8.19.1", - "@typescript-eslint/utils": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/type-utils": "8.21.0", + "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -6999,15 +7011,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz", - "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz", + "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/typescript-estree": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "debug": "^4.3.4" }, "engines": { @@ -7023,13 +7036,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", - "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz", + "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1" + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7040,13 +7054,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", - "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz", + "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.19.1", - "@typescript-eslint/utils": "8.19.1", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/utils": "8.21.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.0" }, @@ -7063,10 +7078,11 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz", - "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz", + "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -7076,13 +7092,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", - "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz", + "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -7106,6 +7123,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -7115,6 +7133,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -7130,6 +7149,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -7138,15 +7158,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz", - "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz", + "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/typescript-estree": "8.19.1" + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7161,12 +7182,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", - "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz", + "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/types": "8.21.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -7182,6 +7204,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -9855,18 +9878,19 @@ } }, "node_modules/eslint": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", - "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", + "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.17.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", @@ -9960,12 +9984,13 @@ } }, "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz", + "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", "dev": true, + "license": "MIT", "bin": { - "eslint-config-prettier": "bin/cli.js" + "eslint-config-prettier": "build/bin/cli.js" }, "peerDependencies": { "eslint": ">=7.0.0" @@ -10107,10 +10132,11 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", + "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", "dev": true, + "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", "synckit": "^0.9.1" @@ -10137,10 +10163,11 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.37.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz", - "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==", + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -13338,13 +13365,14 @@ } }, "node_modules/jest-expo": { - "version": "52.0.2", - "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-52.0.2.tgz", - "integrity": "sha512-6xV/+IRw93Org1UlgIqu89Ex3vuPRozD5VqTS95AonHMgjb0XTHHhMmn+TdR1d3i3ziy7JFbWAMoBLwminIalw==", + "version": "52.0.3", + "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-52.0.3.tgz", + "integrity": "sha512-z2gptekrQ0FIichvRhrES31X9twtCCTzu00sWnPyFaQuWQdoyZiCj2WFPqVrpgIgNYLFIEGhc0VP9rUT9johJw==", "dev": true, + "license": "MIT", "dependencies": { - "@expo/config": "~10.0.4", - "@expo/json-file": "^9.0.0", + "@expo/config": "~10.0.8", + "@expo/json-file": "^9.0.1", "@jest/create-cache-key-function": "^29.2.1", "@jest/globals": "^29.2.1", "babel-jest": "^29.2.1", @@ -19299,10 +19327,11 @@ } }, "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "devOptional": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/src/react-native-app/package.json b/src/react-native-app/package.json index f8b68ffd52..8312bc7ced 100644 --- a/src/react-native-app/package.json +++ b/src/react-native-app/package.json @@ -61,16 +61,16 @@ "@types/jest": "^29.5.12", "@types/react": "~18.2.45", "@types/react-test-renderer": "^19.0.0", - "eslint": "^9.17.0", + "eslint": "^9.18.0", "eslint-config-expo": "~8.0.1", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.2.1", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-prettier": "^5.2.3", "jest": "^29.2.1", - "jest-expo": "~52.0.2", + "jest-expo": "~52.0.3", "prettier": "^3.4.2", "react-test-renderer": "19.0.0", "ts-proto": "1.181.1", - "typescript": "~5.7.2" + "typescript": "~5.7.3" }, "private": true } From 1c004b8f03e668f456e101b663dfe0ee3d693736 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:48:55 +0200 Subject: [PATCH 077/178] build(deps): bump the npm-production-dependencies group across 4 directories with 57 updates (#1916) * build(deps): bump the npm-production-dependencies group across 4 directories with 57 updates Bumps the npm-production-dependencies group with 8 updates in the /src/flagd-ui directory: | Package | From | To | | --- | --- | --- | | [next](https://github.com/vercel/next.js) | `14.2.5` | `15.1.4` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `18.3.1` | `19.0.0` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.3.4` | `19.0.7` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `18.3.1` | `19.0.0` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `18.3.0` | `19.0.3` | | [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js) | `0.53.0` | `0.57.1` | | [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelemetry-js) | `1.26.0` | `1.30.1` | | [@opentelemetry/sdk-trace-base](https://github.com/open-telemetry/opentelemetry-js) | `1.26.0` | `1.30.1` | Bumps the npm-production-dependencies group with 33 updates in the /src/frontend directory: | Package | From | To | | --- | --- | --- | | [next](https://github.com/vercel/next.js) | `14.2.5` | `15.1.4` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `18.3.1` | `19.0.0` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.3.3` | `19.0.7` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `18.3.1` | `19.0.0` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `18.3.0` | `19.0.3` | | [@grpc/grpc-js](https://github.com/grpc/grpc-node) | `1.10.11` | `1.12.5` | | @openfeature/flagd-provider | `0.13.1` | `0.13.2` | | [@openfeature/react-sdk](https://github.com/open-feature/js-sdk) | `0.4.1` | `0.4.10` | | [@opentelemetry/auto-instrumentations-node](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.48.0` | `0.55.2` | | [@opentelemetry/auto-instrumentations-web](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.40.0` | `0.45.0` | | [@opentelemetry/context-zone](https://github.com/open-telemetry/opentelemetry-js) | `1.25.1` | `1.30.1` | | [@opentelemetry/core](https://github.com/open-telemetry/opentelemetry-js) | `1.25.1` | `1.30.1` | | [@opentelemetry/exporter-metrics-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js) | `0.52.1` | `0.57.1` | | [@opentelemetry/exporter-trace-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js) | `0.52.1` | `0.57.1` | | [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.52.1` | `0.57.1` | | [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js) | `0.52.1` | `0.57.1` | | [@opentelemetry/resource-detector-alibaba-cloud](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.28.10` | `0.29.7` | | [@opentelemetry/resource-detector-aws](https://github.com/open-telemetry/opentelemetry-js-contrib) | `1.5.2` | `1.10.0` | | [@opentelemetry/resource-detector-container](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.3.11` | `0.5.3` | | [@opentelemetry/resource-detector-gcp](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.29.10` | `0.32.0` | | [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) | `1.25.1` | `1.30.1` | | [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelemetry-js) | `1.25.1` | `1.30.1` | | [@opentelemetry/sdk-node](https://github.com/open-telemetry/opentelemetry-js) | `0.52.1` | `0.57.1` | | [@opentelemetry/sdk-trace-base](https://github.com/open-telemetry/opentelemetry-js) | `1.25.1` | `1.30.1` | | [@opentelemetry/sdk-trace-node](https://github.com/open-telemetry/opentelemetry-js) | `1.25.1` | `1.30.1` | | [@opentelemetry/sdk-trace-web](https://github.com/open-telemetry/opentelemetry-js) | `1.25.1` | `1.30.1` | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `4.36.1` | `5.64.1` | | [cookies-next](https://github.com/andreizanik/cookies-next) | `4.2.1` | `5.1.0` | | [dotenv](https://github.com/motdotla/dotenv) | `16.4.5` | `16.4.7` | | [dotenv-expand](https://github.com/motdotla/dotenv-expand) | `11.0.6` | `12.0.1` | | [sharp](https://github.com/lovell/sharp) | `0.33.4` | `0.33.5` | | [styled-components](https://github.com/styled-components/styled-components) | `6.1.11` | `6.1.14` | | [uuid](https://github.com/uuidjs/uuid) | `10.0.0` | `11.0.5` | Bumps the npm-production-dependencies group with 17 updates in the /src/payment directory: | Package | From | To | | --- | --- | --- | | [@grpc/grpc-js](https://github.com/grpc/grpc-node) | `1.10.11` | `1.12.5` | | @openfeature/flagd-provider | `0.13.1` | `0.13.2` | | [@opentelemetry/auto-instrumentations-node](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.54.0` | `0.55.2` | | [@opentelemetry/core](https://github.com/open-telemetry/opentelemetry-js) | `1.29.0` | `1.30.1` | | [@opentelemetry/exporter-metrics-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js) | `0.56.0` | `0.57.1` | | [@opentelemetry/exporter-trace-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js) | `0.56.0` | `0.57.1` | | [@opentelemetry/resource-detector-alibaba-cloud](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.29.6` | `0.29.7` | | [@opentelemetry/resource-detector-aws](https://github.com/open-telemetry/opentelemetry-js-contrib) | `1.9.0` | `1.10.0` | | [@opentelemetry/resource-detector-container](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.5.2` | `0.5.3` | | [@opentelemetry/resource-detector-gcp](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.31.0` | `0.32.0` | | [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) | `1.29.0` | `1.30.1` | | [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelemetry-js) | `1.29.0` | `1.30.1` | | [@opentelemetry/sdk-node](https://github.com/open-telemetry/opentelemetry-js) | `0.56.0` | `0.57.1` | | [uuid](https://github.com/uuidjs/uuid) | `11.0.3` | `11.0.5` | | [@openfeature/server-sdk](https://github.com/open-feature/js-sdk) | `1.16.2` | `1.17.0` | | [@opentelemetry/instrumentation-runtime-node](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.11.0` | `0.12.1` | | [pino](https://github.com/pinojs/pino) | `9.5.0` | `9.6.0` | Bumps the npm-production-dependencies group with 32 updates in the /src/react-native-app directory: | Package | From | To | | --- | --- | --- | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `18.2.0` | `19.0.0` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.2.79` | `19.0.7` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `18.2.0` | `19.0.0` | | [@opentelemetry/core](https://github.com/open-telemetry/opentelemetry-js) | `1.28.0` | `1.30.1` | | [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.52.1` | `0.57.1` | | [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js) | `0.55.0` | `0.57.1` | | [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) | `1.28.0` | `1.30.1` | | [@opentelemetry/sdk-trace-base](https://github.com/open-telemetry/opentelemetry-js) | `1.28.0` | `1.30.1` | | [@opentelemetry/sdk-trace-web](https://github.com/open-telemetry/opentelemetry-js) | `1.28.0` | `1.30.1` | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `4.36.1` | `5.64.1` | | [dotenv](https://github.com/motdotla/dotenv) | `16.4.5` | `16.4.7` | | [uuid](https://github.com/uuidjs/uuid) | `10.0.0` | `11.0.5` | | [@expo/metro-config](https://github.com/expo/expo/tree/HEAD/packages/@expo/metro-config) | `0.19.4` | `0.19.9` | | [@opentelemetry/instrumentation-fetch](https://github.com/open-telemetry/opentelemetry-js) | `0.55.0` | `0.57.1` | | [@opentelemetry/instrumentation-xml-http-request](https://github.com/open-telemetry/opentelemetry-js) | `0.55.0` | `0.57.1` | | [@react-navigation/native](https://github.com/react-navigation/react-navigation/tree/HEAD/packages/native) | `6.1.18` | `7.0.14` | | [expo](https://github.com/expo/expo/tree/HEAD/packages/expo) | `51.0.39` | `52.0.25` | | [expo-constants](https://github.com/expo/expo/tree/HEAD/packages/expo-constants) | `16.0.2` | `17.0.4` | | [expo-font](https://github.com/expo/expo/tree/HEAD/packages/expo-font) | `12.0.10` | `13.0.3` | | [expo-linking](https://github.com/expo/expo/tree/HEAD/packages/expo-linking) | `6.3.1` | `7.0.4` | | [expo-router](https://github.com/expo/expo/tree/HEAD/packages/expo-router) | `3.5.24` | `4.0.16` | | [expo-splash-screen](https://github.com/expo/expo/tree/HEAD/packages/expo-splash-screen) | `0.27.7` | `0.29.20` | | [expo-status-bar](https://github.com/expo/expo/tree/HEAD/packages/expo-status-bar) | `1.12.1` | `2.0.1` | | [expo-system-ui](https://github.com/expo/expo/tree/HEAD/packages/expo-system-ui) | `3.0.7` | `4.0.7` | | [expo-web-browser](https://github.com/expo/expo/tree/HEAD/packages/expo-web-browser) | `13.0.3` | `14.0.2` | | [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.53.2` | `7.54.2` | | [react-native](https://github.com/facebook/react-native/tree/HEAD/packages/react-native) | `0.74.2` | `0.76.6` | | [react-native-device-info](https://github.com/react-native-device-info/react-native-device-info) | `11.1.0` | `14.0.2` | | [react-native-gesture-handler](https://github.com/software-mansion/react-native-gesture-handler) | `2.16.2` | `2.22.0` | | [react-native-reanimated](https://github.com/software-mansion/react-native-reanimated/tree/HEAD/packages/react-native-reanimated) | `3.10.1` | `3.16.7` | | [react-native-safe-area-context](https://github.com/th3rdwave/react-native-safe-area-context) | `4.10.1` | `5.1.0` | | [react-native-screens](https://github.com/software-mansion/react-native-screens) | `3.31.1` | `4.5.0` | Updates `next` from 14.2.5 to 15.1.4 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v14.2.5...v15.1.4) Updates `react` from 18.3.1 to 19.0.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react) Updates `@types/react` from 18.3.4 to 19.0.7 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 18.3.1 to 19.0.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react-dom) Updates `@types/react-dom` from 18.3.0 to 19.0.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `@opentelemetry/instrumentation` from 0.53.0 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.53.0...experimental/v0.57.1) Updates `@opentelemetry/sdk-metrics` from 1.26.0 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.26.0...v1.30.1) Updates `@opentelemetry/sdk-trace-base` from 1.26.0 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.26.0...v1.30.1) Updates `next` from 14.2.5 to 15.1.4 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v14.2.5...v15.1.4) Updates `react` from 18.3.1 to 19.0.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react) Updates `@types/react` from 18.3.3 to 19.0.7 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 18.3.1 to 19.0.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react-dom) Updates `@types/react-dom` from 18.3.0 to 19.0.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `@grpc/grpc-js` from 1.10.11 to 1.12.5 - [Release notes](https://github.com/grpc/grpc-node/releases) - [Commits](https://github.com/grpc/grpc-node/compare/@grpc/grpc-js@1.10.11...@grpc/grpc-js@1.12.5) Updates `@openfeature/flagd-provider` from 0.13.1 to 0.13.2 Updates `@openfeature/react-sdk` from 0.4.1 to 0.4.10 - [Release notes](https://github.com/open-feature/js-sdk/releases) - [Changelog](https://github.com/open-feature/js-sdk/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.1...web-sdk-v0.4.10) Updates `@opentelemetry/auto-instrumentations-node` from 0.48.0 to 0.55.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-pg-v0.48.0...auto-instrumentations-node-v0.55.2) Updates `@opentelemetry/auto-instrumentations-web` from 0.40.0 to 0.45.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/sql-common-v0.40.0...instrumentation-pg-v0.45.0) Updates `@opentelemetry/context-zone` from 1.25.1 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `@opentelemetry/core` from 1.25.1 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `@opentelemetry/exporter-metrics-otlp-grpc` from 0.52.1 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.52.1...experimental/v0.57.1) Updates `@opentelemetry/exporter-trace-otlp-grpc` from 0.52.1 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.52.1...experimental/v0.57.1) Updates `@opentelemetry/exporter-trace-otlp-http` from 0.52.1 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.52.1...experimental/v0.57.1) Updates `@opentelemetry/instrumentation` from 0.52.1 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.53.0...experimental/v0.57.1) Updates `@opentelemetry/resource-detector-alibaba-cloud` from 0.28.10 to 0.29.7 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-alibaba-cloud-v0.28.10...resource-detector-gcp-v0.29.7) Updates `@opentelemetry/resource-detector-aws` from 1.5.2 to 1.10.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-aws-v1.5.2...resource-detector-aws-v1.10.0) Updates `@opentelemetry/resource-detector-container` from 0.3.11 to 0.5.3 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-container-v0.3.11...instrumentation-tedious-v0.5.3) Updates `@opentelemetry/resource-detector-gcp` from 0.29.10 to 0.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-gcp-v0.29.10...host-metrics-v0.32.0) Updates `@opentelemetry/resources` from 1.25.1 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `@opentelemetry/sdk-metrics` from 1.25.1 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.26.0...v1.30.1) Updates `@opentelemetry/sdk-node` from 0.52.1 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.52.1...experimental/v0.57.1) Updates `@opentelemetry/sdk-trace-base` from 1.25.1 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.26.0...v1.30.1) Updates `@opentelemetry/sdk-trace-node` from 1.25.1 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `@opentelemetry/sdk-trace-web` from 1.25.1 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `@tanstack/react-query` from 4.36.1 to 5.64.1 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.64.1/packages/react-query) Updates `cookies-next` from 4.2.1 to 5.1.0 - [Release notes](https://github.com/andreizanik/cookies-next/releases) - [Commits](https://github.com/andreizanik/cookies-next/compare/v4.2.1...v5.1.0) Updates `dotenv` from 16.4.5 to 16.4.7 - [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md) - [Commits](https://github.com/motdotla/dotenv/compare/v16.4.5...v16.4.7) Updates `dotenv-expand` from 11.0.6 to 12.0.1 - [Changelog](https://github.com/motdotla/dotenv-expand/blob/master/CHANGELOG.md) - [Commits](https://github.com/motdotla/dotenv-expand/compare/v11.0.6...v12.0.1) Updates `sharp` from 0.33.4 to 0.33.5 - [Release notes](https://github.com/lovell/sharp/releases) - [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md) - [Commits](https://github.com/lovell/sharp/compare/v0.33.4...v0.33.5) Updates `styled-components` from 6.1.11 to 6.1.14 - [Release notes](https://github.com/styled-components/styled-components/releases) - [Commits](https://github.com/styled-components/styled-components/compare/v6.1.11...styled-components@6.1.14) Updates `uuid` from 10.0.0 to 11.0.5 - [Release notes](https://github.com/uuidjs/uuid/releases) - [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md) - [Commits](https://github.com/uuidjs/uuid/compare/v10.0.0...v11.0.5) Updates `@openfeature/server-sdk` from 1.15.0 to 1.17.0 - [Release notes](https://github.com/open-feature/js-sdk/releases) - [Changelog](https://github.com/open-feature/js-sdk/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.16.2...server-sdk-v1.17.0) Updates `@opentelemetry/instrumentation-fetch` from 0.52.1 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.55.0...experimental/v0.57.1) Updates `@opentelemetry/instrumentation-xml-http-request` from 0.52.1 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.55.0...experimental/v0.57.1) Updates `@opentelemetry/semantic-conventions` from 1.25.1 to 1.27.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.27.0) Updates `@grpc/grpc-js` from 1.10.11 to 1.12.5 - [Release notes](https://github.com/grpc/grpc-node/releases) - [Commits](https://github.com/grpc/grpc-node/compare/@grpc/grpc-js@1.10.11...@grpc/grpc-js@1.12.5) Updates `@openfeature/flagd-provider` from 0.13.1 to 0.13.2 Updates `@opentelemetry/auto-instrumentations-node` from 0.54.0 to 0.55.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-pg-v0.48.0...auto-instrumentations-node-v0.55.2) Updates `@opentelemetry/core` from 1.29.0 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `@opentelemetry/exporter-metrics-otlp-grpc` from 0.56.0 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.52.1...experimental/v0.57.1) Updates `@opentelemetry/exporter-trace-otlp-grpc` from 0.56.0 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.52.1...experimental/v0.57.1) Updates `@opentelemetry/resource-detector-alibaba-cloud` from 0.29.6 to 0.29.7 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-alibaba-cloud-v0.28.10...resource-detector-gcp-v0.29.7) Updates `@opentelemetry/resource-detector-aws` from 1.9.0 to 1.10.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-aws-v1.5.2...resource-detector-aws-v1.10.0) Updates `@opentelemetry/resource-detector-container` from 0.5.2 to 0.5.3 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-container-v0.3.11...instrumentation-tedious-v0.5.3) Updates `@opentelemetry/resource-detector-gcp` from 0.31.0 to 0.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-gcp-v0.29.10...host-metrics-v0.32.0) Updates `@opentelemetry/resources` from 1.29.0 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `@opentelemetry/sdk-metrics` from 1.29.0 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.26.0...v1.30.1) Updates `@opentelemetry/sdk-node` from 0.56.0 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.52.1...experimental/v0.57.1) Updates `@opentelemetry/sdk-trace-base` from 1.29.0 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.26.0...v1.30.1) Updates `@opentelemetry/sdk-trace-node` from 1.29.0 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `uuid` from 11.0.3 to 11.0.5 - [Release notes](https://github.com/uuidjs/uuid/releases) - [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md) - [Commits](https://github.com/uuidjs/uuid/compare/v10.0.0...v11.0.5) Updates `@openfeature/server-sdk` from 1.16.2 to 1.17.0 - [Release notes](https://github.com/open-feature/js-sdk/releases) - [Changelog](https://github.com/open-feature/js-sdk/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.16.2...server-sdk-v1.17.0) Updates `@opentelemetry/instrumentation-runtime-node` from 0.11.0 to 0.12.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/v0.11.0...v0.12.1) Updates `pino` from 9.5.0 to 9.6.0 - [Release notes](https://github.com/pinojs/pino/releases) - [Commits](https://github.com/pinojs/pino/compare/v9.5.0...v9.6.0) Updates `react` from 18.2.0 to 19.0.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react) Updates `@types/react` from 18.2.79 to 19.0.7 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 18.2.0 to 19.0.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react-dom) Updates `@opentelemetry/core` from 1.28.0 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `@opentelemetry/exporter-trace-otlp-http` from 0.52.1 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.52.1...experimental/v0.57.1) Updates `@opentelemetry/instrumentation` from 0.55.0 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.53.0...experimental/v0.57.1) Updates `@opentelemetry/resources` from 1.28.0 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `@opentelemetry/sdk-metrics` from 1.25.1 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.26.0...v1.30.1) Updates `@opentelemetry/sdk-trace-base` from 1.28.0 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.26.0...v1.30.1) Updates `@opentelemetry/sdk-trace-web` from 1.28.0 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `@tanstack/react-query` from 4.36.1 to 5.64.1 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.64.1/packages/react-query) Updates `dotenv` from 16.4.5 to 16.4.7 - [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md) - [Commits](https://github.com/motdotla/dotenv/compare/v16.4.5...v16.4.7) Updates `uuid` from 10.0.0 to 11.0.5 - [Release notes](https://github.com/uuidjs/uuid/releases) - [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md) - [Commits](https://github.com/uuidjs/uuid/compare/v10.0.0...v11.0.5) Updates `@expo/metro-config` from 0.19.4 to 0.19.9 - [Changelog](https://github.com/expo/expo/blob/main/packages/@expo/metro-config/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/@expo/metro-config) Updates `@opentelemetry/instrumentation-fetch` from 0.55.0 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.55.0...experimental/v0.57.1) Updates `@opentelemetry/instrumentation-xml-http-request` from 0.55.0 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.55.0...experimental/v0.57.1) Updates `@react-navigation/native` from 6.1.18 to 7.0.14 - [Release notes](https://github.com/react-navigation/react-navigation/releases) - [Changelog](https://github.com/react-navigation/react-navigation/blob/main/packages/native/CHANGELOG.md) - [Commits](https://github.com/react-navigation/react-navigation/commits/@react-navigation/native@7.0.14/packages/native) Updates `expo` from 51.0.39 to 52.0.25 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo) Updates `expo-constants` from 16.0.2 to 17.0.4 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-constants/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-constants) Updates `expo-font` from 12.0.10 to 13.0.3 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-font/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-font) Updates `expo-linking` from 6.3.1 to 7.0.4 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-linking/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-linking) Updates `expo-router` from 3.5.24 to 4.0.16 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-router) Updates `expo-splash-screen` from 0.27.7 to 0.29.20 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-splash-screen) Updates `expo-status-bar` from 1.12.1 to 2.0.1 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-status-bar/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-status-bar) Updates `expo-system-ui` from 3.0.7 to 4.0.7 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-system-ui/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-system-ui) Updates `expo-web-browser` from 13.0.3 to 14.0.2 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-web-browser/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-web-browser) Updates `react-hook-form` from 7.53.2 to 7.54.2 - [Release notes](https://github.com/react-hook-form/react-hook-form/releases) - [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.53.2...v7.54.2) Updates `react-native` from 0.74.2 to 0.76.6 - [Release notes](https://github.com/facebook/react-native/releases) - [Changelog](https://github.com/facebook/react-native/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react-native/commits/v0.76.6/packages/react-native) Updates `react-native-device-info` from 11.1.0 to 14.0.2 - [Release notes](https://github.com/react-native-device-info/react-native-device-info/releases) - [Changelog](https://github.com/react-native-device-info/react-native-device-info/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-native-device-info/react-native-device-info/compare/v11.1.0...v14.0.2) Updates `react-native-gesture-handler` from 2.16.2 to 2.22.0 - [Release notes](https://github.com/software-mansion/react-native-gesture-handler/releases) - [Commits](https://github.com/software-mansion/react-native-gesture-handler/compare/2.16.2...2.22.0) Updates `react-native-reanimated` from 3.10.1 to 3.16.7 - [Release notes](https://github.com/software-mansion/react-native-reanimated/releases) - [Commits](https://github.com/software-mansion/react-native-reanimated/commits/3.16.7/packages/react-native-reanimated) Updates `react-native-safe-area-context` from 4.10.1 to 5.1.0 - [Release notes](https://github.com/th3rdwave/react-native-safe-area-context/releases) - [Commits](https://github.com/th3rdwave/react-native-safe-area-context/compare/v4.10.1...v5.1.0) Updates `react-native-screens` from 3.31.1 to 4.5.0 - [Release notes](https://github.com/software-mansion/react-native-screens/releases) - [Commits](https://github.com/software-mansion/react-native-screens/compare/3.31.1...4.5.0) --- updated-dependencies: - dependency-name: next dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react-dom dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@types/react-dom" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-metrics" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-trace-base" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: next dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react-dom dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@types/react-dom" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@grpc/grpc-js" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@openfeature/flagd-provider" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@openfeature/react-sdk" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/auto-instrumentations-node" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/auto-instrumentations-web" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/context-zone" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/core" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-metrics-otlp-grpc" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-trace-otlp-grpc" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-trace-otlp-http" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-alibaba-cloud" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-aws" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-container" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-gcp" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resources" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-metrics" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-node" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-trace-base" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-trace-node" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-trace-web" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: cookies-next dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: dotenv dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: dotenv-expand dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: sharp dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: styled-components dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: uuid dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@openfeature/server-sdk" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation-fetch" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation-xml-http-request" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/semantic-conventions" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@grpc/grpc-js" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@openfeature/flagd-provider" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/auto-instrumentations-node" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/core" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-metrics-otlp-grpc" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-trace-otlp-grpc" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-alibaba-cloud" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-aws" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-container" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-gcp" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resources" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-metrics" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-node" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-trace-base" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-trace-node" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: uuid dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@openfeature/server-sdk" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation-runtime-node" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: pino dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: react dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react-dom dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/core" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-trace-otlp-http" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resources" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-metrics" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-trace-base" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-trace-web" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: dotenv dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: uuid dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@expo/metro-config" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation-fetch" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation-xml-http-request" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@react-navigation/native" dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-constants dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-font dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-linking dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-router dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-splash-screen dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: expo-status-bar dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-system-ui dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-web-browser dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react-hook-form dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: react-native dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: react-native-device-info dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react-native-gesture-handler dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: react-native-reanimated dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: react-native-safe-area-context dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react-native-screens dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] * fix: update tanstack query signatures * fix: treat textAreaRef as a RefObject * fix: downgrade incompatible deps --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Roger Coll Co-authored-by: Juliano Costa Co-authored-by: Mikko Viitanen <74129181+mviitane@users.noreply.github.com> --- src/flagd-ui/package-lock.json | 771 +- src/flagd-ui/package.json | 10 +- .../src/components/advanced/AdvancedView.tsx | 2 +- src/frontend/package-lock.json | 3517 ++-- src/frontend/package.json | 66 +- .../pages/product/[productId]/index.tsx | 7 +- src/frontend/providers/Ad.provider.tsx | 24 +- src/frontend/providers/Cart.provider.tsx | 24 +- src/payment/package-lock.json | 1409 +- src/payment/package.json | 34 +- src/react-native-app/package-lock.json | 15509 +++++++--------- src/react-native-app/package.json | 66 +- 12 files changed, 10051 insertions(+), 11388 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 538352a01a..8a0e4648b5 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -10,15 +10,15 @@ "dependencies": { "@vercel/otel": "^1.10.0", "ajv": "^8.17.1", - "next": "14.2.5", - "react": "^18", - "react-dom": "^18" + "next": "15.1.4", + "react": "^19", + "react-dom": "^19" }, "devDependencies": { "@types/json5": "^2.2.0", "@types/node": "^22", - "@types/react": "^18.3.4", - "@types/react-dom": "^18.3.0", + "@types/react": "^19.0.7", + "@types/react-dom": "^19.0.3", "autoprefixer": "^10.4.20", "eslint": "^9", "eslint-config-next": "15.1.5", @@ -41,6 +41,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -231,6 +240,348 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -324,9 +675,9 @@ } }, "node_modules/@next/env": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz", - "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==" + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.4.tgz", + "integrity": "sha512-2fZ5YZjedi5AGaeoaC0B20zGntEHRhi2SdWcu61i48BllODcAmmtj8n7YarSPt4DaTsJaBFdxQAVEVzgmx2Zpw==" }, "node_modules/@next/eslint-plugin-next": { "version": "15.1.5", @@ -369,9 +720,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz", - "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.4.tgz", + "integrity": "sha512-wBEMBs+np+R5ozN1F8Y8d/Dycns2COhRnkxRc+rvnbXke5uZBHkUGFgWxfTXn5rx7OLijuUhyfB+gC/ap58dDw==", "cpu": [ "arm64" ], @@ -384,9 +735,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz", - "integrity": "sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.4.tgz", + "integrity": "sha512-7sgf5rM7Z81V9w48F02Zz6DgEJulavC0jadab4ZsJ+K2sxMNK0/BtF8J8J3CxnsJN3DGcIdC260wEKssKTukUw==", "cpu": [ "x64" ], @@ -399,9 +750,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz", - "integrity": "sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.4.tgz", + "integrity": "sha512-JaZlIMNaJenfd55kjaLWMfok+vWBlcRxqnRoZrhFQrhM1uAehP3R0+Aoe+bZOogqlZvAz53nY/k3ZyuKDtT2zQ==", "cpu": [ "arm64" ], @@ -414,9 +765,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz", - "integrity": "sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.4.tgz", + "integrity": "sha512-7EBBjNoyTO2ipMDgCiORpwwOf5tIueFntKjcN3NK+GAQD7OzFJe84p7a2eQUeWdpzZvhVXuAtIen8QcH71ZCOQ==", "cpu": [ "arm64" ], @@ -429,9 +780,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz", - "integrity": "sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.4.tgz", + "integrity": "sha512-9TGEgOycqZFuADyFqwmK/9g6S0FYZ3tphR4ebcmCwhL8Y12FW8pIBKJvSwV+UBjMkokstGNH+9F8F031JZKpHw==", "cpu": [ "x64" ], @@ -444,9 +795,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz", - "integrity": "sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.4.tgz", + "integrity": "sha512-0578bLRVDJOh+LdIoKvgNDz77+Bd85c5JrFgnlbI1SM3WmEQvsjxTA8ATu9Z9FCiIS/AliVAW2DV/BDwpXbtiQ==", "cpu": [ "x64" ], @@ -459,9 +810,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz", - "integrity": "sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.4.tgz", + "integrity": "sha512-JgFCiV4libQavwII+kncMCl30st0JVxpPOtzWcAI2jtum4HjYaclobKhj+JsRu5tFqMtA5CJIa0MvYyuu9xjjQ==", "cpu": [ "arm64" ], @@ -473,25 +824,10 @@ "node": ">= 10" } }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz", - "integrity": "sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz", - "integrity": "sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.4.tgz", + "integrity": "sha512-xxsJy9wzq7FR5SqPCUqdgSXiNXrMuidgckBa8nH9HtjjxsilgcN6VgXF6tZ3uEWuVEadotQJI8/9EQ6guTC4Yw==", "cpu": [ "x64" ], @@ -587,13 +923,12 @@ } }, "node_modules/@opentelemetry/instrumentation": { - "version": "0.53.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", - "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz", + "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==", "peer": true, "dependencies": { - "@opentelemetry/api-logs": "0.53.0", + "@opentelemetry/api-logs": "0.57.1", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", @@ -607,6 +942,18 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.1.tgz", + "integrity": "sha512-I4PHczeujhQAQv6ZBzqHYEUiggZL4IdSMixtVD3EYqbdrjujE7kRfI5QohjlPoJm8BvenoW5YaTMWRrbpot6tg==", + "peer": true, + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/resources": { "version": "1.26.0", "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.26.0.tgz", @@ -643,14 +990,13 @@ } }, "node_modules/@opentelemetry/sdk-metrics": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.26.0.tgz", - "integrity": "sha512-0SvDXmou/JjzSDOjUmetAAvcKQW6ZrvosU0rkbDGpXvvZN+pQF6JbK/Kd4hNdK4q/22yeruqvukXEJyySTzyTQ==", - "license": "Apache-2.0", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.30.1.tgz", + "integrity": "sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog==", "peer": true, "dependencies": { - "@opentelemetry/core": "1.26.0", - "@opentelemetry/resources": "1.26.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1" }, "engines": { "node": ">=14" @@ -659,16 +1005,86 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", + "peer": true, + "dependencies": { + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz", + "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", + "peer": true, + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "peer": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.26.0.tgz", - "integrity": "sha512-olWQldtvbK4v22ymrKLbIcBi9L2SpMO84sCPY54IVsJhP9fRsxJT194C/AVaAuJzLE30EdhhM1VmvVYR7az+cw==", - "license": "Apache-2.0", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz", + "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==", "peer": true, "dependencies": { - "@opentelemetry/core": "1.26.0", - "@opentelemetry/resources": "1.26.0", - "@opentelemetry/semantic-conventions": "1.27.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", + "peer": true, + "dependencies": { + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/resources": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz", + "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", + "peer": true, + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -677,6 +1093,15 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "peer": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/semantic-conventions": { "version": "1.27.0", "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", @@ -715,12 +1140,11 @@ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" }, "node_modules/@swc/helpers": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", - "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", "dependencies": { - "@swc/counter": "^0.1.3", - "tslib": "^2.4.0" + "tslib": "^2.8.0" } }, "node_modules/@types/estree": { @@ -757,31 +1181,22 @@ "undici-types": "~6.20.0" } }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "dev": true - }, "node_modules/@types/react": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.4.tgz", - "integrity": "sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.7.tgz", + "integrity": "sha512-MoFsEJKkAtZCrC1r6CM8U22GzhG7u2Wir8ons/aCKH6MBdD1ibV24zOSSkdZVUKqN5i396zG5VKLYZ3yaUZdLA==", "dev": true, - "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz", + "integrity": "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*" + "peerDependencies": { + "@types/react": "^19.0.0" } }, "node_modules/@types/shimmer": { @@ -1595,11 +2010,24 @@ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "devOptional": true, "dependencies": { "color-name": "~1.1.4" }, @@ -1611,7 +2039,17 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "devOptional": true + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } }, "node_modules/commander": { "version": "4.1.1", @@ -1773,6 +2211,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -2879,7 +3326,8 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, "node_modules/graphemer": { "version": "1.4.0", @@ -3051,6 +3499,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "optional": true + }, "node_modules/is-async-function": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", @@ -3475,7 +3929,8 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "node_modules/js-yaml": { "version": "4.1.0", @@ -3616,6 +4071,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -3738,40 +4194,41 @@ "dev": true }, "node_modules/next": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.5.tgz", - "integrity": "sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/next/-/next-15.1.4.tgz", + "integrity": "sha512-mTaq9dwaSuwwOrcu3ebjDYObekkxRnXpuVL21zotM8qE2W0HBOdVIdg2Li9QjMEZrj73LN96LcWcz62V19FjAg==", "dependencies": { - "@next/env": "14.2.5", - "@swc/helpers": "0.5.5", + "@next/env": "15.1.4", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.15", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", - "graceful-fs": "^4.2.11", "postcss": "8.4.31", - "styled-jsx": "5.1.1" + "styled-jsx": "5.1.6" }, "bin": { "next": "dist/bin/next" }, "engines": { - "node": ">=18.17.0" + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.5", - "@next/swc-darwin-x64": "14.2.5", - "@next/swc-linux-arm64-gnu": "14.2.5", - "@next/swc-linux-arm64-musl": "14.2.5", - "@next/swc-linux-x64-gnu": "14.2.5", - "@next/swc-linux-x64-musl": "14.2.5", - "@next/swc-win32-arm64-msvc": "14.2.5", - "@next/swc-win32-ia32-msvc": "14.2.5", - "@next/swc-win32-x64-msvc": "14.2.5" + "@next/swc-darwin-arm64": "15.1.4", + "@next/swc-darwin-x64": "15.1.4", + "@next/swc-linux-arm64-gnu": "15.1.4", + "@next/swc-linux-arm64-musl": "15.1.4", + "@next/swc-linux-x64-gnu": "15.1.4", + "@next/swc-linux-x64-musl": "15.1.4", + "@next/swc-win32-arm64-msvc": "15.1.4", + "@next/swc-win32-x64-msvc": "15.1.4", + "sharp": "^0.33.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.41.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "peerDependenciesMeta": { @@ -3781,6 +4238,9 @@ "@playwright/test": { "optional": true }, + "babel-plugin-react-compiler": { + "optional": true + }, "sass": { "optional": true } @@ -4409,26 +4869,22 @@ ] }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.0.0" } }, "node_modules/react-is": { @@ -4643,12 +5099,9 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==" }, "node_modules/semver": { "version": "7.6.3", @@ -4707,6 +5160,45 @@ "node": ">= 0.4" } }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -4819,6 +5311,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -5060,9 +5561,9 @@ } }, "node_modules/styled-jsx": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", - "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", "dependencies": { "client-only": "0.0.1" }, @@ -5070,7 +5571,7 @@ "node": ">= 12.0.0" }, "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" }, "peerDependenciesMeta": { "@babel/core": { @@ -5242,9 +5743,9 @@ "dev": true }, "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "node_modules/type-check": { "version": "0.4.0", diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index e0d84917b3..1a1820d34c 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -11,15 +11,15 @@ "dependencies": { "@vercel/otel": "^1.10.0", "ajv": "^8.17.1", - "next": "14.2.5", - "react": "^18", - "react-dom": "^18" + "next": "15.1.4", + "react": "^19", + "react-dom": "^19" }, "devDependencies": { "@types/json5": "^2.2.0", "@types/node": "^22", - "@types/react": "^18.3.4", - "@types/react-dom": "^18.3.0", + "@types/react": "^19.0.7", + "@types/react-dom": "^19.0.3", "autoprefixer": "^10.4.20", "eslint": "^9", "eslint-config-next": "15.1.5", diff --git a/src/flagd-ui/src/components/advanced/AdvancedView.tsx b/src/flagd-ui/src/components/advanced/AdvancedView.tsx index f0ee9dd864..bd0953b784 100644 --- a/src/flagd-ui/src/components/advanced/AdvancedView.tsx +++ b/src/flagd-ui/src/components/advanced/AdvancedView.tsx @@ -137,7 +137,7 @@ export default function AdvancedView() {
} handleTextAreaChange={handleTextAreaChange} />
diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 647ec71dde..a4b9eab4be 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -8,46 +8,46 @@ "name": "frontend", "version": "0.1.0", "dependencies": { - "@grpc/grpc-js": "1.10.11", - "@openfeature/flagd-provider": "0.13.1", + "@grpc/grpc-js": "1.12.5", + "@openfeature/flagd-provider": "0.13.2", "@openfeature/flagd-web-provider": "0.7.2", - "@openfeature/react-sdk": "0.4.1", + "@openfeature/react-sdk": "0.4.10", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.48.0", - "@opentelemetry/auto-instrumentations-web": "0.40.0", - "@opentelemetry/context-zone": "1.25.1", - "@opentelemetry/core": "1.25.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.52.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.52.1", - "@opentelemetry/exporter-trace-otlp-http": "0.52.1", - "@opentelemetry/instrumentation": "0.52.1", - "@opentelemetry/resource-detector-alibaba-cloud": "0.28.10", - "@opentelemetry/resource-detector-aws": "1.5.2", - "@opentelemetry/resource-detector-container": "0.3.11", - "@opentelemetry/resource-detector-gcp": "0.29.10", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-metrics": "1.25.1", - "@opentelemetry/sdk-node": "0.52.1", - "@opentelemetry/sdk-trace-base": "1.25.1", - "@opentelemetry/sdk-trace-node": "1.25.1", - "@opentelemetry/sdk-trace-web": "1.25.1", - "@tanstack/react-query": "4.36.1", - "cookies-next": "4.2.1", + "@opentelemetry/auto-instrumentations-node": "0.55.2", + "@opentelemetry/auto-instrumentations-web": "0.45.0", + "@opentelemetry/context-zone": "1.30.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-trace-otlp-http": "0.57.1", + "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/resource-detector-alibaba-cloud": "0.29.7", + "@opentelemetry/resource-detector-aws": "1.10.0", + "@opentelemetry/resource-detector-container": "0.5.3", + "@opentelemetry/resource-detector-gcp": "0.32.0", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1", + "@opentelemetry/sdk-node": "0.57.1", + "@opentelemetry/sdk-trace-base": "1.30.1", + "@opentelemetry/sdk-trace-node": "1.30.1", + "@opentelemetry/sdk-trace-web": "1.30.1", + "@tanstack/react-query": "5.64.1", + "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", - "dotenv": "16.4.5", - "dotenv-expand": "11.0.6", - "next": "14.2.5", - "react": "18.3.1", - "react-dom": "18.3.1", - "sharp": "0.33.4", - "styled-components": "6.1.11", + "dotenv": "16.4.7", + "dotenv-expand": "12.0.1", + "next": "15.1.4", + "react": "19.0.0", + "react-dom": "19.0.0", + "sharp": "0.33.5", + "styled-components": "6.1.14", "ts-proto": "1.181.1", - "uuid": "10.0.0" + "uuid": "11.0.5" }, "devDependencies": { "@types/node": "22.10.7", - "@types/react": "18.3.3", - "@types/react-dom": "18.3.0", + "@types/react": "19.0.7", + "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", "@typescript-eslint/eslint-plugin": "8.21.0", @@ -61,22 +61,15 @@ "typescript": "5.7.3" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -84,110 +77,27 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@bufbuild/protobuf": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.0.tgz", - "integrity": "sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==" + "integrity": "sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==", + "license": "(Apache-2.0 AND BSD-3-Clause)" }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" @@ -197,6 +107,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/@connectrpc/connect/-/connect-1.4.0.tgz", "integrity": "sha512-vZeOkKaAjyV4+RH3+rJZIfDFJAfr+7fyYr6sLDKbYX3uuTVszhFe9/YKf5DNqrDb5cKdKVlYkGn6DTDqMitAnA==", + "license": "Apache-2.0", "peerDependencies": { "@bufbuild/protobuf": "^1.4.2" } @@ -205,6 +116,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/@connectrpc/connect-web/-/connect-web-1.4.0.tgz", "integrity": "sha512-13aO4psFbbm7rdOFGV0De2Za64DY/acMspgloDlcOKzLPPs0yZkhp1OOzAQeiAIr7BM/VOHIA3p8mF0inxCYTA==", + "license": "Apache-2.0", "peerDependencies": { "@bufbuild/protobuf": "^1.4.2", "@connectrpc/connect": "1.4.0" @@ -215,6 +127,7 @@ "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.7.tgz", "integrity": "sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -244,6 +157,7 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -253,6 +167,7 @@ "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.1.0", "lodash.once": "^4.1.1" @@ -263,14 +178,16 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/@emnapi/runtime": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz", - "integrity": "sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" @@ -280,6 +197,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "license": "MIT", "dependencies": { "@emotion/memoize": "^0.8.1" } @@ -287,24 +205,30 @@ "node_modules/@emotion/memoize": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "license": "MIT" }, "node_modules/@emotion/unitless": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "license": "MIT" }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } @@ -314,6 +238,7 @@ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -323,6 +248,7 @@ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.5", "debug": "^4.3.1", @@ -332,6 +258,30 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/core": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", @@ -350,6 +300,7 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -373,6 +324,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -384,11 +336,36 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, "node_modules/@eslint/js": { "version": "9.18.0", @@ -405,6 +382,7 @@ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -424,9 +402,10 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.10.11", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.11.tgz", - "integrity": "sha512-3RaoxOqkHHN2c05bwtBNVJmOf/UwMam0rZYtdl7dsRpsvDwcNpv6LkGgzltQ7xVf822LzBoKEPRvf4D7+xeIDw==", + "version": "1.12.5", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz", + "integrity": "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==", + "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" @@ -439,6 +418,7 @@ "version": "0.7.13", "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "license": "Apache-2.0", "dependencies": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", @@ -457,6 +437,7 @@ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } @@ -466,6 +447,7 @@ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" @@ -479,6 +461,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -492,6 +475,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -505,6 +489,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -514,431 +499,361 @@ } }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.4.tgz", - "integrity": "sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", "cpu": [ "arm64" ], + "license": "Apache-2.0", "optional": true, "os": [ "darwin" ], "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.0.2" + "@img/sharp-libvips-darwin-arm64": "1.0.4" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.4.tgz", - "integrity": "sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "darwin" ], "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.0.2" + "@img/sharp-libvips-darwin-x64": "1.0.4" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.2.tgz", - "integrity": "sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" ], - "engines": { - "macos": ">=11", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.2.tgz", - "integrity": "sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" ], - "engines": { - "macos": ">=10.13", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.2.tgz", - "integrity": "sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", "cpu": [ "arm" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], - "engines": { - "glibc": ">=2.28", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.2.tgz", - "integrity": "sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], - "engines": { - "glibc": ">=2.26", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.2.tgz", - "integrity": "sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", "cpu": [ "s390x" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], - "engines": { - "glibc": ">=2.28", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz", - "integrity": "sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], - "engines": { - "glibc": ">=2.26", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.2.tgz", - "integrity": "sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], - "engines": { - "musl": ">=1.2.2", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz", - "integrity": "sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], - "engines": { - "musl": ">=1.2.2", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.4.tgz", - "integrity": "sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", "cpu": [ "arm" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "glibc": ">=2.28", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.0.2" + "@img/sharp-libvips-linux-arm": "1.0.5" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.4.tgz", - "integrity": "sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", "cpu": [ "arm64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.0.2" + "@img/sharp-libvips-linux-arm64": "1.0.4" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.4.tgz", - "integrity": "sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", "cpu": [ "s390x" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "glibc": ">=2.31", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.0.2" + "@img/sharp-libvips-linux-s390x": "1.0.4" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.4.tgz", - "integrity": "sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.0.2" + "@img/sharp-libvips-linux-x64": "1.0.4" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.4.tgz", - "integrity": "sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", "cpu": [ "arm64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "musl": ">=1.2.2", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.0.2" + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.4.tgz", - "integrity": "sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { - "musl": ">=1.2.2", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.0.2" + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.4.tgz", - "integrity": "sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", "cpu": [ "wasm32" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.1.1" + "@emnapi/runtime": "^1.2.0" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.4.tgz", - "integrity": "sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", "cpu": [ "ia32" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.4.tgz", - "integrity": "sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", "cpu": [ "x64" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" @@ -948,15 +863,17 @@ "version": "4.4.2", "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/js-sdsl" } }, "node_modules/@next/env": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz", - "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==" + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.4.tgz", + "integrity": "sha512-2fZ5YZjedi5AGaeoaC0B20zGntEHRhi2SdWcu61i48BllODcAmmtj8n7YarSPt4DaTsJaBFdxQAVEVzgmx2Zpw==", + "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { "version": "15.1.5", @@ -999,12 +916,13 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz", - "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.4.tgz", + "integrity": "sha512-wBEMBs+np+R5ozN1F8Y8d/Dycns2COhRnkxRc+rvnbXke5uZBHkUGFgWxfTXn5rx7OLijuUhyfB+gC/ap58dDw==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1014,12 +932,13 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz", - "integrity": "sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.4.tgz", + "integrity": "sha512-7sgf5rM7Z81V9w48F02Zz6DgEJulavC0jadab4ZsJ+K2sxMNK0/BtF8J8J3CxnsJN3DGcIdC260wEKssKTukUw==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1029,12 +948,13 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz", - "integrity": "sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.4.tgz", + "integrity": "sha512-JaZlIMNaJenfd55kjaLWMfok+vWBlcRxqnRoZrhFQrhM1uAehP3R0+Aoe+bZOogqlZvAz53nY/k3ZyuKDtT2zQ==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -1044,12 +964,13 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz", - "integrity": "sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.4.tgz", + "integrity": "sha512-7EBBjNoyTO2ipMDgCiORpwwOf5tIueFntKjcN3NK+GAQD7OzFJe84p7a2eQUeWdpzZvhVXuAtIen8QcH71ZCOQ==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -1059,12 +980,13 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz", - "integrity": "sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.4.tgz", + "integrity": "sha512-9TGEgOycqZFuADyFqwmK/9g6S0FYZ3tphR4ebcmCwhL8Y12FW8pIBKJvSwV+UBjMkokstGNH+9F8F031JZKpHw==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -1074,12 +996,13 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz", - "integrity": "sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.4.tgz", + "integrity": "sha512-0578bLRVDJOh+LdIoKvgNDz77+Bd85c5JrFgnlbI1SM3WmEQvsjxTA8ATu9Z9FCiIS/AliVAW2DV/BDwpXbtiQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -1089,27 +1012,13 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz", - "integrity": "sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.4.tgz", + "integrity": "sha512-JgFCiV4libQavwII+kncMCl30st0JVxpPOtzWcAI2jtum4HjYaclobKhj+JsRu5tFqMtA5CJIa0MvYyuu9xjjQ==", "cpu": [ "arm64" ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz", - "integrity": "sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==", - "cpu": [ - "ia32" - ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -1119,12 +1028,13 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz", - "integrity": "sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.4.tgz", + "integrity": "sha512-xxsJy9wzq7FR5SqPCUqdgSXiNXrMuidgckBa8nH9HtjjxsilgcN6VgXF6tZ3uEWuVEadotQJI8/9EQ6guTC4Yw==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -1138,6 +1048,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1151,6 +1062,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -1160,6 +1072,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1173,45 +1086,47 @@ "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.4.0" } }, "node_modules/@openfeature/core": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-1.3.0.tgz", - "integrity": "sha512-Z2TiqfC4zoiCB/JMzIrzRrdDYdfOCGjI2MDgNHDEwA/k3y5IZANFkNAc/nhfof/QrmOy0HjQtvjRLnEW8urqJQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-1.6.0.tgz", + "integrity": "sha512-QYAtwdreZU9Mi/LXLRzXsUA7PhbtT7+UJfRBMIAy6MidZjMgIbNfoh6+MncXb3UocThn0OsYa8WLfWD9q43eCQ==", + "license": "Apache-2.0", "peer": true }, "node_modules/@openfeature/flagd-core": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@openfeature/flagd-core/-/flagd-core-0.2.3.tgz", - "integrity": "sha512-dhinXEfFmyTPVuI53Nq1pEC7SJP78LgpmJriMlVjcNaDRkA8VneyjuttijDnHw8PcrBit5I3DZNelXzrUkkiLw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@openfeature/flagd-core/-/flagd-core-1.0.0.tgz", + "integrity": "sha512-JoaiDfQHgD15shkD5i/I+bpssvqqIwu2dkXMgQ8PfG/keYITCvNFIbxyqPKn+nAX9DR0Zp0P+spJTXtyxLMikw==", + "license": "Apache-2.0", "dependencies": { "ajv": "^8.12.0", "imurmurhash": "0.1.4", - "json-logic-engine": "1.3.4", + "json-logic-engine": "4.0.2", "object-hash": "3.0.0", "semver": "7.5.3", "tslib": "^2.3.0" }, "peerDependencies": { - "@openfeature/core": ">=0.0.16" + "@openfeature/core": ">=1.6.0" } }, "node_modules/@openfeature/flagd-provider": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/@openfeature/flagd-provider/-/flagd-provider-0.13.1.tgz", - "integrity": "sha512-X+sNmgmHN08U1kE0I1lLNDdvvvUTmPpXxFuppB8ak+6+d5lHCLMIhhEGlE56C8VhyWBP0d+chl42O4IqdypqDA==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@openfeature/flagd-provider/-/flagd-provider-0.13.2.tgz", + "integrity": "sha512-T5IIjPc1VvOuwBQU8jWdf3IhaK9ceMOt1oVGScIVWHgQSns2QjOv6ATxLZ8ciPenavoUQW6YnphmbVaEb1ft3w==", + "license": "Apache-2.0", "dependencies": { - "@openfeature/flagd-core": "0.2.3", - "@protobuf-ts/runtime-rpc": "2.9.4", - "lru-cache": "10.2.2", - "util": "0.12.5" + "@openfeature/flagd-core": "^1.0.0", + "lru-cache": "^11.0.0" }, "peerDependencies": { - "@grpc/grpc-js": "~1.8.0 || ~1.9.0 || ~1.10.0", - "@openfeature/server-sdk": "^1.13.0" + "@grpc/grpc-js": "~1.8.0 || ~1.9.0 || ~1.10.0 || ~1.11.0 || ~1.12.0", + "@openfeature/server-sdk": "^1.17.0" } }, "node_modules/@openfeature/flagd-web-provider": { @@ -1228,105 +1143,112 @@ } }, "node_modules/@openfeature/react-sdk": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@openfeature/react-sdk/-/react-sdk-0.4.1.tgz", - "integrity": "sha512-5192k7rghjXU3UIjNzZfZE02hw8a5sBZi8cjUVqAS+foBg3mTaH0XYocz78jgWowhpYRiEH0HOA1E7mad/NwLg==", + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/@openfeature/react-sdk/-/react-sdk-0.4.10.tgz", + "integrity": "sha512-t0DU5tR7s6Z3Oi3nbiWgdSuOs1hN9NH28fcnb3vvYdILetY3tCuhUI07xedzGsU6LCbOgNr65a9sEtTjrXjb5w==", + "license": "Apache-2.0", "peerDependencies": { - "@openfeature/web-sdk": "^1.0.2", + "@openfeature/web-sdk": "^1.3.0", "react": ">=16.8.0" } }, "node_modules/@openfeature/server-sdk": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.15.0.tgz", - "integrity": "sha512-NEdVg5YuUNrCTNtLOg2f37QHCCGmKtfPEkFCsbwnJ3PQ5Gkii3Qufhr17LhbRqKOahqMBuNiMebQ3n1p8ty6Sg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.17.0.tgz", + "integrity": "sha512-M5Dcw6/IROlvIVPzzgPEpq5JhbIGyGY7oVlN6cJMd9EbhJtQzmMQBuXKCqoar59OgQXKH/u2LQxEhS1ccaR/RA==", + "license": "Apache-2.0", "peer": true, "engines": { "node": ">=18" }, "peerDependencies": { - "@openfeature/core": "1.3.0" + "@openfeature/core": "^1.6.0" } }, "node_modules/@openfeature/web-sdk": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@openfeature/web-sdk/-/web-sdk-1.2.1.tgz", - "integrity": "sha512-4Yz6zQA8/zwFUjKhvgyhIscywkLuDLOpzy//+GdMpSgvC1VsyifFf0p0ISMMLXlQmYZxVLamhL6jAnVge8VyEw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@openfeature/web-sdk/-/web-sdk-1.4.0.tgz", + "integrity": "sha512-cMCt5jszLiZ9mLacS7XjMTEpbIS3asttSpyrPJ8rAdwDk86UjzfPwzMTSiccVolJqS299hWGXC1FGbu4IHX40Q==", + "license": "Apache-2.0", "peer": true, "peerDependencies": { - "@openfeature/core": "1.3.0" + "@openfeature/core": "^1.6.0" } }, "node_modules/@opentelemetry/api": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", "engines": { "node": ">=8.0.0" } }, "node_modules/@opentelemetry/api-logs": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.52.1.tgz", - "integrity": "sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.1.tgz", + "integrity": "sha512-I4PHczeujhQAQv6ZBzqHYEUiggZL4IdSMixtVD3EYqbdrjujE7kRfI5QohjlPoJm8BvenoW5YaTMWRrbpot6tg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" }, "engines": { "node": ">=14" } }, "node_modules/@opentelemetry/auto-instrumentations-node": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.48.0.tgz", - "integrity": "sha512-meON9LM9dyPun8ZlIs90BzqHAIWfWkC8g+OoPuIEeV5UOSyKqMsWtbMyiTbs/k/i7k1V4miJQMX/PcLbD7pWcQ==", - "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/instrumentation-amqplib": "^0.39.0", - "@opentelemetry/instrumentation-aws-lambda": "^0.43.0", - "@opentelemetry/instrumentation-aws-sdk": "^0.43.0", - "@opentelemetry/instrumentation-bunyan": "^0.40.0", - "@opentelemetry/instrumentation-cassandra-driver": "^0.40.0", - "@opentelemetry/instrumentation-connect": "^0.38.0", - "@opentelemetry/instrumentation-cucumber": "^0.8.0", - "@opentelemetry/instrumentation-dataloader": "^0.11.0", - "@opentelemetry/instrumentation-dns": "^0.38.0", - "@opentelemetry/instrumentation-express": "^0.41.0", - "@opentelemetry/instrumentation-fastify": "^0.38.0", - "@opentelemetry/instrumentation-fs": "^0.14.0", - "@opentelemetry/instrumentation-generic-pool": "^0.38.0", - "@opentelemetry/instrumentation-graphql": "^0.42.0", - "@opentelemetry/instrumentation-grpc": "^0.52.0", - "@opentelemetry/instrumentation-hapi": "^0.40.0", - "@opentelemetry/instrumentation-http": "^0.52.0", - "@opentelemetry/instrumentation-ioredis": "^0.42.0", - "@opentelemetry/instrumentation-knex": "^0.38.0", - "@opentelemetry/instrumentation-koa": "^0.42.0", - "@opentelemetry/instrumentation-lru-memoizer": "^0.39.0", - "@opentelemetry/instrumentation-memcached": "^0.38.0", - "@opentelemetry/instrumentation-mongodb": "^0.46.0", - "@opentelemetry/instrumentation-mongoose": "^0.40.0", - "@opentelemetry/instrumentation-mysql": "^0.40.0", - "@opentelemetry/instrumentation-mysql2": "^0.40.0", - "@opentelemetry/instrumentation-nestjs-core": "^0.39.0", - "@opentelemetry/instrumentation-net": "^0.38.0", - "@opentelemetry/instrumentation-pg": "^0.43.0", - "@opentelemetry/instrumentation-pino": "^0.41.0", - "@opentelemetry/instrumentation-redis": "^0.41.0", - "@opentelemetry/instrumentation-redis-4": "^0.41.0", - "@opentelemetry/instrumentation-restify": "^0.40.0", - "@opentelemetry/instrumentation-router": "^0.39.0", - "@opentelemetry/instrumentation-socket.io": "^0.41.0", - "@opentelemetry/instrumentation-tedious": "^0.12.0", - "@opentelemetry/instrumentation-undici": "^0.4.0", - "@opentelemetry/instrumentation-winston": "^0.39.0", - "@opentelemetry/resource-detector-alibaba-cloud": "^0.28.10", - "@opentelemetry/resource-detector-aws": "^1.5.2", - "@opentelemetry/resource-detector-azure": "^0.2.9", - "@opentelemetry/resource-detector-container": "^0.3.11", - "@opentelemetry/resource-detector-gcp": "^0.29.10", + "version": "0.55.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.55.2.tgz", + "integrity": "sha512-m6Wt1vlDYocFX4+m6Y3df1kAXRjYrY57Y8O0VjDRTP+kSHdjH/52/2KmlWGhk2NiDasOt2Pb+DZoMqkQLezZew==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation-amqplib": "^0.46.0", + "@opentelemetry/instrumentation-aws-lambda": "^0.50.1", + "@opentelemetry/instrumentation-aws-sdk": "^0.49.0", + "@opentelemetry/instrumentation-bunyan": "^0.45.0", + "@opentelemetry/instrumentation-cassandra-driver": "^0.45.0", + "@opentelemetry/instrumentation-connect": "^0.43.0", + "@opentelemetry/instrumentation-cucumber": "^0.13.0", + "@opentelemetry/instrumentation-dataloader": "^0.16.0", + "@opentelemetry/instrumentation-dns": "^0.43.0", + "@opentelemetry/instrumentation-express": "^0.47.0", + "@opentelemetry/instrumentation-fastify": "^0.44.0", + "@opentelemetry/instrumentation-fs": "^0.19.0", + "@opentelemetry/instrumentation-generic-pool": "^0.43.0", + "@opentelemetry/instrumentation-graphql": "^0.47.0", + "@opentelemetry/instrumentation-grpc": "^0.57.0", + "@opentelemetry/instrumentation-hapi": "^0.45.1", + "@opentelemetry/instrumentation-http": "^0.57.0", + "@opentelemetry/instrumentation-ioredis": "^0.47.0", + "@opentelemetry/instrumentation-kafkajs": "^0.7.0", + "@opentelemetry/instrumentation-knex": "^0.44.0", + "@opentelemetry/instrumentation-koa": "^0.47.0", + "@opentelemetry/instrumentation-lru-memoizer": "^0.44.0", + "@opentelemetry/instrumentation-memcached": "^0.43.0", + "@opentelemetry/instrumentation-mongodb": "^0.51.0", + "@opentelemetry/instrumentation-mongoose": "^0.46.0", + "@opentelemetry/instrumentation-mysql": "^0.45.0", + "@opentelemetry/instrumentation-mysql2": "^0.45.0", + "@opentelemetry/instrumentation-nestjs-core": "^0.44.0", + "@opentelemetry/instrumentation-net": "^0.43.0", + "@opentelemetry/instrumentation-pg": "^0.50.0", + "@opentelemetry/instrumentation-pino": "^0.46.0", + "@opentelemetry/instrumentation-redis": "^0.46.0", + "@opentelemetry/instrumentation-redis-4": "^0.46.0", + "@opentelemetry/instrumentation-restify": "^0.45.0", + "@opentelemetry/instrumentation-router": "^0.44.0", + "@opentelemetry/instrumentation-socket.io": "^0.46.0", + "@opentelemetry/instrumentation-tedious": "^0.18.0", + "@opentelemetry/instrumentation-undici": "^0.10.0", + "@opentelemetry/instrumentation-winston": "^0.44.0", + "@opentelemetry/resource-detector-alibaba-cloud": "^0.29.7", + "@opentelemetry/resource-detector-aws": "^1.10.0", + "@opentelemetry/resource-detector-azure": "^0.5.0", + "@opentelemetry/resource-detector-container": "^0.5.3", + "@opentelemetry/resource-detector-gcp": "^0.32.0", "@opentelemetry/resources": "^1.24.0", - "@opentelemetry/sdk-node": "^0.52.0" + "@opentelemetry/sdk-node": "^0.57.0" }, "engines": { "node": ">=14" @@ -1336,28 +1258,30 @@ } }, "node_modules/@opentelemetry/auto-instrumentations-web": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-web/-/auto-instrumentations-web-0.40.0.tgz", - "integrity": "sha512-WaeIjd9HyK+cGitynZrDocIqLnNQj1NrBwo5R3z/xHW+oYhkBpo8GwuvdSZW7erVqqPcRntHQt+IF+eUi9Tylw==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-web/-/auto-instrumentations-web-0.45.0.tgz", + "integrity": "sha512-2HnaXx8qgJ2wZn4t9S2cI5AWPADTJWMv46YA8+vsgqVPlc6ny0smY0XvSmb2kYVoHxWr2rwQZZi4HTIrgQRq3A==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/instrumentation-document-load": "^0.39.0", - "@opentelemetry/instrumentation-fetch": "^0.52.0", - "@opentelemetry/instrumentation-user-interaction": "^0.39.0", - "@opentelemetry/instrumentation-xml-http-request": "^0.52.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation-document-load": "^0.44.0", + "@opentelemetry/instrumentation-fetch": "^0.57.0", + "@opentelemetry/instrumentation-user-interaction": "^0.44.0", + "@opentelemetry/instrumentation-xml-http-request": "^0.57.0" }, "engines": { "node": ">=14" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0", - "zone.js": "^0.11.4 || ^0.13.0 || ^0.14.0" + "zone.js": "^0.11.4 || ^0.13.0 || ^0.14.0 || ^0.15.0" } }, "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.25.1.tgz", - "integrity": "sha512-UW/ge9zjvAEmRWVapOP0qyCvPulWU6cQxGxDbWEFfGOj1VBBZAuOqTo3X6yWmDTD3Xe15ysCZChHncr2xFMIfQ==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz", + "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==", + "license": "Apache-2.0", "engines": { "node": ">=14" }, @@ -1366,35 +1290,38 @@ } }, "node_modules/@opentelemetry/context-zone": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone/-/context-zone-1.25.1.tgz", - "integrity": "sha512-kHbMs95mKNJPpfd1LE1/IRxUw5D1fyTOM+0R1yDOOzffs9ZZsQqgQ1Q7q0bWZ/kVLWjL43fiALe+rPtQvRShdg==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone/-/context-zone-1.30.1.tgz", + "integrity": "sha512-N6CACt5sxXD6XzS2jJPqstNJZ/QFqeW56IiKfHb6hYOelCXVvYfxheF7byAeRXa7+N8rmXUP7aRdupALXP5hdQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/context-zone-peer-dep": "1.25.1", - "zone.js": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0" + "@opentelemetry/context-zone-peer-dep": "1.30.1", + "zone.js": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0 || ^0.15.0" }, "engines": { "node": ">=14" } }, "node_modules/@opentelemetry/context-zone-peer-dep": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone-peer-dep/-/context-zone-peer-dep-1.25.1.tgz", - "integrity": "sha512-UxSY9K90xOg2eI7qZStx0HV6DZT6tcRX+IiAWTvROi6h9Td2c2vlQhBZ9F1JH7kINmNCZN1f1//O9rSioPEMlg==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone-peer-dep/-/context-zone-peer-dep-1.30.1.tgz", + "integrity": "sha512-8oJQR+MBblY5WGOm26AOBLogN+FoO26QEZssH9WJd1qSD7ABMefq9qyGyN9xilFFl2ABPHgcMzkfYb8vx9JBEA==", + "license": "Apache-2.0", "engines": { "node": ">=14" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0", - "zone.js": "^0.10.2 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0" + "zone.js": "^0.10.2 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0 || ^0.15.0" } }, "node_modules/@opentelemetry/core": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", - "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -1403,19 +1330,79 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/exporter-logs-otlp-grpc": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-grpc/-/exporter-logs-otlp-grpc-0.57.1.tgz", + "integrity": "sha512-RL8qmZH1H/H7Hbj0xKxF0Gg8kX9ic0aoMS3Kv5kj864lWxlpuR5YtGGn5OjGYwCmq6nYbsNy257fFp1U63pABw==", + "license": "Apache-2.0", + "dependencies": { + "@grpc/grpc-js": "^1.7.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/sdk-logs": "0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/exporter-logs-otlp-http": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.57.1.tgz", + "integrity": "sha512-u8Cr6yDX57/n89aSJwAQNHQIYodcl6o8jTcaPKNktMvNfd7ny3R7aE7GKBC5Wg0zejP9heBgyN0OGwrPhptx7A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/sdk-logs": "0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/exporter-logs-otlp-proto": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-proto/-/exporter-logs-otlp-proto-0.57.1.tgz", + "integrity": "sha512-WtR85NHdIVrIFfsK5bwx7miGG5WzOsuT4BNmuZ3EfZ0veowkrgoUSynsNnXW1YFXL6QhPbScjUfeTjnnV9bnIQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-trace-base": "1.30.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, "node_modules/@opentelemetry/exporter-metrics-otlp-grpc": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.52.1.tgz", - "integrity": "sha512-CE0f1IEE1GQj8JWl/BxKvKwx9wBTLR09OpPQHaIs5LGBw3ODu8ek5kcbrHPNsFYh/pWh+pcjbZQoxq3CqvQVnA==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.57.1.tgz", + "integrity": "sha512-8B7k5q4AUldbfvubcHApg1XQaio/cO/VUWsM5PSaRP2fsjGNwbn2ih04J3gLD+AmgslvyuDcA2SZiDXEKwAxtQ==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.25.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.52.1", - "@opentelemetry/otlp-exporter-base": "0.52.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.52.1", - "@opentelemetry/otlp-transformer": "0.52.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-metrics": "1.25.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1" }, "engines": { "node": ">=14" @@ -1425,15 +1412,53 @@ } }, "node_modules/@opentelemetry/exporter-metrics-otlp-http": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.52.1.tgz", - "integrity": "sha512-oAHPOy1sZi58bwqXaucd19F/v7+qE2EuVslQOEeLQT94CDuZJJ4tbWzx8DpYBTrOSzKqqrMtx9+PMxkrcbxOyQ==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.57.1.tgz", + "integrity": "sha512-jpKYVZY7fdwTdy+eAy/Mp9DZMaQpj7caMzlo3QqQDSJx5FZEY6zWzgcKvDvF6h+gdHE7LgUjaPOvJVUs354jJg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/exporter-metrics-otlp-proto": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.57.1.tgz", + "integrity": "sha512-53AJmYJr8lypU6kAQT1/FVKR2QKcxRp4Gd54L3oF9hc2fw/FtvVfXV+PelB+qL318PqUlVjVtDOa4SQ5tAREfA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/exporter-prometheus": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-prometheus/-/exporter-prometheus-0.57.1.tgz", + "integrity": "sha512-lwwOQzyvhzioGCYmIh7mXo+RLSoEVhuO0dFzWeEiQhFkjSUOPgKQKNTgYtl2KO1L7XIbHp5LIgn4nZrYx191Rg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/otlp-exporter-base": "0.52.1", - "@opentelemetry/otlp-transformer": "0.52.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-metrics": "1.25.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1" }, "engines": { "node": ">=14" @@ -1443,69 +1468,73 @@ } }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.52.1.tgz", - "integrity": "sha512-pVkSH20crBwMTqB3nIN4jpQKUEoB0Z94drIHpYyEqs7UBr+I0cpYyOR3bqjA/UasQUMROb3GX8ZX4/9cVRqGBQ==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.57.1.tgz", + "integrity": "sha512-a9/4w2nyfehxMA64VGcZ4OXePGLjTz9H/dvqbOzVmIBZe9R6bkOeT68M9WoxAEdUZcJDK8XS3EloJId1rjPrag==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.25.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.52.1", - "@opentelemetry/otlp-transformer": "0.52.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-trace-base": "1.25.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/exporter-trace-otlp-http": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.52.1.tgz", - "integrity": "sha512-05HcNizx0BxcFKKnS5rwOV+2GevLTVIRA0tRgWYyw4yCgR53Ic/xk83toYKts7kbzcI+dswInUg/4s8oyA+tqg==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.57.1.tgz", + "integrity": "sha512-43dLEjlf6JGxpVt9RaRlJAvjHG1wGsbAuNd67RIDy/95zfKk2aNovtiGUgFdS/kcvgvS90upIUbgn0xUd9JjMg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/otlp-exporter-base": "0.52.1", - "@opentelemetry/otlp-transformer": "0.52.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-trace-base": "1.25.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/exporter-trace-otlp-proto": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.52.1.tgz", - "integrity": "sha512-pt6uX0noTQReHXNeEslQv7x311/F1gJzMnp1HD2qgypLRPbXDeMzzeTngRTUaUbP6hqWNtPxuLr4DEoZG+TcEQ==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.57.1.tgz", + "integrity": "sha512-REN6UZTNoP3Tb7vuCEy+yAjNmJGi7MLqCMdDoUSbsWGwpopxtSnsbkfVfLPsZAsumWkcq0p8p6lYvqUBDhUqIA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/otlp-exporter-base": "0.52.1", - "@opentelemetry/otlp-transformer": "0.52.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-trace-base": "1.25.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/exporter-zipkin": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.25.1.tgz", - "integrity": "sha512-RmOwSvkimg7ETwJbUOPTMhJm9A9bG1U8s7Zo3ajDh4zM7eYcycQ0dM7FbLD6NXWbI2yj7UY4q8BKinKYBQksyw==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.30.1.tgz", + "integrity": "sha512-6S2QIMJahIquvFaaxmcwpvQQRD/YFaMTNoIxrfPIPOeITN+a8lfEcPDxNxn8JDAaxkg+4EnXhz8upVDYenoQjA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-trace-base": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -1515,12 +1544,13 @@ } }, "node_modules/@opentelemetry/instrumentation": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz", - "integrity": "sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz", + "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.52.1", - "@types/shimmer": "^1.0.2", + "@opentelemetry/api-logs": "0.57.1", + "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", "semver": "^7.5.2", @@ -1534,13 +1564,14 @@ } }, "node_modules/@opentelemetry/instrumentation-amqplib": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.39.0.tgz", - "integrity": "sha512-i9SccU5bbHivmmN8ba8HitLnM915BWdGwk5Jl6dwHTp0eV4KpoprZLE/jXUY1AAP/LXpTrM7NgVHmslFSVWRYA==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.0.tgz", + "integrity": "sha512-04VHHV1KIN/c1wLWwzmLI02d/welgscBJ4BuDqrHaxd+ZIdlVXK9UYQsYf3JwSeF52z/4YoSzr8bfdVBSWoMAg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1550,15 +1581,14 @@ } }, "node_modules/@opentelemetry/instrumentation-aws-lambda": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.43.0.tgz", - "integrity": "sha512-pSxcWlsE/pCWQRIw92sV2C+LmKXelYkjkA7C5s39iPUi4pZ2lA1nIiw+1R/y2pDEhUHcaKkNyljQr3cx9ZpVlQ==", + "version": "0.50.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.50.2.tgz", + "integrity": "sha512-jz1a7t2q0SsiztEMyZjFLEFC4pOQ+1C588gWzl878k9Qr6TI1Wu3sa7/dikxJmeRIETcOTUilaa2Otxh6HUVlA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/propagator-aws-xray": "^1.3.1", - "@opentelemetry/resources": "^1.8.0", - "@opentelemetry/semantic-conventions": "^1.22.0", - "@types/aws-lambda": "8.10.122" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/aws-lambda": "8.10.143" }, "engines": { "node": ">=14" @@ -1568,14 +1598,15 @@ } }, "node_modules/@opentelemetry/instrumentation-aws-sdk": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.43.0.tgz", - "integrity": "sha512-klfA48MT0uZY/mGw3cYdQeCXTyMhtY4FzHcZy9R7DdTcuCExgbxWrUlOSiqIJ5kBgsCZfBMEeA6UQKDBwa6X7Q==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.49.0.tgz", + "integrity": "sha512-m3yC3ni4Yo8tggbZgygS/ccAP9e/EYqsMwzooHiIymbnyZwDAB7kMZ3OrjcLVPCFx9gjNMDKW4MdwOPC0vTEeQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/propagation-utils": "^0.30.10", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/propagation-utils": "^0.30.15", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1585,12 +1616,13 @@ } }, "node_modules/@opentelemetry/instrumentation-bunyan": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.40.0.tgz", - "integrity": "sha512-aZ4cXaGWwj79ZXSYrgFVsrDlE4mmf2wfvP9bViwRc0j75A6eN6GaHYHqufFGMTCqASQn5pIjjP+Bx+PWTGiofw==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.45.0.tgz", + "integrity": "sha512-K3ZleoOxKUzGjt0TfAT1jfSNcgyt7+toqjhWymPf2tsGUETXxaxGDzAoNepWcfIkgPauJLPpRLLKcP6LjYLILw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "^0.52.0", - "@opentelemetry/instrumentation": "^0.52.0", + "@opentelemetry/api-logs": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.0", "@types/bunyan": "1.8.9" }, "engines": { @@ -1601,12 +1633,13 @@ } }, "node_modules/@opentelemetry/instrumentation-cassandra-driver": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.40.0.tgz", - "integrity": "sha512-JxbM39JU7HxE9MTKKwi6y5Z3mokjZB2BjwfqYi4B3Y29YO3I42Z7eopG6qq06yWZc+nQli386UDQe0d9xKmw0A==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.45.0.tgz", + "integrity": "sha512-IKoA0lLfF7EyIL85MfqzvfAa/Oz9zHNFXwzSiQ6Iqej89BMyOm3eYaAsyUDAvgiLG12M189temMMyRuR07YsZg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1616,13 +1649,14 @@ } }, "node_modules/@opentelemetry/instrumentation-connect": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.38.0.tgz", - "integrity": "sha512-2/nRnx3pjYEmdPIaBwtgtSviTKHWnDZN3R+TkRUnhIVrvBKVcq+I5B2rtd6mr6Fe9cHlZ9Ojcuh7pkNh/xdWWg==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.0.tgz", + "integrity": "sha512-Q57JGpH6T4dkYHo9tKXONgLtxzsh1ZEW5M9A/OwKrZFyEpLqWgjhcZ3hIuVvDlhb426iDF1f9FPToV/mi5rpeA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0", + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0", "@types/connect": "3.4.36" }, "engines": { @@ -1633,12 +1667,13 @@ } }, "node_modules/@opentelemetry/instrumentation-cucumber": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.8.0.tgz", - "integrity": "sha512-ieTm4RBIlZt2brPwtX5aEZYtYnkyqhAVXJI9RIohiBVMe5DxiwCwt+2Exep/nDVqGPX8zRBZUl4AEw423OxJig==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.13.0.tgz", + "integrity": "sha512-ZBswBKONU2g7mhjEKF4vkTXxezq16QdvGaD5W4o01/t5KzvCZGQ6hYPsB34miJIj/hh6UrFLRDAjqb7nur5I3Q==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1648,11 +1683,12 @@ } }, "node_modules/@opentelemetry/instrumentation-dataloader": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.11.0.tgz", - "integrity": "sha512-27urJmwkH4KDaMJtEv1uy2S7Apk4XbN4AgWMdfMJbi7DnOduJmeuA+DpJCwXB72tEWXo89z5T3hUVJIDiSNmNw==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.0.tgz", + "integrity": "sha512-88+qCHZC02up8PwKHk0UQKLLqGGURzS3hFQBZC7PnGwReuoKjHXS1o29H58S+QkXJpkTr2GACbx8j6mUoGjNPA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -1662,12 +1698,12 @@ } }, "node_modules/@opentelemetry/instrumentation-dns": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.38.0.tgz", - "integrity": "sha512-Um07I0TQXDWa+ZbEAKDFUxFH40dLtejtExDOMLNJ1CL8VmOmA71qx93Qi/QG4tGkiI1XWqr7gF/oiMCJ4m8buQ==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.43.0.tgz", + "integrity": "sha512-bGXTyBpjSYt6B7LEj0zMfWkoveGpYf5pVEgTZmDacsG49RdfdCH5PYt3C8MEMwYEFtu2dGdKdKa2LHfefIIDdg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "semver": "^7.5.4" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -1676,27 +1712,16 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-dns/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@opentelemetry/instrumentation-document-load": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-document-load/-/instrumentation-document-load-0.39.0.tgz", - "integrity": "sha512-M8QTHM1fFoJvQ1EYaxAF7V5RJhG4c+o4gWHLSFQl6dvQJuGiSdhM3azenRFcTe88Sn6AmVYRGiUjlac9GSVQ2g==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-document-load/-/instrumentation-document-load-0.44.0.tgz", + "integrity": "sha512-PccD8BSqhevp9E2Y3EUSelnIMPUbBJtWIEfJSChG17yKwDcf3U8zI8uupJMXXlPwZLyDXe/0zeIhPW0BfdHMiA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/sdk-trace-base": "^1.0.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/sdk-trace-web": "^1.15.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1706,13 +1731,14 @@ } }, "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.41.0.tgz", - "integrity": "sha512-/B7fbMdaf3SYe5f1P973tkqd6s7XZirjpfkoJ63E7nltU30qmlgm9tY5XwZOzAFI0rHS9tbrFI2HFPAvQUFe/A==", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.0.tgz", + "integrity": "sha512-XFWVx6k0XlU8lu6cBlCa29ONtVt6ADEjmxtyAyeF2+rifk8uBJbk1La0yIVfI0DoKURGbaEDTNelaXG9l/lNNQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1722,13 +1748,14 @@ } }, "node_modules/@opentelemetry/instrumentation-fastify": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.38.0.tgz", - "integrity": "sha512-HBVLpTSYpkQZ87/Df3N0gAw7VzYZV3n28THIBrJWfuqw3Or7UqdhnjeuMIPQ04BKk3aZc0cWn2naSQObbh5vXw==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.44.1.tgz", + "integrity": "sha512-RoVeMGKcNttNfXMSl6W4fsYoCAYP1vi6ZAWIGhBY+o7R9Y0afA7f9JJL0j8LHbyb0P0QhSYk+6O56OwI2k4iRQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1738,29 +1765,31 @@ } }, "node_modules/@opentelemetry/instrumentation-fetch": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fetch/-/instrumentation-fetch-0.52.1.tgz", - "integrity": "sha512-EJDQXdv1ZGyBifox+8BK+hP0tg29abNPdScE+lW77bUVrThD5vn2dOo+blAS3Z8Od+eqTUTDzXVDIFjGgTK01w==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fetch/-/instrumentation-fetch-0.57.1.tgz", + "integrity": "sha512-osger7F15h8sbjYMcrh5hiYk/Jb53St+iMK+7Hh2z2QjpkvCak39P5QS226KaAARVGdk9X5ZpoFzonWaFMoTjQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/instrumentation": "0.52.1", - "@opentelemetry/sdk-trace-web": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/sdk-trace-web": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-fs": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.14.0.tgz", - "integrity": "sha512-pVc8P5AgliC1DphyyBUgsxXlm2XaPH4BpYvt7rAZDMIqUpRk8gs19SioABtKqqxvFzg5jPtgJfJsdxq0Y+maLw==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.0.tgz", + "integrity": "sha512-JGwmHhBkRT2G/BYNV1aGI+bBjJu4fJUD/5/Jat0EWZa2ftrLV3YE8z84Fiij/wK32oMZ88eS8DI4ecLGZhpqsQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -1770,11 +1799,12 @@ } }, "node_modules/@opentelemetry/instrumentation-generic-pool": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.38.0.tgz", - "integrity": "sha512-0/ULi6pIco1fEnDPmmAul8ZoudFL7St0hjgBbWZlZPBCSyslDll1J7DFeEbjiRSSyUd+0tu73ae0DOKVKNd7VA==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.0.tgz", + "integrity": "sha512-at8GceTtNxD1NfFKGAuwtqM41ot/TpcLh+YsGe4dhf7gvv1HW/ZWdq6nfRtS6UjIvZJOokViqLPJ3GVtZItAnQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -1784,11 +1814,12 @@ } }, "node_modules/@opentelemetry/instrumentation-graphql": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.42.0.tgz", - "integrity": "sha512-N8SOwoKL9KQSX7z3gOaw5UaTeVQcfDO1c21csVHnmnmGUoqsXbArK2B8VuwPWcv6/BC/i3io+xTo7QGRZ/z28Q==", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.0.tgz", + "integrity": "sha512-Cc8SMf+nLqp0fi8oAnooNEfwZWFnzMiBHCGmDFYqmgjPylyLmi83b+NiTns/rKGwlErpW0AGPt0sMpkbNlzn8w==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -1798,12 +1829,13 @@ } }, "node_modules/@opentelemetry/instrumentation-grpc": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.52.1.tgz", - "integrity": "sha512-EdSDiDSAO+XRXk/ZN128qQpBo1I51+Uay/LUPcPQhSRGf7fBPIEUBeOLQiItguGsug5MGOYjql2w/1wCQF3fdQ==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.57.1.tgz", + "integrity": "sha512-tZ0LO6hxLCnQfSS03BpYWc+kZpqFJJUbYb+GfEr5YJ1/YrOtRP8lCpC8AC1QIVmqGn+Vlxjkn3tSifNHsk9enw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "0.52.1", - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -1813,13 +1845,14 @@ } }, "node_modules/@opentelemetry/instrumentation-hapi": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.40.0.tgz", - "integrity": "sha512-8U/w7Ifumtd2bSN1OLaSwAAFhb9FyqWUki3lMMB0ds+1+HdSxYBe9aspEJEgvxAqOkrQnVniAPTEGf1pGM7SOw==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.1.tgz", + "integrity": "sha512-VH6mU3YqAKTePPfUPwfq4/xr049774qWtfTuJqVHoVspCLiT3bW+fCQ1toZxt6cxRPYASoYaBsMA3CWo8B8rcw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1829,13 +1862,15 @@ } }, "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.52.1.tgz", - "integrity": "sha512-dG/aevWhaP+7OLv4BQQSEKMJv8GyeOp3Wxl31NHqE8xo9/fYMfEljiZphUHIfyg4gnZ9swMyWjfOQs5GUQe54Q==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.57.1.tgz", + "integrity": "sha512-ThLmzAQDs7b/tdKI3BV2+yawuF09jF111OFsovqT1Qj3D8vjwKBwhi/rDE5xethwn4tSXtZcJ9hBsVAlWFQZ7g==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/instrumentation": "0.52.1", - "@opentelemetry/semantic-conventions": "1.25.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/semantic-conventions": "1.28.0", + "forwarded-parse": "2.1.2", "semver": "^7.5.2" }, "engines": { @@ -1846,13 +1881,30 @@ } }, "node_modules/@opentelemetry/instrumentation-ioredis": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.42.0.tgz", - "integrity": "sha512-P11H168EKvBB9TUSasNDOGJCSkpT44XgoM6d3gRIWAa9ghLpYhl0uRkS8//MqPzcJVHr3h3RmfXIpiYLjyIZTw==", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.0.tgz", + "integrity": "sha512-4HqP9IBC8e7pW9p90P3q4ox0XlbLGme65YTrA3UTLvqvo4Z6b0puqZQP203YFu8m9rE/luLfaG7/xrwwqMUpJw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/redis-common": "^0.36.2", - "@opentelemetry/semantic-conventions": "^1.23.0" + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-kafkajs": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.0.tgz", + "integrity": "sha512-LB+3xiNzc034zHfCtgs4ITWhq6Xvdo8bsq7amR058jZlf2aXXDrN9SV4si4z2ya9QX4tz6r4eZJwDkXOp14/AQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1862,12 +1914,13 @@ } }, "node_modules/@opentelemetry/instrumentation-knex": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.38.0.tgz", - "integrity": "sha512-EFef6Ss5ATsf5AxJOLE+pxkfupcWDaejkPH+2q7TNeG1UwsBFobfiWM+iHROZ1Cl/y3mTi60MW70FxsaX2/TjA==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.0.tgz", + "integrity": "sha512-SlT0+bLA0Lg3VthGje+bSZatlGHw/vwgQywx0R/5u9QC59FddTQSPJeWNw29M6f8ScORMeUOOTwihlQAn4GkJQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1877,13 +1930,14 @@ } }, "node_modules/@opentelemetry/instrumentation-koa": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.42.0.tgz", - "integrity": "sha512-H1BEmnMhho8o8HuNRq5zEI4+SIHDIglNB7BPKohZyWG4fWNuR7yM4GTlR01Syq21vODAS7z5omblScJD/eZdKw==", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.0.tgz", + "integrity": "sha512-HFdvqf2+w8sWOuwtEXayGzdZ2vWpCKEQv5F7+2DSA74Te/Cv4rvb2E5So5/lh+ok4/RAIPuvCbCb/SHQFzMmbw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1893,11 +1947,12 @@ } }, "node_modules/@opentelemetry/instrumentation-lru-memoizer": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.39.0.tgz", - "integrity": "sha512-eU1Wx1RRTR/2wYXFzH9gcpB8EPmhYlNDIUHzUXjyUE0CAXEJhBLkYNlzdaVCoQDw2neDqS+Woshiia6+emWK9A==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.0.tgz", + "integrity": "sha512-Tn7emHAlvYDFik3vGU0mdwvWJDwtITtkJ+5eT2cUquct6nIs+H8M47sqMJkCpyPe5QIBJoTOHxmc6mj9lz6zDw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -1907,12 +1962,13 @@ } }, "node_modules/@opentelemetry/instrumentation-memcached": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.38.0.tgz", - "integrity": "sha512-tPmyqQEZNyrvg6G+iItdlguQEcGzfE+bJkpQifmBXmWBnoS5oU3UxqtyYuXGL2zI9qQM5yMBHH4nRXWALzy7WA==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.43.0.tgz", + "integrity": "sha512-qjldZMBpfxKwI4ODytX6raF1WE+Qov0wTW4+tkofjas1b8e0WmVs+Pw4/YlmjJNOKRLD1usYkP7QlmPLvyzZSA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.23.0", + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0", "@types/memcached": "^2.2.6" }, "engines": { @@ -1923,13 +1979,13 @@ } }, "node_modules/@opentelemetry/instrumentation-mongodb": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.46.0.tgz", - "integrity": "sha512-VF/MicZ5UOBiXrqBslzwxhN7TVqzu1/LN/QDpkskqM0Zm0aZ4CVRbUygL8d7lrjLn15x5kGIe8VsSphMfPJzlA==", + "version": "0.51.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.51.0.tgz", + "integrity": "sha512-cMKASxCX4aFxesoj3WK8uoQ0YUrRvnfxaO72QWI2xLu5ZtgX/QvdGBlU3Ehdond5eb74c2s1cqRQUIptBnKz1g==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/sdk-metrics": "^1.9.1", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1939,13 +1995,14 @@ } }, "node_modules/@opentelemetry/instrumentation-mongoose": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.40.0.tgz", - "integrity": "sha512-niRi5ZUnkgzRhIGMOozTyoZIvJKNJyhijQI4nF4iFSb+FUx2v5fngfR+8XLmdQAO7xmsD8E5vEGdDVYVtKbZew==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.0.tgz", + "integrity": "sha512-mtVv6UeaaSaWTeZtLo4cx4P5/ING2obSqfWGItIFSunQBrYROfhuVe7wdIrFUs2RH1tn2YYpAJyMaRe/bnTTIQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -1955,13 +2012,14 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.40.0.tgz", - "integrity": "sha512-d7ja8yizsOCNMYIJt5PH/fKZXjb/mS48zLROO4BzZTtDfhNCl2UM/9VIomP2qkGIFVouSJrGr/T00EzY7bPtKA==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.0.tgz", + "integrity": "sha512-tWWyymgwYcTwZ4t8/rLDfPYbOTF3oYB8SxnYMtIQ1zEf5uDm90Ku3i6U/vhaMyfHNlIHvDhvJh+qx5Nc4Z3Acg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0", - "@types/mysql": "2.15.22" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/mysql": "2.15.26" }, "engines": { "node": ">=14" @@ -1971,12 +2029,13 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql2": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.40.0.tgz", - "integrity": "sha512-0xfS1xcqUmY7WE1uWjlmI67Xg3QsSUlNT+AcXHeA4BDUPwZtWqF4ezIwLgpVZfHOnkAEheqGfNSWd1PIu3Wnfg==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.0.tgz", + "integrity": "sha512-qLslv/EPuLj0IXFvcE3b0EqhWI8LKmrgRPIa4gUd8DllbBpqJAvLNJSv3cC6vWwovpbSI3bagNO/3Q2SuXv2xA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0", + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1" }, "engines": { @@ -1987,12 +2046,13 @@ } }, "node_modules/@opentelemetry/instrumentation-nestjs-core": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.39.0.tgz", - "integrity": "sha512-mewVhEXdikyvIZoMIUry8eb8l3HUjuQjSjVbmLVTt4NQi35tkpnHQrG9bTRBrl3403LoWZ2njMPJyg4l6HfKvA==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.44.0.tgz", + "integrity": "sha512-t16pQ7A4WYu1yyQJZhRKIfUNvl5PAaF2pEteLvgJb/BWdd1oNuU1rOYt4S825kMy+0q4ngiX281Ss9qiwHfxFQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.23.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -2002,12 +2062,13 @@ } }, "node_modules/@opentelemetry/instrumentation-net": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.38.0.tgz", - "integrity": "sha512-stjow1PijcmUquSmRD/fSihm/H61DbjPlJuJhWUe7P22LFPjFhsrSeiB5vGj3vn+QGceNAs+kioUTzMGPbNxtg==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.43.0.tgz", + "integrity": "sha512-jFzYpCGg1+s4uePNC86GcdzsYzDZpfVMDsHNZzw5MX6tMWyc2jtiXBFWed41HpWOtkIRU/SJd7KR0k1WjNZRuQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.23.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -2017,15 +2078,17 @@ } }, "node_modules/@opentelemetry/instrumentation-pg": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.43.0.tgz", - "integrity": "sha512-og23KLyoxdnAeFs1UWqzSonuCkePUzCX30keSYigIzJe/6WSYA8rnEI5lobcxPEzg+GcU06J7jzokuEHbjVJNw==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.50.0.tgz", + "integrity": "sha512-TtLxDdYZmBhFswm8UIsrDjh/HFBeDXd4BLmE8h2MxirNHewLJ0VS9UUddKKEverb5Sm2qFVjqRjcU+8Iw4FJ3w==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0", + "@opentelemetry/core": "^1.26.0", + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "1.27.0", "@opentelemetry/sql-common": "^0.40.1", "@types/pg": "8.6.1", - "@types/pg-pool": "2.0.4" + "@types/pg-pool": "2.0.6" }, "engines": { "node": ">=14" @@ -2034,14 +2097,24 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", + "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/instrumentation-pino": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.41.0.tgz", - "integrity": "sha512-Kpv0fJRk/8iMzMk5Ue5BsUJfHkBJ2wQoIi/qduU1a1Wjx9GLj6J2G17PHjPK5mnZjPNzkFOXFADZMfgDioliQw==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.46.0.tgz", + "integrity": "sha512-TFjW24fwc/5KafDZuXbdViGiTym/6U6tDnOEkM5K9LIKsySMWb8xNIVE7y/6B8zDwImncEssNN1t42NixQJqug==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "^0.52.0", + "@opentelemetry/api-logs": "^0.57.0", "@opentelemetry/core": "^1.25.0", - "@opentelemetry/instrumentation": "^0.52.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -2051,13 +2124,14 @@ } }, "node_modules/@opentelemetry/instrumentation-redis": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.41.0.tgz", - "integrity": "sha512-RJ1pwI3btykp67ts+5qZbaFSAAzacucwBet5/5EsKYtWBpHbWwV/qbGN/kIBzXg5WEZBhXLrR/RUq0EpEUpL3A==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.46.0.tgz", + "integrity": "sha512-dXgSf+h+v3Bl4/NYzcSHG0NtqbXz74ph9J1ZBwxTnaB79u+C+ntfqtNt9jklIEAEZ1jR0jRCsVbiZyOpoCpTOg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/redis-common": "^0.36.2", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -2067,13 +2141,14 @@ } }, "node_modules/@opentelemetry/instrumentation-redis-4": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.41.0.tgz", - "integrity": "sha512-H7IfGTqW2reLXqput4yzAe8YpDC0fmVNal95GHMLOrS89W+qWUKIqxolSh63hJyfmwPSFwXASzj7wpSk8Az+Dg==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.0.tgz", + "integrity": "sha512-aTUWbzbFMFeRODn3720TZO0tsh/49T8H3h8vVnVKJ+yE36AeW38Uj/8zykQ/9nO8Vrtjr5yKuX3uMiG/W8FKNw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/redis-common": "^0.36.2", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -2083,13 +2158,14 @@ } }, "node_modules/@opentelemetry/instrumentation-restify": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.40.0.tgz", - "integrity": "sha512-sm/rH/GysY/KOEvZqYBZSLYFeXlBkHCgqPDgWc07tz+bHCN6mPs9P3otGOSTe7o3KAIM8Nc6ncCO59vL+jb2cA==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.45.0.tgz", + "integrity": "sha512-CJ5vq14Plh4W4382Jd/jpNEJStqwqbCzZH1Op4EZVPxXhYOwCafgyflOqjxXSzTvqzhaPDT+A079ix5ebQUlYw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -2099,12 +2175,13 @@ } }, "node_modules/@opentelemetry/instrumentation-router": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.39.0.tgz", - "integrity": "sha512-LaXnVmD69WPC4hNeLzKexCCS19hRLrUw3xicneAMkzJSzNJvPyk7G6I7lz7VjQh1cooObPBt9gNyd3hhTCUrag==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.44.0.tgz", + "integrity": "sha512-rmQZKYcof4M6vQjwtrlfybQo7BSD0mxkXdhfNHWxFjxOFGw9i7EuXSYLnThcVAqNnJ1EljzZiHzaJiq5Ehcb3A==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -2114,12 +2191,13 @@ } }, "node_modules/@opentelemetry/instrumentation-socket.io": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.41.0.tgz", - "integrity": "sha512-7fzDe9/FpO6NFizC/wnzXXX7bF9oRchsD//wFqy5g5hVEgXZCQ70IhxjrKdBvgjyIejR9T9zTvfQ6PfVKfkCAw==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.46.0.tgz", + "integrity": "sha512-BU3XGT63ziF0S9Ky0YevCuMhHUq6U+Wi1g/piJcB16nOqlfd1SW6EACl5LrUe+aNZk2qIXfuS7YV8R+H99+XQQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -2129,13 +2207,14 @@ } }, "node_modules/@opentelemetry/instrumentation-tedious": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.12.0.tgz", - "integrity": "sha512-53xx7WQmpBPfxtVxOKRzzZxOjv9JzSdoy1aIvCtPM5/O407aYcdvj8wXxCQEiEfctFEovEHG4QgmdHz9BKidSQ==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.0.tgz", + "integrity": "sha512-9zhjDpUDOtD+coeADnYEJQ0IeLVCj7w/hqzIutdp5NqS1VqTAanaEfsEcSypyvYv5DX3YOsTUoF+nr2wDXPETA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0", - "@types/tedious": "^4.0.10" + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/tedious": "^4.0.14" }, "engines": { "node": ">=14" @@ -2145,12 +2224,13 @@ } }, "node_modules/@opentelemetry/instrumentation-undici": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.4.0.tgz", - "integrity": "sha512-UdMQBpz11SqtWlmDnk5SoqF5QDom4VmW8SVDt9Q2xuMWVh8lc0kVROfoo2pl7zU6H6gFR8eudb3eFXIdrFn0ew==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.0.tgz", + "integrity": "sha512-vm+V255NGw9gaSsPD6CP0oGo8L55BffBc8KnxqsMuc6XiAD1L8SFNzsW0RHhxJFqy9CJaJh+YiJ5EHXuZ5rZBw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -2160,12 +2240,13 @@ } }, "node_modules/@opentelemetry/instrumentation-user-interaction": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-user-interaction/-/instrumentation-user-interaction-0.39.0.tgz", - "integrity": "sha512-hO/D1g8/P1fo5lEEHpxHHnxXDRfysjBZdFGwR6oSIoZWAQW1EasxZRe2mYDnxc37vEZsFFxTWXayH+XMKOo/sw==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-user-interaction/-/instrumentation-user-interaction-0.44.0.tgz", + "integrity": "sha512-GngN5ZKNbbzr4ebdqZHGv2I52+UNSVFKYUvRnnLy8Ei7zPJOzpRkFHhwAfYt8rr+MQgtKs5VB4VrVILr7f/N1w==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/sdk-trace-web": "^1.8.0" }, "engines": { @@ -2173,16 +2254,17 @@ }, "peerDependencies": { "@opentelemetry/api": "^1.3.0", - "zone.js": "^0.11.4 || ^0.13.0 || ^0.14.0" + "zone.js": "^0.11.4 || ^0.13.0 || ^0.14.0 || ^0.15.0" } }, "node_modules/@opentelemetry/instrumentation-winston": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.39.0.tgz", - "integrity": "sha512-v/1xziLJ9CyB3YDjBSBzbB70Qd0JwWTo36EqWK5m3AR0CzsyMQQmf3ZIZM6sgx7hXMcRQ0pnEYhg6nhrUQPm9A==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.44.0.tgz", + "integrity": "sha512-2uIrdmDIU9qJuHHKXTI3Gef+tNQmKtcwXDA6S0tm+KpKgkMwZB6AC0rNmGNQsxbGJSORj0NJvy5TVvk6jjsaqg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "^0.52.0", - "@opentelemetry/instrumentation": "^0.52.0" + "@opentelemetry/api-logs": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -2192,78 +2274,83 @@ } }, "node_modules/@opentelemetry/instrumentation-xml-http-request": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-xml-http-request/-/instrumentation-xml-http-request-0.52.1.tgz", - "integrity": "sha512-4a7WpbN+prdyIxoTqCA3m+ZuqQVrksWWeOP5iEyof9yrzEY1NJgM+plrPrzb5nn7U5T7RGkkpvaTPm08qfFu7w==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-xml-http-request/-/instrumentation-xml-http-request-0.57.1.tgz", + "integrity": "sha512-tLKEvSlO/dneD/oG9OrqYwUtbAByHdBy+Awv5QZquZNan0+UnA7QHAWwa/2b6J+swi66NyXdqoqXzdBZulTLvw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/instrumentation": "0.52.1", - "@opentelemetry/sdk-trace-web": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/sdk-trace-web": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/otlp-exporter-base": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.52.1.tgz", - "integrity": "sha512-z175NXOtX5ihdlshtYBe5RpGeBoTXVCKPPLiQlD6FHvpM4Ch+p2B0yWKYSrBfLH24H9zjJiBdTrtD+hLlfnXEQ==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.57.1.tgz", + "integrity": "sha512-GNBJAEYfeiYJQ3O2dvXgiNZ/qjWrBxSb1L1s7iV/jKBRGMN3Nv+miTk2SLeEobF5E5ZK4rVcHKlBZ71bPVIv/g==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/otlp-transformer": "0.52.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-transformer": "0.57.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/otlp-grpc-exporter-base": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.52.1.tgz", - "integrity": "sha512-zo/YrSDmKMjG+vPeA9aBBrsQM9Q/f2zo6N04WMB3yNldJRsgpRBeLLwvAt/Ba7dpehDLOEFBd1i2JCoaFtpCoQ==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.57.1.tgz", + "integrity": "sha512-wWflmkDhH/3wf6yEqPmzmqA6r+A8+LQABfIVZC0jDGtWVJj6eCWcGHU41UxupMbbsgjZRLYtWDilaCHOjmR7gg==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.25.1", - "@opentelemetry/otlp-exporter-base": "0.52.1", - "@opentelemetry/otlp-transformer": "0.52.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/otlp-transformer": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.52.1.tgz", - "integrity": "sha512-I88uCZSZZtVa0XniRqQWKbjAUm73I8tpEy/uJYPPYw5d7BRdVk0RfTBQw8kSUl01oVWEuqxLDa802222MYyWHg==", - "dependencies": { - "@opentelemetry/api-logs": "0.52.1", - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-logs": "0.52.1", - "@opentelemetry/sdk-metrics": "1.25.1", - "@opentelemetry/sdk-trace-base": "1.25.1", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.57.1.tgz", + "integrity": "sha512-EX67y+ukNNfFrOLyjYGw8AMy0JPIlEX1dW60SGUNZWW2hSQyyolX7EqFuHP5LtXLjJHNfzx5SMBVQ3owaQCNDw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-metrics": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", "protobufjs": "^7.3.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.10.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/propagation-utils": { - "version": "0.30.10", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.10.tgz", - "integrity": "sha512-hhTW8pFp9PSyosYzzuUL9rdm7HF97w3OCyElufFHyUnYnKkCBbu8ne2LyF/KSdI/xZ81ubxWZs78hX4S7pLq5g==", + "version": "0.30.15", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.15.tgz", + "integrity": "sha512-nQ30K+eXTkd9Kt8yep9FPrqogS712GvdkV6R1T+xZMSZnFrRCyZuWxMtP3+s3hrK2HWw3ti4lsIfBzsHWYiyrA==", + "license": "Apache-2.0", "engines": { "node": ">=14" }, @@ -2271,26 +2358,13 @@ "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@opentelemetry/propagator-aws-xray": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.25.1.tgz", - "integrity": "sha512-soZQdO9EAROMwa9bL2C0VLadbrfRjSA9t7g6X8sL0X1B8V59pzOayYMyTW9qTECn9uuJV98A7qOnJm6KH6yk8w==", - "dependencies": { - "@opentelemetry/core": "1.25.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" - } - }, "node_modules/@opentelemetry/propagator-b3": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.25.1.tgz", - "integrity": "sha512-p6HFscpjrv7//kE+7L+3Vn00VEDUJB0n6ZrjkTYHrJ58QZ8B3ajSJhRbCcY6guQ3PDjTbxWklyvIN2ojVbIb1A==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.30.1.tgz", + "integrity": "sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1" + "@opentelemetry/core": "1.30.1" }, "engines": { "node": ">=14" @@ -2300,11 +2374,12 @@ } }, "node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.25.1.tgz", - "integrity": "sha512-nBprRf0+jlgxks78G/xq72PipVK+4or9Ypntw0gVZYNTCSK8rg5SeaGV19tV920CMqBD/9UIOiFr23Li/Q8tiA==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.30.1.tgz", + "integrity": "sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1" + "@opentelemetry/core": "1.30.1" }, "engines": { "node": ">=14" @@ -2317,17 +2392,20 @@ "version": "0.36.2", "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz", "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==", + "license": "Apache-2.0", "engines": { "node": ">=14" } }, "node_modules/@opentelemetry/resource-detector-alibaba-cloud": { - "version": "0.28.10", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.28.10.tgz", - "integrity": "sha512-TZv/1Y2QCL6sJ+X9SsPPBXe4786bc/Qsw0hQXFsNTbJzDTGGUmOAlSZ2qPiuqAd4ZheUYfD+QA20IvAjUz9Hhg==", + "version": "0.29.7", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.29.7.tgz", + "integrity": "sha512-PExUl/R+reSQI6Y/eNtgAsk6RHk1ElYSzOa8/FHfdc/nLmx9sqMasBEpLMkETkzDP7t27ORuXe4F9vwkV2uwwg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/resources": "^1.0.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/core": "^1.26.0", + "@opentelemetry/resources": "^1.10.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -2337,13 +2415,14 @@ } }, "node_modules/@opentelemetry/resource-detector-aws": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.5.2.tgz", - "integrity": "sha512-LNwKy5vJM5fvCDcbXVKwg6Y1pKT4WgZUsddGMnWMEhxJcQVZm2Z9vUkyHdQU7xvJtGwCO2/TkMWHPjU1KQNDJQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.10.0.tgz", + "integrity": "sha512-cTF2R6r+m4/vXEZwiAeoIZ3XOPmtQpGrMY4mSltshwKYhZwdJVJOC6l/MWm4cF7hB9+Hp/VRBjJiNw7OgCLbOg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", - "@opentelemetry/resources": "^1.0.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/resources": "^1.10.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -2353,12 +2432,14 @@ } }, "node_modules/@opentelemetry/resource-detector-azure": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.2.9.tgz", - "integrity": "sha512-16Z6kyrmszoa7J1uj1kbSAgZuk11K07yEDj6fa3I9XBf8Debi8y4K8ex94kpxbCfEraWagXji3bCWvaq3k4dRg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.5.0.tgz", + "integrity": "sha512-FKcSmAKBKTD04b0CVQxY+H32Y0sWCUD9U8v1BYXStmwiS9DfQ5Lqr73qcmXvKIs8HXZtxYfHzXZY+BgcPTFKww==", + "license": "Apache-2.0", "dependencies": { + "@opentelemetry/core": "^1.25.1", "@opentelemetry/resources": "^1.10.1", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -2368,12 +2449,14 @@ } }, "node_modules/@opentelemetry/resource-detector-container": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.3.11.tgz", - "integrity": "sha512-22ndMDakxX+nuhAYwqsciexV8/w26JozRUV0FN9kJiqSWtA1b5dCVtlp3J6JivG5t8kDN9UF5efatNnVbqRT9Q==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.5.3.tgz", + "integrity": "sha512-x5DxWu+ZALBuFpxwO2viv9ktH4Y3Gk9LaYKn2U8J+aeD412iy/OcGLPbQ76Px7pQ8qaJ5rnjcevBOHYT4aA+zQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/resources": "^1.0.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "@opentelemetry/core": "^1.26.0", + "@opentelemetry/resources": "^1.10.0", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { "node": ">=14" @@ -2383,13 +2466,14 @@ } }, "node_modules/@opentelemetry/resource-detector-gcp": { - "version": "0.29.10", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.29.10.tgz", - "integrity": "sha512-rm2HKJ9lsdoVvrbmkr9dkOzg3Uk0FksXNxvNBgrCprM1XhMoJwThI5i0h/5sJypISUAJlEeJS6gn6nROj/NpkQ==", + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.32.0.tgz", + "integrity": "sha512-+WdWSG4sZAfsk5DvRj/OUmatsHc+7Rdz8xdmxQdr1jpfUWjcKwOkGA4rondIf2ou/qPLOeYCs6hLLexsRdZaUw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", - "@opentelemetry/resources": "^1.0.0", - "@opentelemetry/semantic-conventions": "^1.22.0", + "@opentelemetry/resources": "^1.10.0", + "@opentelemetry/semantic-conventions": "^1.27.0", "gcp-metadata": "^6.0.0" }, "engines": { @@ -2400,12 +2484,13 @@ } }, "node_modules/@opentelemetry/resources": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", - "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz", + "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -2415,13 +2500,14 @@ } }, "node_modules/@opentelemetry/sdk-logs": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.52.1.tgz", - "integrity": "sha512-MBYh+WcPPsN8YpRHRmK1Hsca9pVlyyKd4BxOC4SsgHACnl/bPp4Cri9hWhVm5+2tiQ9Zf4qSc1Jshw9tOLGWQA==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.57.1.tgz", + "integrity": "sha512-jGdObb/BGWu6Peo3cL3skx/Rl1Ak/wDDO3vpPrrThGbqE7isvkCsX6uE+OAt8Ayjm9YC8UGkohWbLR09JmM0FA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.52.1", - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1" + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1" }, "engines": { "node": ">=14" @@ -2431,13 +2517,13 @@ } }, "node_modules/@opentelemetry/sdk-metrics": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz", - "integrity": "sha512-9Mb7q5ioFL4E4dDrc4wC/A3NTHDat44v4I3p2pLPSxRvqUbDIQyMVr9uK+EU69+HWhlET1VaSrRzwdckWqY15Q==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.30.1.tgz", + "integrity": "sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1", - "lodash.merge": "^4.6.2" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1" }, "engines": { "node": ">=14" @@ -2447,23 +2533,31 @@ } }, "node_modules/@opentelemetry/sdk-node": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.52.1.tgz", - "integrity": "sha512-uEG+gtEr6eKd8CVWeKMhH2olcCHM9dEK68pe0qE0be32BcCRsvYURhHaD1Srngh1SQcnQzZ4TP324euxqtBOJA==", - "dependencies": { - "@opentelemetry/api-logs": "0.52.1", - "@opentelemetry/core": "1.25.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.52.1", - "@opentelemetry/exporter-trace-otlp-http": "0.52.1", - "@opentelemetry/exporter-trace-otlp-proto": "0.52.1", - "@opentelemetry/exporter-zipkin": "1.25.1", - "@opentelemetry/instrumentation": "0.52.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-logs": "0.52.1", - "@opentelemetry/sdk-metrics": "1.25.1", - "@opentelemetry/sdk-trace-base": "1.25.1", - "@opentelemetry/sdk-trace-node": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.57.1.tgz", + "integrity": "sha512-0i25YQCpNiE1RDiaZ6ECO3Hgd6DIJeyHyA2AY9C4szMdZV5cM2m8/nrwK6fyNZdOEjRd54D/FkyP3aqZVIPGvg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/exporter-logs-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-logs-otlp-http": "0.57.1", + "@opentelemetry/exporter-logs-otlp-proto": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-proto": "0.57.1", + "@opentelemetry/exporter-prometheus": "0.57.1", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-trace-otlp-http": "0.57.1", + "@opentelemetry/exporter-trace-otlp-proto": "0.57.1", + "@opentelemetry/exporter-zipkin": "1.30.1", + "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-metrics": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", + "@opentelemetry/sdk-trace-node": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -2473,13 +2567,14 @@ } }, "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", - "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz", + "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -2489,15 +2584,16 @@ } }, "node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.25.1.tgz", - "integrity": "sha512-nMcjFIKxnFqoez4gUmihdBrbpsEnAX/Xj16sGvZm+guceYE0NE00vLhpDVK6f3q8Q4VFI5xG8JjlXKMB/SkTTQ==", - "dependencies": { - "@opentelemetry/context-async-hooks": "1.25.1", - "@opentelemetry/core": "1.25.1", - "@opentelemetry/propagator-b3": "1.25.1", - "@opentelemetry/propagator-jaeger": "1.25.1", - "@opentelemetry/sdk-trace-base": "1.25.1", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.30.1.tgz", + "integrity": "sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/context-async-hooks": "1.30.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/propagator-b3": "1.30.1", + "@opentelemetry/propagator-jaeger": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", "semver": "^7.5.2" }, "engines": { @@ -2508,13 +2604,14 @@ } }, "node_modules/@opentelemetry/sdk-trace-web": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.25.1.tgz", - "integrity": "sha512-SS6JaSkHngcBCNdWGthzcvaKGRnDw2AeP57HyTEileLToJ7WLMeV+064iRlVyoT4+e77MRp2T2dDSrmaUyxoNg==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.30.1.tgz", + "integrity": "sha512-AUo2e+1uyTGMB36VlbvBqnCogVzQhpC7dRcVVdCrt+cFHLpFRRJcd45J2obGTgs0XiAwNLyq5bhkW3JF2NZA+A==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/sdk-trace-base": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -2524,9 +2621,10 @@ } }, "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", - "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "license": "Apache-2.0", "engines": { "node": ">=14" } @@ -2535,6 +2633,7 @@ "version": "0.40.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz", "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.1.0" }, @@ -2545,43 +2644,35 @@ "@opentelemetry/api": "^1.1.0" } }, - "node_modules/@protobuf-ts/runtime": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.4.tgz", - "integrity": "sha512-vHRFWtJJB/SiogWDF0ypoKfRIZ41Kq+G9cEFj6Qm1eQaAhJ1LDFvgZ7Ja4tb3iLOQhz0PaoPnnOijF1qmEqTxg==" - }, - "node_modules/@protobuf-ts/runtime-rpc": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime-rpc/-/runtime-rpc-2.9.4.tgz", - "integrity": "sha512-y9L9JgnZxXFqH5vD4d7j9duWvIJ7AShyBRoNKJGhu9Q27qIbchfzli66H9RvrQNIFk5ER7z1Twe059WZGqERcA==", - "dependencies": { - "@protobuf-ts/runtime": "^2.9.4" - } - }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -2590,33 +2681,39 @@ "node_modules/@protobufjs/float": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" }, "node_modules/@redocly/ajv": { "version": "8.11.2", "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz", "integrity": "sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -2629,19 +2726,21 @@ } }, "node_modules/@redocly/config": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.17.1.tgz", - "integrity": "sha512-CEmvaJuG7pm2ylQg53emPmtgm4nW2nxBgwXzbVEHpGas/lGnMyN8Zlkgiz6rPw0unASg6VW3wlz27SOL5XFHYQ==", - "dev": true + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.20.1.tgz", + "integrity": "sha512-TYiTDtuItiv95YMsrRxyCs1HKLrDPtTvpaD3+kDKXBnFDeJuYKZ+eHXpCr6YeN4inxfVBs7DLhHsQcs9srddyQ==", + "dev": true, + "license": "MIT" }, "node_modules/@redocly/openapi-core": { - "version": "1.27.1", - "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.27.1.tgz", - "integrity": "sha512-zQ47/A+Drk2Y75/af69MD3Oad4H9LxkUDzcm7XBkyLNDKIWQrDKDnS5476oDq77+zciymNxgMVtxxVXlnGS8kw==", + "version": "1.27.2", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.27.2.tgz", + "integrity": "sha512-qVrDc27DHpeO2NRCMeRdb4299nijKQE3BY0wrA+WUHlOLScorIi/y7JzammLk22IaTvjR9Mv9aTAdjE1aUwJnA==", "dev": true, + "license": "MIT", "dependencies": { "@redocly/ajv": "^8.11.2", - "@redocly/config": "^0.17.0", + "@redocly/config": "^0.20.1", "colorette": "^1.2.0", "https-proxy-agent": "^7.0.4", "js-levenshtein": "^1.1.6", @@ -2656,26 +2755,19 @@ "npm": ">=7.0.0" } }, - "node_modules/@redocly/openapi-core/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/@redocly/openapi-core/node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@redocly/openapi-core/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -2687,72 +2779,68 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@rushstack/eslint-patch": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.5.tgz", "integrity": "sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" }, "node_modules/@swc/helpers": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", - "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", "dependencies": { - "@swc/counter": "^0.1.3", - "tslib": "^2.4.0" + "tslib": "^2.8.0" } }, "node_modules/@tanstack/query-core": { - "version": "4.36.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz", - "integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==", + "version": "5.64.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.64.1.tgz", + "integrity": "sha512-978Wx4Wl4UJZbmvU/rkaM9cQtXXrbhK0lsz/UZhYIbyKYA8E4LdomTwyh2GHZ4oU0BKKoDH4YlKk2VscCUgNmg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tanstack/react-query": { - "version": "4.36.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz", - "integrity": "sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==", + "version": "5.64.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.64.1.tgz", + "integrity": "sha512-vW5ggHpIO2Yjj44b4sB+Fd3cdnlMJppXRBJkEHvld6FXh3j5dwWJoQo7mGtKI2RbSFyiyu/PhGAy0+Vv5ev9Eg==", + "license": "MIT", "dependencies": { - "@tanstack/query-core": "4.36.1", - "use-sync-external-store": "^1.2.0" + "@tanstack/query-core": "5.64.1" }, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-native": "*" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "react": "^18 || ^19" } }, "node_modules/@types/aws-lambda": { - "version": "8.10.122", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.122.tgz", - "integrity": "sha512-vBkIh9AY22kVOCEKo5CJlyCgmSWvasC+SWUxL/x/vOwRobMpI/HG1xp/Ae3AqmSiZeLUbOhW0FCD3ZjqqUxmXw==" + "version": "8.10.143", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.143.tgz", + "integrity": "sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==", + "license": "MIT" }, "node_modules/@types/bunyan": { "version": "1.8.9", "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.9.tgz", "integrity": "sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -2761,26 +2849,24 @@ "version": "3.4.36", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" - }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", + "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", "dev": true, + "license": "MIT", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -2797,20 +2883,23 @@ "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/memcached": { "version": "2.2.10", "resolved": "https://registry.npmjs.org/@types/memcached/-/memcached-2.2.10.tgz", "integrity": "sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/mysql": { - "version": "2.15.22", - "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.22.tgz", - "integrity": "sha512-wK1pzsJVVAjYCSZWQoWHziQZbNggXFDUEIGf54g4ZM/ERuP86uGdWeKZWMYlqTPMZfHJJvLPyogXGvCOg87yLQ==", + "version": "2.15.26", + "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz", + "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -2828,6 +2917,7 @@ "version": "8.6.1", "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", + "license": "MIT", "dependencies": { "@types/node": "*", "pg-protocol": "*", @@ -2835,60 +2925,60 @@ } }, "node_modules/@types/pg-pool": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.4.tgz", - "integrity": "sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz", + "integrity": "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==", + "license": "MIT", "dependencies": { "@types/pg": "*" } }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "dev": true - }, "node_modules/@types/react": { - "version": "18.3.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", - "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.7.tgz", + "integrity": "sha512-MoFsEJKkAtZCrC1r6CM8U22GzhG7u2Wir8ons/aCKH6MBdD1ibV24zOSSkdZVUKqN5i396zG5VKLYZ3yaUZdLA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz", + "integrity": "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==", "dev": true, - "dependencies": { - "@types/react": "*" + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" } }, "node_modules/@types/shimmer": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", - "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" + "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==", + "license": "MIT" }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/sizzle": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", - "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", - "dev": true + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.9.tgz", + "integrity": "sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==", + "dev": true, + "license": "MIT" }, "node_modules/@types/styled-components": { "version": "5.1.34", "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.34.tgz", "integrity": "sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hoist-non-react-statics": "*", "@types/react": "*", @@ -2898,12 +2988,14 @@ "node_modules/@types/stylis": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", - "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==" + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==", + "license": "MIT" }, "node_modules/@types/tedious": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz", "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -2912,13 +3004,15 @@ "version": "10.0.0", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/yauzl": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "@types/node": "*" @@ -3062,32 +3156,6 @@ "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -3160,6 +3228,7 @@ "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3171,6 +3240,7 @@ "version": "1.9.5", "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "license": "MIT", "peerDependencies": { "acorn": "^8" } @@ -3180,17 +3250,16 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dependencies": { - "debug": "^4.3.4" - }, + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "license": "MIT", "engines": { "node": ">= 14" } @@ -3200,6 +3269,7 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -3212,6 +3282,7 @@ "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -3228,6 +3299,7 @@ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3237,6 +3309,7 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -3247,22 +3320,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -3271,6 +3333,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3299,19 +3362,22 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/aria-query": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -3321,6 +3387,7 @@ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" @@ -3337,6 +3404,7 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -3357,6 +3425,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -3377,6 +3446,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -3393,15 +3463,16 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3415,6 +3486,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -3433,6 +3505,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -3449,6 +3522,7 @@ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", @@ -3470,6 +3544,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": "~2.1.0" } @@ -3479,6 +3554,7 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } @@ -3487,34 +3563,49 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 4.0.0" } @@ -3523,6 +3614,8 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -3538,6 +3631,7 @@ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "*" } @@ -3546,13 +3640,15 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/axe-core": { "version": "4.10.2", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", "dev": true, + "license": "MPL-2.0", "engines": { "node": ">=4" } @@ -3562,6 +3658,7 @@ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -3570,7 +3667,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -3590,13 +3688,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tweetnacl": "^0.14.3" } @@ -3605,6 +3705,7 @@ "version": "9.1.2", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", "engines": { "node": "*" } @@ -3613,22 +3714,24 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -3636,6 +3739,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -3662,6 +3766,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -3672,6 +3777,7 @@ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -3692,6 +3798,7 @@ "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3700,6 +3807,8 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", @@ -3717,6 +3826,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" @@ -3729,6 +3840,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", "get-intrinsic": "^1.2.6" @@ -3745,6 +3858,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3753,14 +3867,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001610", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001610.tgz", - "integrity": "sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==", + "version": "1.0.30001695", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", "funding": [ { "type": "opencollective", @@ -3774,12 +3889,14 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/case-anything": { "version": "2.1.13", "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz", "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==", + "license": "MIT", "engines": { "node": ">=12.13" }, @@ -3791,13 +3908,15 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3814,6 +3933,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3825,13 +3945,15 @@ "version": "5.4.4", "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -3847,20 +3969,23 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cjs-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "license": "MIT" }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3870,6 +3995,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -3878,10 +4004,11 @@ } }, "node_modules/cli-table3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", - "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -3897,6 +4024,7 @@ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" @@ -3911,12 +4039,14 @@ "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -3930,6 +4060,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" @@ -3942,6 +4073,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -3952,12 +4084,14 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/color-string": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -3967,13 +4101,15 @@ "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -3986,6 +4122,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } @@ -3995,6 +4132,7 @@ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -4003,36 +4141,44 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=18" } }, "node_modules/cookies-next": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-4.2.1.tgz", - "integrity": "sha512-qsjtZ8TLlxCSX2JphMQNhkm3V3zIMQ05WrLkBKBwu50npBbBfiZWIdmSMzBGcdGKfMK19E0PIitTfRFAdMGHXg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-5.1.0.tgz", + "integrity": "sha512-9Ekne+q8hfziJtnT9c1yDUBqT0eDMGgPrfPl4bpR3xwQHLTd/8gbSf6+IEkP/pjGsDZt1TGbC6emYmFYRbIXwQ==", + "license": "MIT", "dependencies": { - "@types/cookie": "^0.6.0", - "cookie": "^0.6.0" + "cookie": "^1.0.1" + }, + "peerDependencies": { + "next": ">=15.0.0", + "react": ">= 16.8.0" } }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4046,6 +4192,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", "engines": { "node": ">=4" } @@ -4054,6 +4201,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", "dependencies": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", @@ -4063,12 +4211,14 @@ "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" }, "node_modules/currency-symbol-map": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/currency-symbol-map/-/currency-symbol-map-5.1.0.tgz", - "integrity": "sha512-LO/lzYRw134LMDVnLyAf1dHE5tyO6axEFkR3TXjQIOmMkAM9YL6QsiUwuXzZAmFnuDJcs4hayOgyIYtViXFrLw==" + "integrity": "sha512-LO/lzYRw134LMDVnLyAf1dHE5tyO6axEFkR3TXjQIOmMkAM9YL6QsiUwuXzZAmFnuDJcs4hayOgyIYtViXFrLw==", + "license": "BSD-2-Clause" }, "node_modules/cypress": { "version": "14.0.0", @@ -4133,13 +4283,15 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" }, @@ -4152,6 +4304,7 @@ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -4169,6 +4322,7 @@ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -4186,6 +4340,7 @@ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -4199,17 +4354,19 @@ } }, "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", - "dev": true + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "dev": true, + "license": "MIT" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -4224,12 +4381,15 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -4247,6 +4407,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -4264,6 +4425,7 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -4272,6 +4434,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", "engines": { "node": ">=8" } @@ -4281,6 +4444,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -4289,9 +4453,10 @@ } }, "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -4300,11 +4465,12 @@ } }, "node_modules/dotenv-expand": { - "version": "11.0.6", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz", - "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-12.0.1.tgz", + "integrity": "sha512-LaKRbou8gt0RNID/9RoI+J2rvXsBRPMV7p+ElHlPhcSARbCPDYcYG2s1TIzAfWv4YSgyY5taidWzzs31lNV3yQ==", + "license": "BSD-2-Clause", "dependencies": { - "dotenv": "^16.4.4" + "dotenv": "^16.4.5" }, "engines": { "node": ">=12" @@ -4317,6 +4483,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.8.tgz", "integrity": "sha512-iVKnUtYfGrYcW1ZAlfR/F59cUVL8QIhWoBJoSjkkdua/dkWIgjZfiLMeTjiB06X0ZLkQ0M2C1VbUj/CxkIf1zg==", + "license": "MIT", "dependencies": { "detect-libc": "^1.0.3" } @@ -4325,6 +4492,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -4336,6 +4504,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", @@ -4350,6 +4520,7 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, + "license": "MIT", "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -4359,13 +4530,15 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, + "license": "MIT", "dependencies": { "once": "^1.4.0" } @@ -4375,6 +4548,7 @@ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -4388,6 +4562,7 @@ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" @@ -4401,6 +4576,7 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", @@ -4465,6 +4641,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -4473,6 +4651,8 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -4482,6 +4662,7 @@ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -4505,9 +4686,11 @@ } }, "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -4520,6 +4703,7 @@ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", @@ -4535,6 +4719,7 @@ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" } @@ -4544,6 +4729,7 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", @@ -4557,9 +4743,10 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -4569,6 +4756,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -4669,6 +4857,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -4680,6 +4869,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -4689,6 +4879,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.7.0.tgz", "integrity": "sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==", "dev": true, + "license": "ISC", "dependencies": { "@nolyfill/is-core-module": "1.0.39", "debug": "^4.3.7", @@ -4719,34 +4910,12 @@ } } }, - "node_modules/eslint-import-resolver-typescript/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/eslint-import-resolver-typescript/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, "node_modules/eslint-module-utils": { "version": "2.12.0", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -4764,6 +4933,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -4773,6 +4943,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, + "license": "MIT", "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.8", @@ -4801,20 +4972,46 @@ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -4824,6 +5021,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, + "license": "MIT", "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", @@ -4848,6 +5046,30 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-react": { "version": "7.37.4", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", @@ -4886,6 +5108,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -4893,11 +5116,36 @@ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, + "node_modules/eslint-plugin-react/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -4915,6 +5163,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -4924,6 +5173,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -4940,6 +5190,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4952,6 +5203,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4963,11 +5215,23 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -4979,13 +5243,28 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, "node_modules/espree": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", @@ -5003,6 +5282,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -5011,10 +5291,11 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -5027,6 +5308,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -5039,6 +5321,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -5048,6 +5331,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -5056,13 +5340,15 @@ "version": "6.4.7", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", @@ -5086,6 +5372,7 @@ "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^2.2.0" }, @@ -5096,13 +5383,15 @@ "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -5125,24 +5414,27 @@ "dev": true, "engines": [ "node >=0.6.0" - ] + ], + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -5153,6 +5445,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -5164,24 +5457,38 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==" + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -5191,6 +5498,7 @@ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, + "license": "MIT", "dependencies": { "pend": "~1.2.0" } @@ -5200,6 +5508,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -5215,6 +5524,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -5224,6 +5534,7 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, @@ -5236,6 +5547,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -5248,6 +5560,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -5264,6 +5577,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -5276,12 +5590,15 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } @@ -5291,6 +5608,7 @@ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "*" } @@ -5300,6 +5618,7 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -5309,11 +5628,18 @@ "node": ">= 6" } }, + "node_modules/forwarded-parse": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/forwarded-parse/-/forwarded-parse-2.1.2.tgz", + "integrity": "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==", + "license": "MIT" + }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -5328,6 +5654,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5337,6 +5664,7 @@ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -5357,29 +5685,45 @@ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gaxios": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.0.tgz", - "integrity": "sha512-DSrkyMTfAnAm4ks9Go20QGOcXEyW/NmZhvTYBU2rb4afBB393WIMQPWPEDMl/k8xqiNN9HYq2zao3oWXsdl2Tg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "license": "Apache-2.0", "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^7.0.1", "is-stream": "^2.0.0", "node-fetch": "^2.6.9", - "uuid": "^10.0.0" + "uuid": "^9.0.1" }, "engines": { "node": ">=14" } }, + "node_modules/gaxios/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/gcp-metadata": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz", "integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==", + "license": "Apache-2.0", "dependencies": { "gaxios": "^6.0.0", "json-bigint": "^1.0.0" @@ -5392,6 +5736,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -5400,6 +5745,8 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-define-property": "^1.0.1", @@ -5423,6 +5770,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" @@ -5436,6 +5785,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -5451,6 +5801,7 @@ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -5464,10 +5815,11 @@ } }, "node_modules/get-tsconfig": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", - "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", "dev": true, + "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -5480,6 +5832,7 @@ "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", "dev": true, + "license": "MIT", "dependencies": { "async": "^3.2.0" } @@ -5489,6 +5842,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" } @@ -5498,6 +5852,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -5510,6 +5865,7 @@ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dev": true, + "license": "MIT", "dependencies": { "ini": "2.0.0" }, @@ -5525,6 +5881,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -5537,6 +5894,7 @@ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" @@ -5552,6 +5910,8 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5562,19 +5922,26 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5584,6 +5951,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -5592,6 +5960,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -5604,6 +5974,7 @@ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.0" }, @@ -5618,6 +5989,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5629,6 +6002,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -5643,6 +6018,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -5655,6 +6031,7 @@ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } @@ -5664,6 +6041,7 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz", "integrity": "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==", "dev": true, + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", @@ -5674,11 +6052,12 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -5690,6 +6069,7 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8.12.0" } @@ -5712,13 +6092,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -5728,6 +6110,7 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -5740,9 +6123,10 @@ } }, "node_modules/import-in-the-middle": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.9.0.tgz", - "integrity": "sha512-Ng1SJINJDBzyUEkx9Mj32XD8G0TQCUb5TMoL9V91CTn6F3wYZLygLuhNFrv0cNMBZaeptnL1zecV6XrIdHJ+xQ==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.12.0.tgz", + "integrity": "sha512-yAgSE7GmtRcu4ZUSFX/4v69UGXwugFFSdIQJ14LHPOPPQrWv8Y7O9PHsw8Ovk7bKCLe4sjXMbZFqGFcLHpZ89w==", + "license": "Apache-2.0", "dependencies": { "acorn": "^8.8.2", "acorn-import-attributes": "^1.9.5", @@ -5754,6 +6138,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -5763,6 +6148,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -5772,6 +6158,7 @@ "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -5779,16 +6166,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, "node_modules/ini": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -5798,6 +6181,7 @@ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", @@ -5807,26 +6191,12 @@ "node": ">= 0.4" } }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -5842,14 +6212,17 @@ "node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" }, "node_modules/is-async-function": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", - "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, + "license": "MIT", "dependencies": { + "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", @@ -5867,6 +6240,7 @@ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.2" }, @@ -5882,6 +6256,7 @@ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -5898,6 +6273,7 @@ "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.6.3" } @@ -5907,6 +6283,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -5918,6 +6295,8 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5929,6 +6308,7 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -5944,6 +6324,7 @@ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", @@ -5961,6 +6342,7 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -5977,6 +6359,7 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5986,6 +6369,7 @@ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -6000,16 +6384,22 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -6023,6 +6413,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -6035,6 +6426,7 @@ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, + "license": "MIT", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -6051,6 +6443,7 @@ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6063,6 +6456,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -6072,6 +6466,7 @@ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -6088,6 +6483,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6097,6 +6493,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", @@ -6115,6 +6512,7 @@ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6127,6 +6525,7 @@ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -6141,6 +6540,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -6153,6 +6553,7 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -6169,6 +6570,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", @@ -6185,6 +6587,8 @@ "version": "1.1.15", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.16" }, @@ -6199,13 +6603,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6218,6 +6624,7 @@ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6230,6 +6637,7 @@ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2" }, @@ -6245,6 +6653,7 @@ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" @@ -6260,25 +6669,29 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/iterator.prototype": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", @@ -6296,6 +6709,7 @@ "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6303,13 +6717,16 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -6321,12 +6738,14 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-bigint": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", "dependencies": { "bignumber.js": "^9.0.0" } @@ -6335,12 +6754,14 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-logic-engine": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/json-logic-engine/-/json-logic-engine-1.3.4.tgz", - "integrity": "sha512-p+WXFVTDWjZiM45+H2MSnAz984PPt2QampUGeMmgxWllsJjF8j8ucA3llmbL0xJkkV/7uj4MhhgJIYZ1MbkGiA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/json-logic-engine/-/json-logic-engine-4.0.2.tgz", + "integrity": "sha512-LvKZcgQ1c2fZ0/wl+mjnerllVWdKSR2y24AQjy0bnVgOg3ZqQBTbCeMmmn518F+GhdAc1VOXHbyOAf7rQy6qRA==", + "license": "MIT", "engines": { "node": ">=12.22.7" } @@ -6349,30 +6770,35 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -6385,6 +6811,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -6400,6 +6827,7 @@ "engines": [ "node >=0.6.0" ], + "license": "MIT", "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -6412,6 +6840,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -6427,6 +6856,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -6435,13 +6865,15 @@ "version": "0.3.23", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/language-tags": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dev": true, + "license": "MIT", "dependencies": { "language-subtag-registry": "^0.3.20" }, @@ -6454,6 +6886,7 @@ "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", "dev": true, + "license": "MIT", "engines": { "node": "> 0.8" } @@ -6463,6 +6896,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -6476,6 +6910,7 @@ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^2.1.0", "colorette": "^2.0.16", @@ -6503,6 +6938,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -6517,29 +6953,35 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -6556,6 +6998,7 @@ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", @@ -6574,6 +7017,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -6591,6 +7035,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -6601,14 +7046,17 @@ } }, "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", + "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==", + "license": "Apache-2.0" }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -6617,17 +7065,20 @@ } }, "node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "license": "ISC", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -6636,24 +7087,27 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -6665,6 +7119,7 @@ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6674,6 +7129,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -6686,20 +7142,25 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { @@ -6707,6 +7168,7 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6714,23 +7176,26 @@ "node_modules/module-details-from-path": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" + "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", + "license": "MIT" }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -6742,43 +7207,46 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/next": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.5.tgz", - "integrity": "sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/next/-/next-15.1.4.tgz", + "integrity": "sha512-mTaq9dwaSuwwOrcu3ebjDYObekkxRnXpuVL21zotM8qE2W0HBOdVIdg2Li9QjMEZrj73LN96LcWcz62V19FjAg==", + "license": "MIT", "dependencies": { - "@next/env": "14.2.5", - "@swc/helpers": "0.5.5", + "@next/env": "15.1.4", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.15", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", - "graceful-fs": "^4.2.11", "postcss": "8.4.31", - "styled-jsx": "5.1.1" + "styled-jsx": "5.1.6" }, "bin": { "next": "dist/bin/next" }, "engines": { - "node": ">=18.17.0" + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.5", - "@next/swc-darwin-x64": "14.2.5", - "@next/swc-linux-arm64-gnu": "14.2.5", - "@next/swc-linux-arm64-musl": "14.2.5", - "@next/swc-linux-x64-gnu": "14.2.5", - "@next/swc-linux-x64-musl": "14.2.5", - "@next/swc-win32-arm64-msvc": "14.2.5", - "@next/swc-win32-ia32-msvc": "14.2.5", - "@next/swc-win32-x64-msvc": "14.2.5" + "@next/swc-darwin-arm64": "15.1.4", + "@next/swc-darwin-x64": "15.1.4", + "@next/swc-linux-arm64-gnu": "15.1.4", + "@next/swc-linux-arm64-musl": "15.1.4", + "@next/swc-linux-x64-gnu": "15.1.4", + "@next/swc-linux-x64-musl": "15.1.4", + "@next/swc-win32-arm64-msvc": "15.1.4", + "@next/swc-win32-x64-msvc": "15.1.4", + "sharp": "^0.33.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.41.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "peerDependenciesMeta": { @@ -6788,6 +7256,9 @@ "@playwright/test": { "optional": true }, + "babel-plugin-react-compiler": { + "optional": true + }, "sass": { "optional": true } @@ -6797,6 +7268,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -6817,6 +7289,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -6829,6 +7302,7 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6837,6 +7311,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -6846,6 +7321,7 @@ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6858,6 +7334,7 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -6867,6 +7344,7 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -6887,6 +7365,7 @@ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -6901,6 +7380,7 @@ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -6919,6 +7399,7 @@ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -6933,6 +7414,7 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -6951,6 +7433,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -6960,6 +7443,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -6975,6 +7459,7 @@ "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.5.2.tgz", "integrity": "sha512-W/QXuQz0Fa3bGY6LKoqTCgrSX+xI/ST+E5RXo2WBmp3WwgXCWKDJPHv5GZmElF4yLCccnqYsakBDOJikHZYGRw==", "dev": true, + "license": "MIT", "dependencies": { "@redocly/openapi-core": "^1.27.0", "ansi-colors": "^4.1.3", @@ -6995,6 +7480,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7003,17 +7489,18 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -7023,13 +7510,15 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", @@ -7047,6 +7536,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -7062,6 +7552,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -7077,6 +7568,7 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -7092,6 +7584,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -7104,6 +7597,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.13", "index-to-position": "^0.1.2", @@ -7116,11 +7610,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-json/node_modules/type-fest": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.33.0.tgz", + "integrity": "sha512-s6zVrxuyKbbAsSAD5ZPTB77q4YIdRctkTbJ2/Dqlinwz+8ooH2gd+YA7VA6Pa93KML9GockVvoxjZ2vHP+mu8g==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7130,6 +7638,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7137,37 +7646,43 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pg-int8": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", "engines": { "node": ">=4.0.0" } }, "node_modules/pg-protocol": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", - "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz", + "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==", + "license": "MIT" }, "node_modules/pg-types": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", @@ -7180,15 +7695,17 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -7201,6 +7718,7 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7210,6 +7728,7 @@ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -7218,6 +7737,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -7240,6 +7761,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -7252,12 +7774,14 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" }, "node_modules/postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", "engines": { "node": ">=4" } @@ -7266,6 +7790,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7274,6 +7799,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7282,6 +7808,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", "dependencies": { "xtend": "^4.0.0" }, @@ -7294,6 +7821,7 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -7303,6 +7831,7 @@ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -7315,6 +7844,7 @@ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } @@ -7324,6 +7854,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -7331,10 +7862,11 @@ } }, "node_modules/protobufjs": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.0.tgz", - "integrity": "sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -7357,13 +7889,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -7374,6 +7908,7 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -7383,6 +7918,7 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.6" }, @@ -7411,42 +7947,43 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.0.0" } }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -7469,6 +8006,7 @@ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -7489,6 +8027,7 @@ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", "dev": true, + "license": "MIT", "dependencies": { "throttleit": "^1.0.0" } @@ -7497,6 +8036,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7505,35 +8045,41 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-in-the-middle": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.3.0.tgz", - "integrity": "sha512-nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz", + "integrity": "sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==", + "license": "MIT", "dependencies": { - "debug": "^4.1.1", + "debug": "^4.3.5", "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" + "resolve": "^1.22.8" }, "engines": { "node": ">=8.6.0" } }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7543,6 +8089,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -7552,6 +8099,7 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -7561,6 +8109,7 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -7574,16 +8123,18 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", - "dev": true + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" }, "node_modules/run-parallel": { "version": "1.2.0", @@ -7604,6 +8155,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -7613,6 +8165,7 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } @@ -7622,6 +8175,7 @@ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -7654,13 +8208,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" @@ -7677,6 +8233,7 @@ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -7693,20 +8250,20 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" }, "node_modules/semver": { "version": "7.5.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7721,6 +8278,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7732,6 +8290,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -7749,6 +8309,7 @@ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -7764,6 +8325,7 @@ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", @@ -7776,65 +8338,53 @@ "node_modules/shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" }, "node_modules/sharp": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.4.tgz", - "integrity": "sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", - "semver": "^7.6.0" + "semver": "^7.6.3" }, "engines": { - "libvips": ">=8.15.2", "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.33.4", - "@img/sharp-darwin-x64": "0.33.4", - "@img/sharp-libvips-darwin-arm64": "1.0.2", - "@img/sharp-libvips-darwin-x64": "1.0.2", - "@img/sharp-libvips-linux-arm": "1.0.2", - "@img/sharp-libvips-linux-arm64": "1.0.2", - "@img/sharp-libvips-linux-s390x": "1.0.2", - "@img/sharp-libvips-linux-x64": "1.0.2", - "@img/sharp-libvips-linuxmusl-arm64": "1.0.2", - "@img/sharp-libvips-linuxmusl-x64": "1.0.2", - "@img/sharp-linux-arm": "0.33.4", - "@img/sharp-linux-arm64": "0.33.4", - "@img/sharp-linux-s390x": "0.33.4", - "@img/sharp-linux-x64": "0.33.4", - "@img/sharp-linuxmusl-arm64": "0.33.4", - "@img/sharp-linuxmusl-x64": "0.33.4", - "@img/sharp-wasm32": "0.33.4", - "@img/sharp-win32-ia32": "0.33.4", - "@img/sharp-win32-x64": "0.33.4" - } - }, - "node_modules/sharp/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" } }, "node_modules/sharp/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -7847,6 +8397,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -7859,6 +8410,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7866,13 +8418,15 @@ "node_modules/shimmer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", + "license": "BSD-2-Clause" }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", @@ -7892,6 +8446,7 @@ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" @@ -7908,6 +8463,7 @@ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -7926,6 +8482,7 @@ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -7944,12 +8501,14 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } @@ -7959,6 +8518,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -7969,9 +8529,10 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -7981,6 +8542,7 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, + "license": "MIT", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -8005,7 +8567,8 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.4.tgz", "integrity": "sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/streamsearch": { "version": "1.1.0", @@ -8019,6 +8582,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8031,13 +8595,15 @@ "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/string.prototype.includes": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -8052,6 +8618,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -8079,6 +8646,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" @@ -8089,6 +8657,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -8110,6 +8679,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -8128,6 +8698,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -8144,6 +8715,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8156,6 +8728,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -8165,6 +8738,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -8174,6 +8748,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -8182,9 +8757,10 @@ } }, "node_modules/styled-components": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.11.tgz", - "integrity": "sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==", + "version": "6.1.14", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.14.tgz", + "integrity": "sha512-KtfwhU5jw7UoxdM0g6XU9VZQFV4do+KrM8idiVCH5h4v49W+3p3yMe0icYwJgZQZepa5DbH04Qv8P0/RdcLcgg==", + "license": "MIT", "dependencies": { "@emotion/is-prop-valid": "1.2.2", "@emotion/unitless": "0.8.1", @@ -8226,6 +8802,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -8235,10 +8812,17 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/styled-components/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "license": "0BSD" + }, "node_modules/styled-jsx": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", - "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", "dependencies": { "client-only": "0.0.1" }, @@ -8246,7 +8830,7 @@ "node": ">= 12.0.0" }, "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" }, "peerDependenciesMeta": { "@babel/core": { @@ -8260,13 +8844,15 @@ "node_modules/stylis": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", - "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", + "license": "MIT" }, "node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -8281,6 +8867,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8293,6 +8880,7 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -8302,6 +8890,7 @@ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -8310,31 +8899,35 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tldts": { - "version": "6.1.71", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.71.tgz", - "integrity": "sha512-LQIHmHnuzfZgZWAf2HzL83TIIrD8NhhI0DVxqo9/FdOd4ilec+NTNZOlDZf7EwrTNoutccbsHjvWHYXLAtvxjw==", + "version": "6.1.74", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.74.tgz", + "integrity": "sha512-O5vTZ1UmmEmrLl/59U9igitnSMlprALLaLgbv//dEvjobPT9vyURhHXKMCDLEhn3qxZFIkb9PwAfNYV0Ol7RPQ==", "dev": true, + "license": "MIT", "dependencies": { - "tldts-core": "^6.1.71" + "tldts-core": "^6.1.74" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "6.1.71", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.71.tgz", - "integrity": "sha512-LRbChn2YRpic1KxY+ldL1pGXN/oVvKfCVufwfVzEQdFYNo39uF7AJa/WXdo+gYO7PTvdfkCPCed6Hkvz/kR7jg==", - "dev": true + "version": "6.1.74", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.74.tgz", + "integrity": "sha512-gTwtY6L2GfuxiL4CWpLknv9JDYYqBvKCk/BT5uAaAvCA0s6pzX7lr2IrkQZSUlnSjRHIjTl8ZwKCVXJ7XNRWYw==", + "dev": true, + "license": "MIT" }, "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.14" } @@ -8344,6 +8937,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -8352,10 +8946,11 @@ } }, "node_modules/tough-cookie": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", - "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.0.tgz", + "integrity": "sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tldts": "^6.1.32" }, @@ -8366,13 +8961,15 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, + "license": "MIT", "bin": { "tree-kill": "cli.js" } @@ -8382,6 +8979,7 @@ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18.12" }, @@ -8390,9 +8988,10 @@ } }, "node_modules/ts-poet": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.8.1.tgz", - "integrity": "sha512-uqdjJGnQQjBwUeJggUi4o8VhRjUmEdRfo+uqEL+K8w7mKPfLUFAQ1dSURyhFfbA4T/cWPh8Xa7iBgO7jJNsc1A==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.9.0.tgz", + "integrity": "sha512-roe6W6MeZmCjRmppyfOURklO5tQFQ6Sg7swURKkwYJvV7dbGCrK28um5+51iW3twdPRKtwarqFAVMU6G1mvnuQ==", + "license": "Apache-2.0", "dependencies": { "dprint-node": "^1.0.8" } @@ -8401,6 +9000,7 @@ "version": "1.181.1", "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.181.1.tgz", "integrity": "sha512-lNmd/KEgqWtwDG9mIM3EpcxBx+URRVHkDP/EEJBgQJaQwmZFTk6VjHg56HNQswd114yXGfF+8pKQvJ2iH9KfWw==", + "license": "ISC", "dependencies": { "case-anything": "^2.1.13", "protobufjs": "^7.2.4", @@ -8415,6 +9015,7 @@ "version": "1.16.0", "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.16.0.tgz", "integrity": "sha512-3yKuzMLpltdpcyQji1PJZRfoo4OJjNieKTYkQY8pF7xGKsYz/RHe3aEe4KiRxcinoBmnEhmuI+yJTxLb922ULA==", + "license": "ISC", "dependencies": { "long": "^5.2.3", "protobufjs": "^7.2.4" @@ -8425,6 +9026,7 @@ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -8433,15 +9035,17 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -8453,13 +9057,15 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true + "dev": true, + "license": "Unlicense" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -8468,12 +9074,13 @@ } }, "node_modules/type-fest": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.21.0.tgz", - "integrity": "sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8484,6 +9091,7 @@ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -8498,6 +9106,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -8517,6 +9126,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -8538,6 +9148,7 @@ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -8572,6 +9183,7 @@ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -8588,13 +9200,15 @@ "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -8604,6 +9218,7 @@ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8613,6 +9228,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -8621,38 +9237,20 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/uri-js-replace/-/uri-js-replace-1.0.1.tgz", "integrity": "sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==", - "dev": true - }, - "node_modules/use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } + "dev": true, + "license": "MIT" }, "node_modules/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", + "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/verror": { @@ -8663,6 +9261,7 @@ "engines": [ "node >=0.6.0" ], + "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -8672,12 +9271,14 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -8688,6 +9289,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -8703,6 +9305,7 @@ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -8722,6 +9325,7 @@ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -8749,6 +9353,7 @@ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -8766,6 +9371,8 @@ "version": "1.1.18", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -8781,10 +9388,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8801,12 +9419,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", "engines": { "node": ">=0.4" } @@ -8815,6 +9435,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } @@ -8822,18 +9443,21 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/yaml-ast-parser": { "version": "0.0.43", "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -8851,6 +9475,7 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -8860,6 +9485,7 @@ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -8870,6 +9496,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -8878,12 +9505,10 @@ } }, "node_modules/zone.js": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz", - "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==", - "dependencies": { - "tslib": "^2.0.0" - } + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz", + "integrity": "sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==", + "license": "MIT" } } } diff --git a/src/frontend/package.json b/src/frontend/package.json index 7992f8349e..b13a0b5451 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -11,46 +11,46 @@ "grpc:generate": "mkdir -p ./protos && protoc -I ./pb --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_opt=esModuleInterop=true --ts_proto_out=./protos --ts_proto_opt=outputServices=grpc-js demo.proto" }, "dependencies": { - "@grpc/grpc-js": "1.10.11", - "@openfeature/flagd-provider": "0.13.1", + "@grpc/grpc-js": "1.12.5", + "@openfeature/flagd-provider": "0.13.2", "@openfeature/flagd-web-provider": "0.7.2", - "@openfeature/react-sdk": "0.4.1", + "@openfeature/react-sdk": "0.4.10", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.48.0", - "@opentelemetry/auto-instrumentations-web": "0.40.0", - "@opentelemetry/context-zone": "1.25.1", - "@opentelemetry/core": "1.25.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.52.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.52.1", - "@opentelemetry/exporter-trace-otlp-http": "0.52.1", - "@opentelemetry/instrumentation": "0.52.1", - "@opentelemetry/resource-detector-alibaba-cloud": "0.28.10", - "@opentelemetry/resource-detector-aws": "1.5.2", - "@opentelemetry/resource-detector-container": "0.3.11", - "@opentelemetry/resource-detector-gcp": "0.29.10", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-metrics": "1.25.1", - "@opentelemetry/sdk-node": "0.52.1", - "@opentelemetry/sdk-trace-base": "1.25.1", - "@opentelemetry/sdk-trace-node": "1.25.1", - "@opentelemetry/sdk-trace-web": "1.25.1", - "@tanstack/react-query": "4.36.1", - "cookies-next": "4.2.1", + "@opentelemetry/auto-instrumentations-node": "0.55.2", + "@opentelemetry/auto-instrumentations-web": "0.45.0", + "@opentelemetry/context-zone": "1.30.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-trace-otlp-http": "0.57.1", + "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/resource-detector-alibaba-cloud": "0.29.7", + "@opentelemetry/resource-detector-aws": "1.10.0", + "@opentelemetry/resource-detector-container": "0.5.3", + "@opentelemetry/resource-detector-gcp": "0.32.0", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1", + "@opentelemetry/sdk-node": "0.57.1", + "@opentelemetry/sdk-trace-base": "1.30.1", + "@opentelemetry/sdk-trace-node": "1.30.1", + "@opentelemetry/sdk-trace-web": "1.30.1", + "@tanstack/react-query": "5.64.1", + "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", - "dotenv": "16.4.5", - "dotenv-expand": "11.0.6", - "next": "14.2.5", - "react": "18.3.1", - "react-dom": "18.3.1", - "sharp": "0.33.4", - "styled-components": "6.1.11", + "dotenv": "16.4.7", + "dotenv-expand": "12.0.1", + "next": "15.1.4", + "react": "19.0.0", + "react-dom": "19.0.0", + "sharp": "0.33.5", + "styled-components": "6.1.14", "ts-proto": "1.181.1", - "uuid": "10.0.0" + "uuid": "11.0.5" }, "devDependencies": { "@types/node": "22.10.7", - "@types/react": "18.3.3", - "@types/react-dom": "18.3.0", + "@types/react": "19.0.7", + "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", "@typescript-eslint/eslint-plugin": "8.21.0", diff --git a/src/frontend/pages/product/[productId]/index.tsx b/src/frontend/pages/product/[productId]/index.tsx index 1c4356ee7d..9cf26c9ed8 100644 --- a/src/frontend/pages/product/[productId]/index.tsx +++ b/src/frontend/pages/product/[productId]/index.tsx @@ -44,10 +44,9 @@ const ProductDetail: NextPage = () => { priceUsd = { units: 0, currencyCode: 'USD', nanos: 0 }, categories, } = {} as Product, - } = useQuery( - ['product', productId, 'selectedCurrency', selectedCurrency], - () => ApiGateway.getProduct(productId, selectedCurrency), - { + } = useQuery({ + queryKey: ['product', productId, 'selectedCurrency', selectedCurrency], + queryFn: () => ApiGateway.getProduct(productId, selectedCurrency), enabled: !!productId, } ) as { data: Product }; diff --git a/src/frontend/providers/Ad.provider.tsx b/src/frontend/providers/Ad.provider.tsx index 14d3937ead..0b03f4371f 100644 --- a/src/frontend/providers/Ad.provider.tsx +++ b/src/frontend/providers/Ad.provider.tsx @@ -27,26 +27,22 @@ export const useAd = () => useContext(Context); const AdProvider = ({ children, productIds, contextKeys }: IProps) => { const { selectedCurrency } = useCurrency(); - const { data: adList = [] } = useQuery( - ['ads', contextKeys], - async () => { + const { data: adList = [] } = useQuery({ + queryKey: ['ads', contextKeys], + queryFn: async () => { if (contextKeys.length === 0) { return []; } else { return ApiGateway.listAds(contextKeys); } }, - { - refetchOnWindowFocus: false, - } - ); - const { data: recommendedProductList = [] } = useQuery( - ['recommendations', productIds, 'selectedCurrency', selectedCurrency], - () => ApiGateway.listRecommendations(productIds, selectedCurrency), - { - refetchOnWindowFocus: false, - } - ); + refetchOnWindowFocus: false, + }); + const { data: recommendedProductList = [] } = useQuery({ + queryKey: ['recommendations', productIds, 'selectedCurrency', selectedCurrency], + queryFn: () => ApiGateway.listRecommendations(productIds, selectedCurrency), + refetchOnWindowFocus: false, + }); const value = useMemo( () => ({ diff --git a/src/frontend/providers/Cart.provider.tsx b/src/frontend/providers/Cart.provider.tsx index 56594bf021..40cea7f247 100644 --- a/src/frontend/providers/Cart.provider.tsx +++ b/src/frontend/providers/Cart.provider.tsx @@ -40,12 +40,24 @@ const CartProvider = ({ children }: IProps) => { [queryClient] ); - const { data: cart = { userId: '', items: [] } } = useQuery(['cart', selectedCurrency], () => - ApiGateway.getCart(selectedCurrency) - ); - const addCartMutation = useMutation(ApiGateway.addCartItem, mutationOptions); - const emptyCartMutation = useMutation(ApiGateway.emptyCart, mutationOptions); - const placeOrderMutation = useMutation(ApiGateway.placeOrder, mutationOptions); + const { data: cart = { userId: '', items: [] } } = useQuery({ + queryKey: ['cart', selectedCurrency], + queryFn: () => ApiGateway.getCart(selectedCurrency), + }); + const addCartMutation = useMutation({ + mutationFn: ApiGateway.addCartItem, + ...mutationOptions, + }); + + const emptyCartMutation = useMutation({ + mutationFn: ApiGateway.emptyCart, + ...mutationOptions, + }); + + const placeOrderMutation = useMutation({ + mutationFn: ApiGateway.placeOrder, + ...mutationOptions, + }); const addItem = useCallback( (item: CartItem) => addCartMutation.mutateAsync({ ...item, currencyCode: selectedCurrency }), diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index 322c29373d..0c8da20d69 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -8,34 +8,33 @@ "name": "payment", "license": "ISC", "dependencies": { - "@grpc/grpc-js": "1.10.11", + "@grpc/grpc-js": "1.12.5", "@grpc/proto-loader": "0.7.13", - "@openfeature/flagd-provider": "0.13.1", - "@openfeature/server-sdk": "1.16.2", + "@openfeature/flagd-provider": "0.13.2", + "@openfeature/server-sdk": "1.17.0", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.54.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.56.0", - "@opentelemetry/exporter-trace-otlp-grpc": "0.56.0", - "@opentelemetry/instrumentation-runtime-node": "0.11.0", - "@opentelemetry/resource-detector-alibaba-cloud": "0.29.6", - "@opentelemetry/resource-detector-aws": "1.9.0", - "@opentelemetry/resource-detector-container": "0.5.2", - "@opentelemetry/resource-detector-gcp": "0.31.0", - "@opentelemetry/resources": "1.29.0", - "@opentelemetry/sdk-metrics": "1.29.0", - "@opentelemetry/sdk-node": "0.56.0", + "@opentelemetry/auto-instrumentations-node": "0.55.2", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", + "@opentelemetry/instrumentation-runtime-node": "0.12.1", + "@opentelemetry/resource-detector-alibaba-cloud": "0.29.7", + "@opentelemetry/resource-detector-aws": "1.10.0", + "@opentelemetry/resource-detector-container": "0.5.3", + "@opentelemetry/resource-detector-gcp": "0.32.0", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1", + "@opentelemetry/sdk-node": "0.57.1", "grpc-js-health-check": "1.2.2", - "pino": "9.5.0", + "pino": "9.6.0", "simple-card-validator": "1.1.0", - "uuid": "11.0.3" + "uuid": "11.0.5" } }, "node_modules/@grpc/grpc-js": { - "version": "1.10.11", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.11.tgz", - "integrity": "sha512-3RaoxOqkHHN2c05bwtBNVJmOf/UwMam0rZYtdl7dsRpsvDwcNpv6LkGgzltQ7xVf822LzBoKEPRvf4D7+xeIDw==", - "license": "Apache-2.0", + "version": "1.12.5", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz", + "integrity": "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==", "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" @@ -71,33 +70,31 @@ } }, "node_modules/@openfeature/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-1.5.0.tgz", - "integrity": "sha512-dRBJjnYhEa6XoF9BNf9sW4sHuXmigfBbbatA5djbRXRBDExrXsMydMpEWQqKYhd7XwdwFatuh2q+UkVbXriUKA==", - "license": "Apache-2.0", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-1.6.0.tgz", + "integrity": "sha512-QYAtwdreZU9Mi/LXLRzXsUA7PhbtT7+UJfRBMIAy6MidZjMgIbNfoh6+MncXb3UocThn0OsYa8WLfWD9q43eCQ==", "peer": true }, "node_modules/@openfeature/flagd-core": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@openfeature/flagd-core/-/flagd-core-0.2.3.tgz", - "integrity": "sha512-dhinXEfFmyTPVuI53Nq1pEC7SJP78LgpmJriMlVjcNaDRkA8VneyjuttijDnHw8PcrBit5I3DZNelXzrUkkiLw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@openfeature/flagd-core/-/flagd-core-1.0.0.tgz", + "integrity": "sha512-JoaiDfQHgD15shkD5i/I+bpssvqqIwu2dkXMgQ8PfG/keYITCvNFIbxyqPKn+nAX9DR0Zp0P+spJTXtyxLMikw==", "dependencies": { "ajv": "^8.12.0", "imurmurhash": "0.1.4", - "json-logic-engine": "1.3.4", + "json-logic-engine": "4.0.2", "object-hash": "3.0.0", "semver": "7.5.3", "tslib": "^2.3.0" }, "peerDependencies": { - "@openfeature/core": ">=0.0.16" + "@openfeature/core": ">=1.6.0" } }, "node_modules/@openfeature/flagd-core/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -109,7 +106,6 @@ "version": "7.5.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -121,30 +117,27 @@ } }, "node_modules/@openfeature/flagd-provider": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/@openfeature/flagd-provider/-/flagd-provider-0.13.1.tgz", - "integrity": "sha512-X+sNmgmHN08U1kE0I1lLNDdvvvUTmPpXxFuppB8ak+6+d5lHCLMIhhEGlE56C8VhyWBP0d+chl42O4IqdypqDA==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@openfeature/flagd-provider/-/flagd-provider-0.13.2.tgz", + "integrity": "sha512-T5IIjPc1VvOuwBQU8jWdf3IhaK9ceMOt1oVGScIVWHgQSns2QjOv6ATxLZ8ciPenavoUQW6YnphmbVaEb1ft3w==", "dependencies": { - "@openfeature/flagd-core": "0.2.3", - "@protobuf-ts/runtime-rpc": "2.9.4", - "lru-cache": "10.2.2", - "util": "0.12.5" + "@openfeature/flagd-core": "^1.0.0", + "lru-cache": "^11.0.0" }, "peerDependencies": { - "@grpc/grpc-js": "~1.8.0 || ~1.9.0 || ~1.10.0", - "@openfeature/server-sdk": "^1.13.0" + "@grpc/grpc-js": "~1.8.0 || ~1.9.0 || ~1.10.0 || ~1.11.0 || ~1.12.0", + "@openfeature/server-sdk": "1.17.0" } }, "node_modules/@openfeature/server-sdk": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.16.2.tgz", - "integrity": "sha512-bGK3Lgf9JY06s1vJkBs1PgSH+taxrwBx/SJFTNWAmA5TfV3c5SgLCGlU2xYEda5Ba3885ly+foWeRJrXdZGQ+g==", - "license": "Apache-2.0", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.17.0.tgz", + "integrity": "sha512-M5Dcw6/IROlvIVPzzgPEpq5JhbIGyGY7oVlN6cJMd9EbhJtQzmMQBuXKCqoar59OgQXKH/u2LQxEhS1ccaR/RA==", "engines": { "node": ">=18" }, "peerDependencies": { - "@openfeature/core": "^1.5.0" + "@openfeature/core": "^1.6.0" } }, "node_modules/@opentelemetry/api": { @@ -157,10 +150,9 @@ } }, "node_modules/@opentelemetry/api-logs": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.56.0.tgz", - "integrity": "sha512-Wr39+94UNNG3Ei9nv3pHd4AJ63gq5nSemMRpCd8fPwDL9rN3vK26lzxfH27mw16XzOSO+TpyQwBAMaLxaPWG0g==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.1.tgz", + "integrity": "sha512-I4PHczeujhQAQv6ZBzqHYEUiggZL4IdSMixtVD3EYqbdrjujE7kRfI5QohjlPoJm8BvenoW5YaTMWRrbpot6tg==", "dependencies": { "@opentelemetry/api": "^1.3.0" }, @@ -169,58 +161,57 @@ } }, "node_modules/@opentelemetry/auto-instrumentations-node": { - "version": "0.54.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.54.0.tgz", - "integrity": "sha512-MJYh3hUN7FupIXGy/cOiMoTIM3lTELXFiu9dFXD6YK9AE/Uez2YfgRnHyotD9h/qJeL7uDcI5DHAGkbb/2EdOQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", - "@opentelemetry/instrumentation-amqplib": "^0.45.0", - "@opentelemetry/instrumentation-aws-lambda": "^0.49.0", - "@opentelemetry/instrumentation-aws-sdk": "^0.48.0", - "@opentelemetry/instrumentation-bunyan": "^0.44.0", - "@opentelemetry/instrumentation-cassandra-driver": "^0.44.0", - "@opentelemetry/instrumentation-connect": "^0.42.0", - "@opentelemetry/instrumentation-cucumber": "^0.12.0", - "@opentelemetry/instrumentation-dataloader": "^0.15.0", - "@opentelemetry/instrumentation-dns": "^0.42.0", - "@opentelemetry/instrumentation-express": "^0.46.0", - "@opentelemetry/instrumentation-fastify": "^0.43.0", - "@opentelemetry/instrumentation-fs": "^0.18.0", - "@opentelemetry/instrumentation-generic-pool": "^0.42.0", - "@opentelemetry/instrumentation-graphql": "^0.46.0", - "@opentelemetry/instrumentation-grpc": "^0.56.0", - "@opentelemetry/instrumentation-hapi": "^0.44.0", - "@opentelemetry/instrumentation-http": "^0.56.0", - "@opentelemetry/instrumentation-ioredis": "^0.46.0", - "@opentelemetry/instrumentation-kafkajs": "^0.6.0", - "@opentelemetry/instrumentation-knex": "^0.43.0", - "@opentelemetry/instrumentation-koa": "^0.46.0", - "@opentelemetry/instrumentation-lru-memoizer": "^0.43.0", - "@opentelemetry/instrumentation-memcached": "^0.42.0", - "@opentelemetry/instrumentation-mongodb": "^0.50.0", - "@opentelemetry/instrumentation-mongoose": "^0.45.0", - "@opentelemetry/instrumentation-mysql": "^0.44.0", - "@opentelemetry/instrumentation-mysql2": "^0.44.0", - "@opentelemetry/instrumentation-nestjs-core": "^0.43.0", - "@opentelemetry/instrumentation-net": "^0.42.0", - "@opentelemetry/instrumentation-pg": "^0.49.0", - "@opentelemetry/instrumentation-pino": "^0.45.0", - "@opentelemetry/instrumentation-redis": "^0.45.0", - "@opentelemetry/instrumentation-redis-4": "^0.45.0", - "@opentelemetry/instrumentation-restify": "^0.44.0", - "@opentelemetry/instrumentation-router": "^0.43.0", - "@opentelemetry/instrumentation-socket.io": "^0.45.0", - "@opentelemetry/instrumentation-tedious": "^0.17.0", - "@opentelemetry/instrumentation-undici": "^0.9.0", - "@opentelemetry/instrumentation-winston": "^0.43.0", - "@opentelemetry/resource-detector-alibaba-cloud": "^0.29.6", - "@opentelemetry/resource-detector-aws": "^1.9.0", - "@opentelemetry/resource-detector-azure": "^0.4.0", - "@opentelemetry/resource-detector-container": "^0.5.2", - "@opentelemetry/resource-detector-gcp": "^0.31.0", + "version": "0.55.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.55.2.tgz", + "integrity": "sha512-m6Wt1vlDYocFX4+m6Y3df1kAXRjYrY57Y8O0VjDRTP+kSHdjH/52/2KmlWGhk2NiDasOt2Pb+DZoMqkQLezZew==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation-amqplib": "^0.46.0", + "@opentelemetry/instrumentation-aws-lambda": "^0.50.1", + "@opentelemetry/instrumentation-aws-sdk": "^0.49.0", + "@opentelemetry/instrumentation-bunyan": "^0.45.0", + "@opentelemetry/instrumentation-cassandra-driver": "^0.45.0", + "@opentelemetry/instrumentation-connect": "^0.43.0", + "@opentelemetry/instrumentation-cucumber": "^0.13.0", + "@opentelemetry/instrumentation-dataloader": "^0.16.0", + "@opentelemetry/instrumentation-dns": "^0.43.0", + "@opentelemetry/instrumentation-express": "^0.47.0", + "@opentelemetry/instrumentation-fastify": "^0.44.0", + "@opentelemetry/instrumentation-fs": "^0.19.0", + "@opentelemetry/instrumentation-generic-pool": "^0.43.0", + "@opentelemetry/instrumentation-graphql": "^0.47.0", + "@opentelemetry/instrumentation-grpc": "^0.57.0", + "@opentelemetry/instrumentation-hapi": "^0.45.1", + "@opentelemetry/instrumentation-http": "^0.57.0", + "@opentelemetry/instrumentation-ioredis": "^0.47.0", + "@opentelemetry/instrumentation-kafkajs": "^0.7.0", + "@opentelemetry/instrumentation-knex": "^0.44.0", + "@opentelemetry/instrumentation-koa": "^0.47.0", + "@opentelemetry/instrumentation-lru-memoizer": "^0.44.0", + "@opentelemetry/instrumentation-memcached": "^0.43.0", + "@opentelemetry/instrumentation-mongodb": "^0.51.0", + "@opentelemetry/instrumentation-mongoose": "^0.46.0", + "@opentelemetry/instrumentation-mysql": "^0.45.0", + "@opentelemetry/instrumentation-mysql2": "^0.45.0", + "@opentelemetry/instrumentation-nestjs-core": "^0.44.0", + "@opentelemetry/instrumentation-net": "^0.43.0", + "@opentelemetry/instrumentation-pg": "^0.50.0", + "@opentelemetry/instrumentation-pino": "^0.46.0", + "@opentelemetry/instrumentation-redis": "^0.46.0", + "@opentelemetry/instrumentation-redis-4": "^0.46.0", + "@opentelemetry/instrumentation-restify": "^0.45.0", + "@opentelemetry/instrumentation-router": "^0.44.0", + "@opentelemetry/instrumentation-socket.io": "^0.46.0", + "@opentelemetry/instrumentation-tedious": "^0.18.0", + "@opentelemetry/instrumentation-undici": "^0.10.0", + "@opentelemetry/instrumentation-winston": "^0.44.0", + "@opentelemetry/resource-detector-alibaba-cloud": "0.29.7", + "@opentelemetry/resource-detector-aws": "1.10.0", + "@opentelemetry/resource-detector-azure": "^0.5.0", + "@opentelemetry/resource-detector-container": "0.5.3", + "@opentelemetry/resource-detector-gcp": "0.32.0", "@opentelemetry/resources": "^1.24.0", - "@opentelemetry/sdk-node": "^0.56.0" + "@opentelemetry/sdk-node": "^0.57.0" }, "engines": { "node": ">=14" @@ -230,10 +221,9 @@ } }, "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.29.0.tgz", - "integrity": "sha512-TKT91jcFXgHyIDF1lgJF3BHGIakn6x0Xp7Tq3zoS3TMPzT9IlP0xEavWP8C1zGjU9UmZP2VR1tJhW9Az1A3w8Q==", - "license": "Apache-2.0", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz", + "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==", "engines": { "node": ">=14" }, @@ -242,10 +232,9 @@ } }, "node_modules/@opentelemetry/core": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.29.0.tgz", - "integrity": "sha512-gmT7vAreXl0DTHD2rVZcw3+l2g84+5XiHIqdBUxXbExymPCvSsGOpiwMmn8nkiJur28STV31wnhIDrzWDPzjfA==", - "license": "Apache-2.0", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, @@ -257,16 +246,15 @@ } }, "node_modules/@opentelemetry/exporter-logs-otlp-grpc": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-grpc/-/exporter-logs-otlp-grpc-0.56.0.tgz", - "integrity": "sha512-/ef8wcphVKZ0uI7A1oqQI/gEMiBUlkeBkM9AGx6AviQFIbgPVSdNK3+bHBkyq5qMkyWgkeQCSJ0uhc5vJpf0dw==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-grpc/-/exporter-logs-otlp-grpc-0.57.1.tgz", + "integrity": "sha512-RL8qmZH1H/H7Hbj0xKxF0Gg8kX9ic0aoMS3Kv5kj864lWxlpuR5YtGGn5OjGYwCmq6nYbsNy257fFp1U63pABw==", "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/otlp-grpc-exporter-base": "0.56.0", - "@opentelemetry/otlp-transformer": "0.56.0", - "@opentelemetry/sdk-logs": "0.56.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/sdk-logs": "0.57.1" }, "engines": { "node": ">=14" @@ -275,34 +263,16 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/exporter-logs-otlp-grpc/node_modules/@opentelemetry/sdk-logs": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.56.0.tgz", - "integrity": "sha512-OS0WPBJF++R/cSl+terUjQH5PebloidB1Jbbecgg2rnCmQbTST9xsRes23bLfDQVRvmegmHqDh884h0aRdJyLw==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-logs": "0.56.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/resources": "1.29.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.4.0 <1.10.0" - } - }, "node_modules/@opentelemetry/exporter-logs-otlp-http": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.56.0.tgz", - "integrity": "sha512-gN/itg2B30pa+yAqiuIHBCf3E77sSBlyWVzb+U/MDLzEMOwfnexlMvOWULnIO1l2xR2MNLEuPCQAOrL92JHEJg==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.57.1.tgz", + "integrity": "sha512-u8Cr6yDX57/n89aSJwAQNHQIYodcl6o8jTcaPKNktMvNfd7ny3R7aE7GKBC5Wg0zejP9heBgyN0OGwrPhptx7A==", "dependencies": { - "@opentelemetry/api-logs": "0.56.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/otlp-exporter-base": "0.56.0", - "@opentelemetry/otlp-transformer": "0.56.0", - "@opentelemetry/sdk-logs": "0.56.0" + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/sdk-logs": "0.57.1" }, "engines": { "node": ">=14" @@ -311,36 +281,39 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/exporter-logs-otlp-http/node_modules/@opentelemetry/sdk-logs": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.56.0.tgz", - "integrity": "sha512-OS0WPBJF++R/cSl+terUjQH5PebloidB1Jbbecgg2rnCmQbTST9xsRes23bLfDQVRvmegmHqDh884h0aRdJyLw==", - "license": "Apache-2.0", + "node_modules/@opentelemetry/exporter-logs-otlp-proto": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-proto/-/exporter-logs-otlp-proto-0.57.1.tgz", + "integrity": "sha512-WtR85NHdIVrIFfsK5bwx7miGG5WzOsuT4BNmuZ3EfZ0veowkrgoUSynsNnXW1YFXL6QhPbScjUfeTjnnV9bnIQ==", "dependencies": { - "@opentelemetry/api-logs": "0.56.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/resources": "1.29.0" + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-trace-base": "1.30.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.4.0 <1.10.0" + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/exporter-logs-otlp-proto": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-proto/-/exporter-logs-otlp-proto-0.56.0.tgz", - "integrity": "sha512-MaO+eGrdksd8MpEbDDLbWegHc3w6ualZV6CENxNOm3wqob0iOx78/YL2NVIKyP/0ktTUIs7xIppUYqfY3ogFLQ==", - "license": "Apache-2.0", + "node_modules/@opentelemetry/exporter-metrics-otlp-grpc": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.57.1.tgz", + "integrity": "sha512-8B7k5q4AUldbfvubcHApg1XQaio/cO/VUWsM5PSaRP2fsjGNwbn2ih04J3gLD+AmgslvyuDcA2SZiDXEKwAxtQ==", "dependencies": { - "@opentelemetry/api-logs": "0.56.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/otlp-exporter-base": "0.56.0", - "@opentelemetry/otlp-transformer": "0.56.0", - "@opentelemetry/resources": "1.29.0", - "@opentelemetry/sdk-logs": "0.56.0", - "@opentelemetry/sdk-trace-base": "1.29.0" + "@grpc/grpc-js": "^1.7.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1" }, "engines": { "node": ">=14" @@ -349,37 +322,35 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/exporter-logs-otlp-proto/node_modules/@opentelemetry/sdk-logs": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.56.0.tgz", - "integrity": "sha512-OS0WPBJF++R/cSl+terUjQH5PebloidB1Jbbecgg2rnCmQbTST9xsRes23bLfDQVRvmegmHqDh884h0aRdJyLw==", - "license": "Apache-2.0", + "node_modules/@opentelemetry/exporter-metrics-otlp-http": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.57.1.tgz", + "integrity": "sha512-jpKYVZY7fdwTdy+eAy/Mp9DZMaQpj7caMzlo3QqQDSJx5FZEY6zWzgcKvDvF6h+gdHE7LgUjaPOvJVUs354jJg==", "dependencies": { - "@opentelemetry/api-logs": "0.56.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/resources": "1.29.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.4.0 <1.10.0" + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/exporter-metrics-otlp-grpc": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.56.0.tgz", - "integrity": "sha512-yqxN9UiIu020XYX/vny06VdQIQ7/f7f+z0xEL8QGbrO9fZB8lRMvea2pxbjqW9mzZ5m7kV6t3zsOALcEg5ky1w==", - "license": "Apache-2.0", + "node_modules/@opentelemetry/exporter-metrics-otlp-proto": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.57.1.tgz", + "integrity": "sha512-53AJmYJr8lypU6kAQT1/FVKR2QKcxRp4Gd54L3oF9hc2fw/FtvVfXV+PelB+qL318PqUlVjVtDOa4SQ5tAREfA==", "dependencies": { - "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/exporter-metrics-otlp-http": "0.56.0", - "@opentelemetry/otlp-exporter-base": "0.56.0", - "@opentelemetry/otlp-grpc-exporter-base": "0.56.0", - "@opentelemetry/otlp-transformer": "0.56.0", - "@opentelemetry/resources": "1.29.0", - "@opentelemetry/sdk-metrics": "1.29.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1" }, "engines": { "node": ">=14" @@ -388,17 +359,14 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/exporter-metrics-otlp-http": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.56.0.tgz", - "integrity": "sha512-GD5QuCT6js+mDpb5OBO6OSyCH+k2Gy3xPHJV9BnjV8W6kpSuY8y2Samzs5vl23UcGMq6sHLAbs+Eq/VYsLMiVw==", - "license": "Apache-2.0", + "node_modules/@opentelemetry/exporter-prometheus": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-prometheus/-/exporter-prometheus-0.57.1.tgz", + "integrity": "sha512-lwwOQzyvhzioGCYmIh7mXo+RLSoEVhuO0dFzWeEiQhFkjSUOPgKQKNTgYtl2KO1L7XIbHp5LIgn4nZrYx191Rg==", "dependencies": { - "@opentelemetry/core": "1.29.0", - "@opentelemetry/otlp-exporter-base": "0.56.0", - "@opentelemetry/otlp-transformer": "0.56.0", - "@opentelemetry/resources": "1.29.0", - "@opentelemetry/sdk-metrics": "1.29.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1" }, "engines": { "node": ">=14" @@ -408,17 +376,16 @@ } }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.56.0.tgz", - "integrity": "sha512-9hRHue78CV2XShAt30HadBK8XEtOBiQmnkYquR1RQyf2RYIdJvhiypEZ+Jh3NGW8Qi14icTII/1oPTQlhuyQdQ==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.57.1.tgz", + "integrity": "sha512-a9/4w2nyfehxMA64VGcZ4OXePGLjTz9H/dvqbOzVmIBZe9R6bkOeT68M9WoxAEdUZcJDK8XS3EloJId1rjPrag==", "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/otlp-grpc-exporter-base": "0.56.0", - "@opentelemetry/otlp-transformer": "0.56.0", - "@opentelemetry/resources": "1.29.0", - "@opentelemetry/sdk-trace-base": "1.29.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1" }, "engines": { "node": ">=14" @@ -428,16 +395,15 @@ } }, "node_modules/@opentelemetry/exporter-trace-otlp-http": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.56.0.tgz", - "integrity": "sha512-vqVuJvcwameA0r0cNrRzrZqPLB0otS+95g0XkZdiKOXUo81wYdY6r4kyrwz4nSChqTBEFm0lqi/H2OWGboOa6g==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.57.1.tgz", + "integrity": "sha512-43dLEjlf6JGxpVt9RaRlJAvjHG1wGsbAuNd67RIDy/95zfKk2aNovtiGUgFdS/kcvgvS90upIUbgn0xUd9JjMg==", "dependencies": { - "@opentelemetry/core": "1.29.0", - "@opentelemetry/otlp-exporter-base": "0.56.0", - "@opentelemetry/otlp-transformer": "0.56.0", - "@opentelemetry/resources": "1.29.0", - "@opentelemetry/sdk-trace-base": "1.29.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1" }, "engines": { "node": ">=14" @@ -447,16 +413,15 @@ } }, "node_modules/@opentelemetry/exporter-trace-otlp-proto": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.56.0.tgz", - "integrity": "sha512-UYVtz8Kp1QZpZFg83ZrnwRIxF2wavNyi1XaIKuQNFjlYuGCh8JH4+GOuHUU4G8cIzOkWdjNR559vv0Q+MCz+1w==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.57.1.tgz", + "integrity": "sha512-REN6UZTNoP3Tb7vuCEy+yAjNmJGi7MLqCMdDoUSbsWGwpopxtSnsbkfVfLPsZAsumWkcq0p8p6lYvqUBDhUqIA==", "dependencies": { - "@opentelemetry/core": "1.29.0", - "@opentelemetry/otlp-exporter-base": "0.56.0", - "@opentelemetry/otlp-transformer": "0.56.0", - "@opentelemetry/resources": "1.29.0", - "@opentelemetry/sdk-trace-base": "1.29.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1" }, "engines": { "node": ">=14" @@ -466,14 +431,13 @@ } }, "node_modules/@opentelemetry/exporter-zipkin": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.29.0.tgz", - "integrity": "sha512-9wNUxbl/sju2AvA3UhL2kLF1nfhJ4dVJgvktc3hx80Bg/fWHvF6ik4R3woZ/5gYFqZ97dcuik0dWPQEzLPNBtg==", - "license": "Apache-2.0", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.30.1.tgz", + "integrity": "sha512-6S2QIMJahIquvFaaxmcwpvQQRD/YFaMTNoIxrfPIPOeITN+a8lfEcPDxNxn8JDAaxkg+4EnXhz8upVDYenoQjA==", "dependencies": { - "@opentelemetry/core": "1.29.0", - "@opentelemetry/resources": "1.29.0", - "@opentelemetry/sdk-trace-base": "1.29.0", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { @@ -484,12 +448,11 @@ } }, "node_modules/@opentelemetry/instrumentation": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.56.0.tgz", - "integrity": "sha512-2KkGBKE+FPXU1F0zKww+stnlUxUTlBvLCiWdP63Z9sqXYeNI/ziNzsxAp4LAdUcTQmXjw1IWgvm5CAb/BHy99w==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz", + "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==", "dependencies": { - "@opentelemetry/api-logs": "0.56.0", + "@opentelemetry/api-logs": "0.57.1", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", @@ -504,13 +467,12 @@ } }, "node_modules/@opentelemetry/instrumentation-amqplib": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.45.0.tgz", - "integrity": "sha512-SlKLsOS65NGMIBG1Lh/hLrMDU9WzTUF25apnV6ZmWZB1bBmUwan7qrwwrTu1cL5LzJWCXOdZPuTaxP7pC9qxnQ==", - "license": "Apache-2.0", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.0.tgz", + "integrity": "sha512-04VHHV1KIN/c1wLWwzmLI02d/welgscBJ4BuDqrHaxd+ZIdlVXK9UYQsYf3JwSeF52z/4YoSzr8bfdVBSWoMAg==", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -521,12 +483,11 @@ } }, "node_modules/@opentelemetry/instrumentation-aws-lambda": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.49.0.tgz", - "integrity": "sha512-FIKQSzX/MSzfARqgm7lX9p/QUj7USyicioBYI5BFGuOOoLefxBlJINAcRs3EvCh1taEnJ7/LpbrhlcF7r4Yqvg==", - "license": "Apache-2.0", + "version": "0.50.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.50.1.tgz", + "integrity": "sha512-Kk+9tdmsLeX4QeOvL4A2gSOfEqIKVMLbVO76CbTjmlIcL9rQjHefwxp1m62YO/nwujuZ0JKTJbz264e8foTMeQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/aws-lambda": "8.10.143" }, @@ -538,14 +499,13 @@ } }, "node_modules/@opentelemetry/instrumentation-aws-sdk": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.48.0.tgz", - "integrity": "sha512-Bl4geb9DS5Zxr5mOsDcDTLjwrfipQ4KDl1ZT5gmoOvVuZPp308reGdtnO1QmqbvMwcgMxD2aBdWUoYgtx1WgWw==", - "license": "Apache-2.0", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.49.0.tgz", + "integrity": "sha512-m3yC3ni4Yo8tggbZgygS/ccAP9e/EYqsMwzooHiIymbnyZwDAB7kMZ3OrjcLVPCFx9gjNMDKW4MdwOPC0vTEeQ==", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.56.0", - "@opentelemetry/propagation-utils": "^0.30.14", + "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/propagation-utils": "^0.30.15", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -556,13 +516,12 @@ } }, "node_modules/@opentelemetry/instrumentation-bunyan": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.44.0.tgz", - "integrity": "sha512-9JHcfUPejOx5ULuxrH5K5qOZ9GJSTisuMSZZFVkDigZJ42pMn26Zgmb1HhuiZXd/ZcFgOeLZcwQNpBmF1whftg==", - "license": "Apache-2.0", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.45.0.tgz", + "integrity": "sha512-K3ZleoOxKUzGjt0TfAT1jfSNcgyt7+toqjhWymPf2tsGUETXxaxGDzAoNepWcfIkgPauJLPpRLLKcP6LjYLILw==", "dependencies": { - "@opentelemetry/api-logs": "^0.56.0", - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/api-logs": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.0", "@types/bunyan": "1.8.9" }, "engines": { @@ -573,12 +532,11 @@ } }, "node_modules/@opentelemetry/instrumentation-cassandra-driver": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.44.0.tgz", - "integrity": "sha512-HbhNoqAelB1T4QtgKJbOy7wB26R15HToLyMmYwNFICyDtfY7nhRmGRSzPt6akpwXpyCq43/P+L6XYTmqSWTK/Q==", - "license": "Apache-2.0", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.45.0.tgz", + "integrity": "sha512-IKoA0lLfF7EyIL85MfqzvfAa/Oz9zHNFXwzSiQ6Iqej89BMyOm3eYaAsyUDAvgiLG12M189temMMyRuR07YsZg==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -589,13 +547,12 @@ } }, "node_modules/@opentelemetry/instrumentation-connect": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.42.0.tgz", - "integrity": "sha512-bOoYHBmbnq/jFaLHmXJ55VQ6jrH5fHDMAPjFM0d3JvR0dvIqW7anEoNC33QqYGFYUfVJ50S0d/eoyF61ALqQuA==", - "license": "Apache-2.0", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.0.tgz", + "integrity": "sha512-Q57JGpH6T4dkYHo9tKXONgLtxzsh1ZEW5M9A/OwKrZFyEpLqWgjhcZ3hIuVvDlhb426iDF1f9FPToV/mi5rpeA==", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/connect": "3.4.36" }, @@ -607,12 +564,11 @@ } }, "node_modules/@opentelemetry/instrumentation-cucumber": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.12.0.tgz", - "integrity": "sha512-0sAhKYaxi5/SM+z8nbwmezNVlnJGkcZgMA7ClenVMIoH5xjow/b2gzJOWr3Ch7FPEXBcyoY/sIqfYWRwmRXWiw==", - "license": "Apache-2.0", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.13.0.tgz", + "integrity": "sha512-ZBswBKONU2g7mhjEKF4vkTXxezq16QdvGaD5W4o01/t5KzvCZGQ6hYPsB34miJIj/hh6UrFLRDAjqb7nur5I3Q==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -623,12 +579,11 @@ } }, "node_modules/@opentelemetry/instrumentation-dataloader": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.15.0.tgz", - "integrity": "sha512-5fP35A2jUPk4SerVcduEkpbRAIoqa2PaP5rWumn01T1uSbavXNccAr3Xvx1N6xFtZxXpLJq4FYqGFnMgDWgVng==", - "license": "Apache-2.0", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.0.tgz", + "integrity": "sha512-88+qCHZC02up8PwKHk0UQKLLqGGURzS3hFQBZC7PnGwReuoKjHXS1o29H58S+QkXJpkTr2GACbx8j6mUoGjNPA==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -638,12 +593,11 @@ } }, "node_modules/@opentelemetry/instrumentation-dns": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.42.0.tgz", - "integrity": "sha512-HsKYWwMADJAcdY4UkNNbvcg9cm5Xhz5wxBPyT15z7wigatiEoCXPrbbbRDmCe+eKTc2tRxUPmg49u6MsIGcUmg==", - "license": "Apache-2.0", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.43.0.tgz", + "integrity": "sha512-bGXTyBpjSYt6B7LEj0zMfWkoveGpYf5pVEgTZmDacsG49RdfdCH5PYt3C8MEMwYEFtu2dGdKdKa2LHfefIIDdg==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -653,13 +607,12 @@ } }, "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.46.0.tgz", - "integrity": "sha512-BCEClDj/HPq/1xYRAlOr6z+OUnbp2eFp18DSrgyQz4IT9pkdYk8eWHnMi9oZSqlC6J5mQzkFmaW5RrKb1GLQhg==", - "license": "Apache-2.0", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.0.tgz", + "integrity": "sha512-XFWVx6k0XlU8lu6cBlCa29ONtVt6ADEjmxtyAyeF2+rifk8uBJbk1La0yIVfI0DoKURGbaEDTNelaXG9l/lNNQ==", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -670,13 +623,12 @@ } }, "node_modules/@opentelemetry/instrumentation-fastify": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.43.0.tgz", - "integrity": "sha512-Lmdsg7tYiV+K3/NKVAQfnnLNGmakUOFdB0PhoTh2aXuSyCmyNnnDvhn2MsArAPTZ68wnD5Llh5HtmiuTkf+DyQ==", - "license": "Apache-2.0", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.44.0.tgz", + "integrity": "sha512-mO2iyzyrk8GibUOSW8ffvFeau/frFONpSzDq3sEPbsHXIbHOXiM6VX3Q7oydnwaAxHDmxClOCRuYDNbXSO1rSA==", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -687,13 +639,12 @@ } }, "node_modules/@opentelemetry/instrumentation-fs": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.18.0.tgz", - "integrity": "sha512-kC40y6CEMONm8/MWwoF5GHWIC7gOdF+g3sgsjfwJaUkgD6bdWV+FgG0XApqSbTQndICKzw3RonVk8i7s6mHqhA==", - "license": "Apache-2.0", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.0.tgz", + "integrity": "sha512-JGwmHhBkRT2G/BYNV1aGI+bBjJu4fJUD/5/Jat0EWZa2ftrLV3YE8z84Fiij/wK32oMZ88eS8DI4ecLGZhpqsQ==", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.56.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -703,12 +654,11 @@ } }, "node_modules/@opentelemetry/instrumentation-generic-pool": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.42.0.tgz", - "integrity": "sha512-J4QxqiQ1imtB9ogzsOnHra0g3dmmLAx4JCeoK3o0rFes1OirljNHnO8Hsj4s1jAir8WmWvnEEQO1y8yk6j2tog==", - "license": "Apache-2.0", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.0.tgz", + "integrity": "sha512-at8GceTtNxD1NfFKGAuwtqM41ot/TpcLh+YsGe4dhf7gvv1HW/ZWdq6nfRtS6UjIvZJOokViqLPJ3GVtZItAnQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -718,12 +668,11 @@ } }, "node_modules/@opentelemetry/instrumentation-graphql": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.46.0.tgz", - "integrity": "sha512-tplk0YWINSECcK89PGM7IVtOYenXyoOuhOQlN0X0YrcDUfMS4tZMKkVc0vyhNWYYrexnUHwNry2YNBNugSpjlQ==", - "license": "Apache-2.0", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.0.tgz", + "integrity": "sha512-Cc8SMf+nLqp0fi8oAnooNEfwZWFnzMiBHCGmDFYqmgjPylyLmi83b+NiTns/rKGwlErpW0AGPt0sMpkbNlzn8w==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -733,12 +682,11 @@ } }, "node_modules/@opentelemetry/instrumentation-grpc": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.56.0.tgz", - "integrity": "sha512-cmqCZqyKtyu4oLx3rQmPMeqAo69er7ULnbEBTFCW0++AAimIoAXJptrEvB5X9HYr0NP2TqF8As/vlV3IVmY5OQ==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.57.1.tgz", + "integrity": "sha512-tZ0LO6hxLCnQfSS03BpYWc+kZpqFJJUbYb+GfEr5YJ1/YrOtRP8lCpC8AC1QIVmqGn+Vlxjkn3tSifNHsk9enw==", "dependencies": { - "@opentelemetry/instrumentation": "0.56.0", + "@opentelemetry/instrumentation": "0.57.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { @@ -749,13 +697,12 @@ } }, "node_modules/@opentelemetry/instrumentation-hapi": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.44.0.tgz", - "integrity": "sha512-4HdNIMNXWK1O6nsaQOrACo83QWEVoyNODTdVDbUqtqXiv2peDfD0RAPhSQlSGWLPw3S4d9UoOmrV7s2HYj6T2A==", - "license": "Apache-2.0", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.1.tgz", + "integrity": "sha512-VH6mU3YqAKTePPfUPwfq4/xr049774qWtfTuJqVHoVspCLiT3bW+fCQ1toZxt6cxRPYASoYaBsMA3CWo8B8rcw==", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -766,13 +713,12 @@ } }, "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.56.0.tgz", - "integrity": "sha512-/bWHBUAq8VoATnH9iLk5w8CE9+gj+RgYSUphe7hry472n6fYl7+4PvuScoQMdmSUTprKq/gyr2kOWL6zrC7FkQ==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.57.1.tgz", + "integrity": "sha512-ThLmzAQDs7b/tdKI3BV2+yawuF09jF111OFsovqT1Qj3D8vjwKBwhi/rDE5xethwn4tSXtZcJ9hBsVAlWFQZ7g==", "dependencies": { - "@opentelemetry/core": "1.29.0", - "@opentelemetry/instrumentation": "0.56.0", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/instrumentation": "0.57.1", "@opentelemetry/semantic-conventions": "1.28.0", "forwarded-parse": "2.1.2", "semver": "^7.5.2" @@ -785,12 +731,11 @@ } }, "node_modules/@opentelemetry/instrumentation-ioredis": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.46.0.tgz", - "integrity": "sha512-sOdsq8oGi29V58p1AkefHvuB3l2ymP1IbxRIX3y4lZesQWKL8fLhBmy8xYjINSQ5gHzWul2yoz7pe7boxhZcqQ==", - "license": "Apache-2.0", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.0.tgz", + "integrity": "sha512-4HqP9IBC8e7pW9p90P3q4ox0XlbLGme65YTrA3UTLvqvo4Z6b0puqZQP203YFu8m9rE/luLfaG7/xrwwqMUpJw==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, @@ -802,12 +747,11 @@ } }, "node_modules/@opentelemetry/instrumentation-kafkajs": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.6.0.tgz", - "integrity": "sha512-MGQrzqEUAl0tacKJUFpuNHJesyTi51oUzSVizn7FdvJplkRIdS11FukyZBZJEscofSEdk7Ycmg+kNMLi5QHUFg==", - "license": "Apache-2.0", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.0.tgz", + "integrity": "sha512-LB+3xiNzc034zHfCtgs4ITWhq6Xvdo8bsq7amR058jZlf2aXXDrN9SV4si4z2ya9QX4tz6r4eZJwDkXOp14/AQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -818,12 +762,11 @@ } }, "node_modules/@opentelemetry/instrumentation-knex": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.43.0.tgz", - "integrity": "sha512-mOp0TRQNFFSBj5am0WF67fRO7UZMUmsF3/7HSDja9g3H4pnj+4YNvWWyZn4+q0rGrPtywminAXe0rxtgaGYIqg==", - "license": "Apache-2.0", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.0.tgz", + "integrity": "sha512-SlT0+bLA0Lg3VthGje+bSZatlGHw/vwgQywx0R/5u9QC59FddTQSPJeWNw29M6f8ScORMeUOOTwihlQAn4GkJQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -834,13 +777,12 @@ } }, "node_modules/@opentelemetry/instrumentation-koa": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.46.0.tgz", - "integrity": "sha512-RcWXMQdJQANnPUaXbHY5G0Fg6gmleZ/ZtZeSsekWPaZmQq12FGk0L1UwodIgs31OlYfviAZ4yTeytoSUkgo5vQ==", - "license": "Apache-2.0", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.0.tgz", + "integrity": "sha512-HFdvqf2+w8sWOuwtEXayGzdZ2vWpCKEQv5F7+2DSA74Te/Cv4rvb2E5So5/lh+ok4/RAIPuvCbCb/SHQFzMmbw==", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -851,12 +793,11 @@ } }, "node_modules/@opentelemetry/instrumentation-lru-memoizer": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.43.0.tgz", - "integrity": "sha512-fZc+1eJUV+tFxaB3zkbupiA8SL3vhDUq89HbDNg1asweYrEb9OlHIB+Ot14ZiHUc1qCmmWmZHbPTwa56mVVwzg==", - "license": "Apache-2.0", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.0.tgz", + "integrity": "sha512-Tn7emHAlvYDFik3vGU0mdwvWJDwtITtkJ+5eT2cUquct6nIs+H8M47sqMJkCpyPe5QIBJoTOHxmc6mj9lz6zDw==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -866,12 +807,11 @@ } }, "node_modules/@opentelemetry/instrumentation-memcached": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.42.0.tgz", - "integrity": "sha512-6peg2nImB4JNpK+kW95b12B6tRSwRpc0KCm6Ol41uDYPli800J9vWi+DGoPsmTrgZpkEfCe9Z9Ob9Z6Fth2zwg==", - "license": "Apache-2.0", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.43.0.tgz", + "integrity": "sha512-qjldZMBpfxKwI4ODytX6raF1WE+Qov0wTW4+tkofjas1b8e0WmVs+Pw4/YlmjJNOKRLD1usYkP7QlmPLvyzZSA==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/memcached": "^2.2.6" }, @@ -883,12 +823,11 @@ } }, "node_modules/@opentelemetry/instrumentation-mongodb": { - "version": "0.50.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.50.0.tgz", - "integrity": "sha512-DtwJMjYFXFT5auAvv8aGrBj1h3ciA/dXQom11rxL7B1+Oy3FopSpanvwYxJ+z0qmBrQ1/iMuWELitYqU4LnlkQ==", - "license": "Apache-2.0", + "version": "0.51.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.51.0.tgz", + "integrity": "sha512-cMKASxCX4aFxesoj3WK8uoQ0YUrRvnfxaO72QWI2xLu5ZtgX/QvdGBlU3Ehdond5eb74c2s1cqRQUIptBnKz1g==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -899,13 +838,12 @@ } }, "node_modules/@opentelemetry/instrumentation-mongoose": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.45.0.tgz", - "integrity": "sha512-zHgNh+A01C5baI2mb5dAGyMC7DWmUpOfwpV8axtC0Hd5Uzqv+oqKgKbVDIVhOaDkPxjgVJwYF9YQZl2pw2qxIA==", - "license": "Apache-2.0", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.0.tgz", + "integrity": "sha512-mtVv6UeaaSaWTeZtLo4cx4P5/ING2obSqfWGItIFSunQBrYROfhuVe7wdIrFUs2RH1tn2YYpAJyMaRe/bnTTIQ==", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -916,12 +854,11 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.44.0.tgz", - "integrity": "sha512-al7jbXvT/uT1KV8gdNDzaWd5/WXf+mrjrsF0/NtbnqLa0UUFGgQnoK3cyborgny7I+KxWhL8h7YPTf6Zq4nKsg==", - "license": "Apache-2.0", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.0.tgz", + "integrity": "sha512-tWWyymgwYcTwZ4t8/rLDfPYbOTF3oYB8SxnYMtIQ1zEf5uDm90Ku3i6U/vhaMyfHNlIHvDhvJh+qx5Nc4Z3Acg==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/mysql": "2.15.26" }, @@ -933,12 +870,11 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql2": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.44.0.tgz", - "integrity": "sha512-e9QY4AGsjGFwmfHd6kBa4yPaQZjAq2FuxMb0BbKlXCAjG+jwqw+sr9xWdJGR60jMsTq52hx3mAlE3dUJ9BipxQ==", - "license": "Apache-2.0", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.0.tgz", + "integrity": "sha512-qLslv/EPuLj0IXFvcE3b0EqhWI8LKmrgRPIa4gUd8DllbBpqJAvLNJSv3cC6vWwovpbSI3bagNO/3Q2SuXv2xA==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1" }, @@ -950,12 +886,11 @@ } }, "node_modules/@opentelemetry/instrumentation-nestjs-core": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.43.0.tgz", - "integrity": "sha512-NEo4RU7HTjiaXk3curqXUvCb9alRiFWxQY//+hvDXwWLlADX2vB6QEmVCeEZrKO+6I/tBrI4vNdAnbCY9ldZVg==", - "license": "Apache-2.0", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.44.0.tgz", + "integrity": "sha512-t16pQ7A4WYu1yyQJZhRKIfUNvl5PAaF2pEteLvgJb/BWdd1oNuU1rOYt4S825kMy+0q4ngiX281Ss9qiwHfxFQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -966,12 +901,11 @@ } }, "node_modules/@opentelemetry/instrumentation-net": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.42.0.tgz", - "integrity": "sha512-RCX1e4aHBxpTdm3xyQWDF6dbfclRY1xXAzZnEwuFj1IO+DAqnu8oO11NRBIfH6TNRBmeBKbpiaGbmzCV9ULwIA==", - "license": "Apache-2.0", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.43.0.tgz", + "integrity": "sha512-jFzYpCGg1+s4uePNC86GcdzsYzDZpfVMDsHNZzw5MX6tMWyc2jtiXBFWed41HpWOtkIRU/SJd7KR0k1WjNZRuQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -982,13 +916,12 @@ } }, "node_modules/@opentelemetry/instrumentation-pg": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.49.0.tgz", - "integrity": "sha512-3alvNNjPXVdAPdY1G7nGRVINbDxRK02+KAugDiEpzw0jFQfU8IzFkSWA4jyU4/GbMxKvHD+XIOEfSjpieSodKw==", - "license": "Apache-2.0", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.50.0.tgz", + "integrity": "sha512-TtLxDdYZmBhFswm8UIsrDjh/HFBeDXd4BLmE8h2MxirNHewLJ0VS9UUddKKEverb5Sm2qFVjqRjcU+8Iw4FJ3w==", "dependencies": { "@opentelemetry/core": "^1.26.0", - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "1.27.0", "@opentelemetry/sql-common": "^0.40.1", "@types/pg": "8.6.1", @@ -1005,20 +938,18 @@ "version": "1.27.0", "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", - "license": "Apache-2.0", "engines": { "node": ">=14" } }, "node_modules/@opentelemetry/instrumentation-pino": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.45.0.tgz", - "integrity": "sha512-u7XwRdMDPzB6PHRo1EJNxTmjpHPnLpssYlr5t89aWFXP6fP3M2oRKjyX8EZHTSky/6GOMy860mzmded2VVFvfg==", - "license": "Apache-2.0", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.46.0.tgz", + "integrity": "sha512-TFjW24fwc/5KafDZuXbdViGiTym/6U6tDnOEkM5K9LIKsySMWb8xNIVE7y/6B8zDwImncEssNN1t42NixQJqug==", "dependencies": { - "@opentelemetry/api-logs": "^0.56.0", + "@opentelemetry/api-logs": "^0.57.0", "@opentelemetry/core": "^1.25.0", - "@opentelemetry/instrumentation": "^0.56.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -1028,12 +959,11 @@ } }, "node_modules/@opentelemetry/instrumentation-redis": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.45.0.tgz", - "integrity": "sha512-IKooJ9pUwPhL5nGEMi9QXvO6pMhwgJe6BzmZ0BMoZweKasC0Y0GekKjPw86Lhx+X1xoJCOFJhoWE9c5SnBJVcw==", - "license": "Apache-2.0", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.46.0.tgz", + "integrity": "sha512-dXgSf+h+v3Bl4/NYzcSHG0NtqbXz74ph9J1ZBwxTnaB79u+C+ntfqtNt9jklIEAEZ1jR0jRCsVbiZyOpoCpTOg==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, @@ -1045,12 +975,11 @@ } }, "node_modules/@opentelemetry/instrumentation-redis-4": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.45.0.tgz", - "integrity": "sha512-Sjgym1xn3mdxPRH5CNZtoz+bFd3E3NlGIu7FoYr4YrQouCc9PbnmoBcmSkEdDy5LYgzNildPgsjx9l0EKNjKTQ==", - "license": "Apache-2.0", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.0.tgz", + "integrity": "sha512-aTUWbzbFMFeRODn3720TZO0tsh/49T8H3h8vVnVKJ+yE36AeW38Uj/8zykQ/9nO8Vrtjr5yKuX3uMiG/W8FKNw==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, @@ -1062,13 +991,12 @@ } }, "node_modules/@opentelemetry/instrumentation-restify": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.44.0.tgz", - "integrity": "sha512-JUIs6NcSkH+AtUgaUknD+1M4GQA5vOPKqwJqdaJbaEQzHo+QTDn8GY1iiSKXktL68OwRddbyQv6tu2NyCGcKSw==", - "license": "Apache-2.0", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.45.0.tgz", + "integrity": "sha512-CJ5vq14Plh4W4382Jd/jpNEJStqwqbCzZH1Op4EZVPxXhYOwCafgyflOqjxXSzTvqzhaPDT+A079ix5ebQUlYw==", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1079,12 +1007,11 @@ } }, "node_modules/@opentelemetry/instrumentation-router": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.43.0.tgz", - "integrity": "sha512-IkSBWfzlpwLZSJMj3rDG21bDYqbWvW3D/HEx5yCxjUUWVbcz9tRKXjxwG1LB6ZJfnXwwVIOgbz+7XW0HyAXr9Q==", - "license": "Apache-2.0", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.44.0.tgz", + "integrity": "sha512-rmQZKYcof4M6vQjwtrlfybQo7BSD0mxkXdhfNHWxFjxOFGw9i7EuXSYLnThcVAqNnJ1EljzZiHzaJiq5Ehcb3A==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1095,12 +1022,11 @@ } }, "node_modules/@opentelemetry/instrumentation-runtime-node": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-runtime-node/-/instrumentation-runtime-node-0.11.0.tgz", - "integrity": "sha512-d7ZdzwnCpqaqvHkjowh8WA7/ZYr1jbGIo8QIpNPO+fqaxcm5NkzwP4kGpxI4PTnmeUTKcd6Bl/cPcKkR89u0ng==", - "license": "Apache-2.0", + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-runtime-node/-/instrumentation-runtime-node-0.12.1.tgz", + "integrity": "sha512-l+BnkJVAN3bFugDMW9IxGwtdlA6HxLYDkP/YdEJ8i5g7vbS8upxTutyCQVVg8eSL4JABN3LRrFmMekUXdpyJLg==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=17.4.0" @@ -1110,12 +1036,11 @@ } }, "node_modules/@opentelemetry/instrumentation-socket.io": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.45.0.tgz", - "integrity": "sha512-X/CUjHqX1mZHEqXjD4AgVA5VXW1JHIauj1LDEjUDky/3RCsUTysj031x0Sq+8yBwcPyHF6k9vZ8DNw+CfxscOQ==", - "license": "Apache-2.0", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.46.0.tgz", + "integrity": "sha512-BU3XGT63ziF0S9Ky0YevCuMhHUq6U+Wi1g/piJcB16nOqlfd1SW6EACl5LrUe+aNZk2qIXfuS7YV8R+H99+XQQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1126,12 +1051,11 @@ } }, "node_modules/@opentelemetry/instrumentation-tedious": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.17.0.tgz", - "integrity": "sha512-yRBz2409an03uVd1Q2jWMt3SqwZqRFyKoWYYX3hBAtPDazJ4w5L+1VOij71TKwgZxZZNdDBXImTQjii+VeuzLg==", - "license": "Apache-2.0", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.0.tgz", + "integrity": "sha512-9zhjDpUDOtD+coeADnYEJQ0IeLVCj7w/hqzIutdp5NqS1VqTAanaEfsEcSypyvYv5DX3YOsTUoF+nr2wDXPETA==", "dependencies": { - "@opentelemetry/instrumentation": "^0.56.0", + "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/tedious": "^4.0.14" }, @@ -1143,13 +1067,12 @@ } }, "node_modules/@opentelemetry/instrumentation-undici": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.9.0.tgz", - "integrity": "sha512-lxc3cpUZ28CqbrWcUHxGW/ObDpMOYbuxF/ZOzeFZq54P9uJ2Cpa8gcrC9F716mtuiMaekwk8D6n34vg/JtkkxQ==", - "license": "Apache-2.0", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.0.tgz", + "integrity": "sha512-vm+V255NGw9gaSsPD6CP0oGo8L55BffBc8KnxqsMuc6XiAD1L8SFNzsW0RHhxJFqy9CJaJh+YiJ5EHXuZ5rZBw==", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.56.0" + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -1159,13 +1082,12 @@ } }, "node_modules/@opentelemetry/instrumentation-winston": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.43.0.tgz", - "integrity": "sha512-TVvRwqjmf4+CcjsdkXc+VHiIG0Qzzim5dx8cN5wXRt4+UYIjyZpnhi/WmSjC0fJdkKb6DNjTIw7ktmB/eRj/jQ==", - "license": "Apache-2.0", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.44.0.tgz", + "integrity": "sha512-2uIrdmDIU9qJuHHKXTI3Gef+tNQmKtcwXDA6S0tm+KpKgkMwZB6AC0rNmGNQsxbGJSORj0NJvy5TVvk6jjsaqg==", "dependencies": { - "@opentelemetry/api-logs": "^0.56.0", - "@opentelemetry/instrumentation": "^0.56.0" + "@opentelemetry/api-logs": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.0" }, "engines": { "node": ">=14" @@ -1175,13 +1097,12 @@ } }, "node_modules/@opentelemetry/otlp-exporter-base": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.56.0.tgz", - "integrity": "sha512-eURvv0fcmBE+KE1McUeRo+u0n18ZnUeSc7lDlW/dzlqFYasEbsztTK4v0Qf8C4vEY+aMTjPKUxBG0NX2Te3Pmw==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.57.1.tgz", + "integrity": "sha512-GNBJAEYfeiYJQ3O2dvXgiNZ/qjWrBxSb1L1s7iV/jKBRGMN3Nv+miTk2SLeEobF5E5ZK4rVcHKlBZ71bPVIv/g==", "dependencies": { - "@opentelemetry/core": "1.29.0", - "@opentelemetry/otlp-transformer": "0.56.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-transformer": "0.57.1" }, "engines": { "node": ">=14" @@ -1191,15 +1112,14 @@ } }, "node_modules/@opentelemetry/otlp-grpc-exporter-base": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.56.0.tgz", - "integrity": "sha512-QqM4si8Ew8CW5xVk4mYbfusJzMXyk6tkYA5SI0w/5NBxmiZZaYPwQQ2cu58XUH2IMPAsi71yLJVJQaWBBCta0A==", - "license": "Apache-2.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.57.1.tgz", + "integrity": "sha512-wWflmkDhH/3wf6yEqPmzmqA6r+A8+LQABfIVZC0jDGtWVJj6eCWcGHU41UxupMbbsgjZRLYtWDilaCHOjmR7gg==", "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/otlp-exporter-base": "0.56.0", - "@opentelemetry/otlp-transformer": "0.56.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1" }, "engines": { "node": ">=14" @@ -1209,17 +1129,16 @@ } }, "node_modules/@opentelemetry/otlp-transformer": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.56.0.tgz", - "integrity": "sha512-kVkH/W2W7EpgWWpyU5VnnjIdSD7Y7FljQYObAQSKdRcejiwMj2glypZtUdfq1LTJcv4ht0jyTrw1D3CCxssNtQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-logs": "0.56.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/resources": "1.29.0", - "@opentelemetry/sdk-logs": "0.56.0", - "@opentelemetry/sdk-metrics": "1.29.0", - "@opentelemetry/sdk-trace-base": "1.29.0", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.57.1.tgz", + "integrity": "sha512-EX67y+ukNNfFrOLyjYGw8AMy0JPIlEX1dW60SGUNZWW2hSQyyolX7EqFuHP5LtXLjJHNfzx5SMBVQ3owaQCNDw==", + "dependencies": { + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-metrics": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", "protobufjs": "^7.3.0" }, "engines": { @@ -1229,28 +1148,10 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/sdk-logs": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.56.0.tgz", - "integrity": "sha512-OS0WPBJF++R/cSl+terUjQH5PebloidB1Jbbecgg2rnCmQbTST9xsRes23bLfDQVRvmegmHqDh884h0aRdJyLw==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-logs": "0.56.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/resources": "1.29.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.4.0 <1.10.0" - } - }, "node_modules/@opentelemetry/propagation-utils": { - "version": "0.30.14", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.14.tgz", - "integrity": "sha512-RsdKGFd0PYG5Aop9aq8khYbR8Oq+lYTQBX/9/pk7b+8+0WwdFqrvGDmRxpBAH9hgIvtUgETeshlYctwjo2l9SQ==", - "license": "Apache-2.0", + "version": "0.30.15", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.15.tgz", + "integrity": "sha512-nQ30K+eXTkd9Kt8yep9FPrqogS712GvdkV6R1T+xZMSZnFrRCyZuWxMtP3+s3hrK2HWw3ti4lsIfBzsHWYiyrA==", "engines": { "node": ">=14" }, @@ -1259,12 +1160,11 @@ } }, "node_modules/@opentelemetry/propagator-b3": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.29.0.tgz", - "integrity": "sha512-ktsNDlqhu+/IPGEJRMj81upg2JupUp+SwW3n1ZVZTnrDiYUiMUW41vhaziA7Q6UDhbZvZ58skDpQhe2ZgNIPvg==", - "license": "Apache-2.0", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.30.1.tgz", + "integrity": "sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ==", "dependencies": { - "@opentelemetry/core": "1.29.0" + "@opentelemetry/core": "1.30.1" }, "engines": { "node": ">=14" @@ -1274,12 +1174,11 @@ } }, "node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.29.0.tgz", - "integrity": "sha512-EXIEYmFgybnFMijVgqx1mq/diWwSQcd0JWVksytAVQEnAiaDvP45WuncEVQkFIAC0gVxa2+Xr8wL5pF5jCVKbg==", - "license": "Apache-2.0", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.30.1.tgz", + "integrity": "sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg==", "dependencies": { - "@opentelemetry/core": "1.29.0" + "@opentelemetry/core": "1.30.1" }, "engines": { "node": ">=14" @@ -1292,16 +1191,14 @@ "version": "0.36.2", "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz", "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==", - "license": "Apache-2.0", "engines": { "node": ">=14" } }, "node_modules/@opentelemetry/resource-detector-alibaba-cloud": { - "version": "0.29.6", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.29.6.tgz", - "integrity": "sha512-BrwutS9Koh08jFhwencsc1t60qEUueMxN+YcN78LE+3r6JMkYgrQzk7C8rJe0nww8KpjZ6A2n7PW+C0FAr8oxg==", - "license": "Apache-2.0", + "version": "0.29.7", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.29.7.tgz", + "integrity": "sha512-PExUl/R+reSQI6Y/eNtgAsk6RHk1ElYSzOa8/FHfdc/nLmx9sqMasBEpLMkETkzDP7t27ORuXe4F9vwkV2uwwg==", "dependencies": { "@opentelemetry/core": "^1.26.0", "@opentelemetry/resources": "^1.10.0", @@ -1315,10 +1212,9 @@ } }, "node_modules/@opentelemetry/resource-detector-aws": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.9.0.tgz", - "integrity": "sha512-oah9Gek5rrpohjMhQYESnXMDw79wrfhOp0NhjMSjKY9EvNJuDurk/HU3TJ8r2xd/xpGZlcHRZcsJ+qR+tLiQ4g==", - "license": "Apache-2.0", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.10.0.tgz", + "integrity": "sha512-cTF2R6r+m4/vXEZwiAeoIZ3XOPmtQpGrMY4mSltshwKYhZwdJVJOC6l/MWm4cF7hB9+Hp/VRBjJiNw7OgCLbOg==", "dependencies": { "@opentelemetry/core": "^1.0.0", "@opentelemetry/resources": "^1.10.0", @@ -1332,10 +1228,9 @@ } }, "node_modules/@opentelemetry/resource-detector-azure": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.4.0.tgz", - "integrity": "sha512-Ix3DwsbUWyLbBCZ1yqT3hJxc5wFPaJ6dvsIgJA/nmjScwscRCWQqTWXywY4+Q+tytLPnuAKZWbBhxcNvNlcn5Q==", - "license": "Apache-2.0", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.5.0.tgz", + "integrity": "sha512-FKcSmAKBKTD04b0CVQxY+H32Y0sWCUD9U8v1BYXStmwiS9DfQ5Lqr73qcmXvKIs8HXZtxYfHzXZY+BgcPTFKww==", "dependencies": { "@opentelemetry/core": "^1.25.1", "@opentelemetry/resources": "^1.10.1", @@ -1349,10 +1244,9 @@ } }, "node_modules/@opentelemetry/resource-detector-container": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.5.2.tgz", - "integrity": "sha512-P06PiIC3kDa/UTLupClJvhLeub84x3eNkDth2yXaMP3UZe/BRGv+R6eeUbMN/MvZhARkpSFnoWpXBHpnq/JiYQ==", - "license": "Apache-2.0", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.5.3.tgz", + "integrity": "sha512-x5DxWu+ZALBuFpxwO2viv9ktH4Y3Gk9LaYKn2U8J+aeD412iy/OcGLPbQ76Px7pQ8qaJ5rnjcevBOHYT4aA+zQ==", "dependencies": { "@opentelemetry/core": "^1.26.0", "@opentelemetry/resources": "^1.10.0", @@ -1366,10 +1260,9 @@ } }, "node_modules/@opentelemetry/resource-detector-gcp": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.31.0.tgz", - "integrity": "sha512-KNd2Ab3hc0PsBVtWMie11AbQ7i1KXNPYlgTsyGPCHBed6KARVfPekfjWbPEbTXwart4la98abxL0sJLsfgyJSA==", - "license": "Apache-2.0", + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.32.0.tgz", + "integrity": "sha512-+WdWSG4sZAfsk5DvRj/OUmatsHc+7Rdz8xdmxQdr1jpfUWjcKwOkGA4rondIf2ou/qPLOeYCs6hLLexsRdZaUw==", "dependencies": { "@opentelemetry/core": "^1.0.0", "@opentelemetry/resources": "^1.10.0", @@ -1384,12 +1277,11 @@ } }, "node_modules/@opentelemetry/resources": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.29.0.tgz", - "integrity": "sha512-s7mLXuHZE7RQr1wwweGcaRp3Q4UJJ0wazeGlc/N5/XSe6UyXfsh1UQGMADYeg7YwD+cEdMtU1yJAUXdnFzYzyQ==", - "license": "Apache-2.0", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz", + "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", "dependencies": { - "@opentelemetry/core": "1.29.0", + "@opentelemetry/core": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { @@ -1399,44 +1291,29 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@opentelemetry/sdk-metrics": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.29.0.tgz", - "integrity": "sha512-MkVtuzDjXZaUJSuJlHn6BSXjcQlMvHcsDV7LjY4P6AJeffMa4+kIGDjzsCf6DkAh6Vqlwag5EWEam3KZOX5Drw==", - "license": "Apache-2.0", + "node_modules/@opentelemetry/sdk-logs": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.57.1.tgz", + "integrity": "sha512-jGdObb/BGWu6Peo3cL3skx/Rl1Ak/wDDO3vpPrrThGbqE7isvkCsX6uE+OAt8Ayjm9YC8UGkohWbLR09JmM0FA==", "dependencies": { - "@opentelemetry/core": "1.29.0", - "@opentelemetry/resources": "1.29.0" + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.10.0" + "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, - "node_modules/@opentelemetry/sdk-node": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.56.0.tgz", - "integrity": "sha512-FOY7tWboBBxqftLNHPJFmDXo9fRoPd2PlzfEvSd6058BJM9gY4pWCg8lbVlu03aBrQjcfCTAhXk/tz1Yqd/m6g==", - "license": "Apache-2.0", + "node_modules/@opentelemetry/sdk-metrics": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.30.1.tgz", + "integrity": "sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog==", "dependencies": { - "@opentelemetry/api-logs": "0.56.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/exporter-logs-otlp-grpc": "0.56.0", - "@opentelemetry/exporter-logs-otlp-http": "0.56.0", - "@opentelemetry/exporter-logs-otlp-proto": "0.56.0", - "@opentelemetry/exporter-trace-otlp-grpc": "0.56.0", - "@opentelemetry/exporter-trace-otlp-http": "0.56.0", - "@opentelemetry/exporter-trace-otlp-proto": "0.56.0", - "@opentelemetry/exporter-zipkin": "1.29.0", - "@opentelemetry/instrumentation": "0.56.0", - "@opentelemetry/resources": "1.29.0", - "@opentelemetry/sdk-logs": "0.56.0", - "@opentelemetry/sdk-metrics": "1.29.0", - "@opentelemetry/sdk-trace-base": "1.29.0", - "@opentelemetry/sdk-trace-node": "1.29.0", - "@opentelemetry/semantic-conventions": "1.28.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1" }, "engines": { "node": ">=14" @@ -1445,31 +1322,46 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, - "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/sdk-logs": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.56.0.tgz", - "integrity": "sha512-OS0WPBJF++R/cSl+terUjQH5PebloidB1Jbbecgg2rnCmQbTST9xsRes23bLfDQVRvmegmHqDh884h0aRdJyLw==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-logs": "0.56.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/resources": "1.29.0" + "node_modules/@opentelemetry/sdk-node": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.57.1.tgz", + "integrity": "sha512-0i25YQCpNiE1RDiaZ6ECO3Hgd6DIJeyHyA2AY9C4szMdZV5cM2m8/nrwK6fyNZdOEjRd54D/FkyP3aqZVIPGvg==", + "dependencies": { + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/exporter-logs-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-logs-otlp-http": "0.57.1", + "@opentelemetry/exporter-logs-otlp-proto": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-proto": "0.57.1", + "@opentelemetry/exporter-prometheus": "0.57.1", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-trace-otlp-http": "0.57.1", + "@opentelemetry/exporter-trace-otlp-proto": "0.57.1", + "@opentelemetry/exporter-zipkin": "1.30.1", + "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-metrics": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", + "@opentelemetry/sdk-trace-node": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.4.0 <1.10.0" + "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.29.0.tgz", - "integrity": "sha512-hEOpAYLKXF3wGJpXOtWsxEtqBgde0SCv+w+jvr3/UusR4ll3QrENEGnSl1WDCyRrpqOQ5NCNOvZch9UFVa7MnQ==", - "license": "Apache-2.0", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz", + "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==", "dependencies": { - "@opentelemetry/core": "1.29.0", - "@opentelemetry/resources": "1.29.0", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { @@ -1480,16 +1372,15 @@ } }, "node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.29.0.tgz", - "integrity": "sha512-ZpGYt+VnMu6O0SRKzhuIivr7qJm3GpWnTCMuJspu4kt3QWIpIenwixo5Vvjuu3R4h2Onl/8dtqAiPIs92xd5ww==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/context-async-hooks": "1.29.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/propagator-b3": "1.29.0", - "@opentelemetry/propagator-jaeger": "1.29.0", - "@opentelemetry/sdk-trace-base": "1.29.0", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.30.1.tgz", + "integrity": "sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ==", + "dependencies": { + "@opentelemetry/context-async-hooks": "1.30.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/propagator-b3": "1.30.1", + "@opentelemetry/propagator-jaeger": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", "semver": "^7.5.2" }, "engines": { @@ -1512,7 +1403,6 @@ "version": "0.40.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz", "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==", - "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.1.0" }, @@ -1523,19 +1413,6 @@ "@opentelemetry/api": "^1.1.0" } }, - "node_modules/@protobuf-ts/runtime": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.4.tgz", - "integrity": "sha512-vHRFWtJJB/SiogWDF0ypoKfRIZ41Kq+G9cEFj6Qm1eQaAhJ1LDFvgZ7Ja4tb3iLOQhz0PaoPnnOijF1qmEqTxg==" - }, - "node_modules/@protobuf-ts/runtime-rpc": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime-rpc/-/runtime-rpc-2.9.4.tgz", - "integrity": "sha512-y9L9JgnZxXFqH5vD4d7j9duWvIJ7AShyBRoNKJGhu9Q27qIbchfzli66H9RvrQNIFk5ER7z1Twe059WZGqERcA==", - "dependencies": { - "@protobuf-ts/runtime": "^2.9.4" - } - }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -1593,14 +1470,12 @@ "node_modules/@types/aws-lambda": { "version": "8.10.143", "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.143.tgz", - "integrity": "sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==", - "license": "MIT" + "integrity": "sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==" }, "node_modules/@types/bunyan": { "version": "1.8.9", "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.9.tgz", "integrity": "sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==", - "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1609,7 +1484,6 @@ "version": "3.4.36", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", - "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1618,7 +1492,6 @@ "version": "2.2.10", "resolved": "https://registry.npmjs.org/@types/memcached/-/memcached-2.2.10.tgz", "integrity": "sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==", - "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1627,7 +1500,6 @@ "version": "2.15.26", "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz", "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==", - "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1644,7 +1516,6 @@ "version": "8.6.1", "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", - "license": "MIT", "dependencies": { "@types/node": "*", "pg-protocol": "*", @@ -1655,7 +1526,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz", "integrity": "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==", - "license": "MIT", "dependencies": { "@types/pg": "*" } @@ -1670,7 +1540,6 @@ "version": "4.0.14", "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz", "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==", - "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1709,7 +1578,6 @@ "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -1752,20 +1620,6 @@ "node": ">=8.0.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/bignumber.js": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", @@ -1775,24 +1629,6 @@ "node": "*" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/cjs-module-lexer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", @@ -1845,46 +1681,11 @@ } } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -1902,8 +1703,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-redact": { "version": "3.3.0", @@ -1914,24 +1714,24 @@ } }, "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "license": "BSD-3-Clause" - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz", + "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] }, "node_modules/forwarded-parse": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/forwarded-parse/-/forwarded-parse-2.1.2.tgz", - "integrity": "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==", - "license": "MIT" + "integrity": "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==" }, "node_modules/function-bind": { "version": "1.1.2", @@ -1991,35 +1791,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/grpc-js-health-check": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/grpc-js-health-check/-/grpc-js-health-check-1.2.2.tgz", @@ -2031,53 +1802,6 @@ "lodash": "^4.17.21" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -2119,42 +1843,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", "engines": { "node": ">=0.8.19" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-core-module": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.0.tgz", @@ -2178,20 +1870,6 @@ "node": ">=8" } }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -2204,20 +1882,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "dependencies": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/json-bigint": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", @@ -2228,10 +1892,9 @@ } }, "node_modules/json-logic-engine": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/json-logic-engine/-/json-logic-engine-1.3.4.tgz", - "integrity": "sha512-p+WXFVTDWjZiM45+H2MSnAz984PPt2QampUGeMmgxWllsJjF8j8ucA3llmbL0xJkkV/7uj4MhhgJIYZ1MbkGiA==", - "license": "MIT", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/json-logic-engine/-/json-logic-engine-4.0.2.tgz", + "integrity": "sha512-LvKZcgQ1c2fZ0/wl+mjnerllVWdKSR2y24AQjy0bnVgOg3ZqQBTbCeMmmn518F+GhdAc1VOXHbyOAf7rQy6qRA==", "engines": { "node": ">=12.22.7" } @@ -2239,8 +1902,7 @@ "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/lodash": { "version": "4.17.21", @@ -2258,12 +1920,11 @@ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, "node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "license": "ISC", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/module-details-from-path": { @@ -2302,7 +1963,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "license": "MIT", "engines": { "node": ">= 6" } @@ -2325,7 +1985,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "license": "ISC", "engines": { "node": ">=4.0.0" } @@ -2333,14 +1992,12 @@ "node_modules/pg-protocol": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz", - "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==", - "license": "MIT" + "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==" }, "node_modules/pg-types": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "license": "MIT", "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", @@ -2353,10 +2010,9 @@ } }, "node_modules/pino": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", - "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", - "license": "MIT", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.6.0.tgz", + "integrity": "sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==", "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", @@ -2389,19 +2045,10 @@ "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", "license": "MIT" }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "license": "MIT", "engines": { "node": ">=4" } @@ -2410,7 +2057,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2419,7 +2065,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2428,7 +2073,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "license": "MIT", "dependencies": { "xtend": "^4.0.0" }, @@ -2492,7 +2136,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2548,22 +2191,6 @@ "node": ">=10" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/shimmer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", @@ -2647,35 +2274,21 @@ "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, "node_modules/uuid": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.3.tgz", - "integrity": "sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", + "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], - "license": "MIT", "bin": { "uuid": "dist/esm/bin/uuid" } @@ -2696,24 +2309,6 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -2734,7 +2329,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "license": "MIT", "engines": { "node": ">=0.4" } @@ -2750,8 +2344,7 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { "version": "17.7.2", diff --git a/src/payment/package.json b/src/payment/package.json index 607dcf02c9..92bc9ec4a4 100644 --- a/src/payment/package.json +++ b/src/payment/package.json @@ -9,26 +9,26 @@ "author": "Jonathan Lui", "license": "ISC", "dependencies": { - "@grpc/grpc-js": "1.10.11", + "@grpc/grpc-js": "1.12.5", "@grpc/proto-loader": "0.7.13", - "@openfeature/flagd-provider": "0.13.1", - "@openfeature/server-sdk": "1.16.2", + "@openfeature/flagd-provider": "0.13.2", + "@openfeature/server-sdk": "1.17.0", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.54.0", - "@opentelemetry/core": "1.29.0", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.56.0", - "@opentelemetry/exporter-trace-otlp-grpc": "0.56.0", - "@opentelemetry/instrumentation-runtime-node": "0.11.0", - "@opentelemetry/resource-detector-alibaba-cloud": "0.29.6", - "@opentelemetry/resource-detector-aws": "1.9.0", - "@opentelemetry/resource-detector-container": "0.5.2", - "@opentelemetry/resource-detector-gcp": "0.31.0", - "@opentelemetry/resources": "1.29.0", - "@opentelemetry/sdk-metrics": "1.29.0", - "@opentelemetry/sdk-node": "0.56.0", + "@opentelemetry/auto-instrumentations-node": "0.55.2", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", + "@opentelemetry/instrumentation-runtime-node": "0.12.1", + "@opentelemetry/resource-detector-alibaba-cloud": "0.29.7", + "@opentelemetry/resource-detector-aws": "1.10.0", + "@opentelemetry/resource-detector-container": "0.5.3", + "@opentelemetry/resource-detector-gcp": "0.32.0", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-metrics": "1.30.1", + "@opentelemetry/sdk-node": "0.57.1", "grpc-js-health-check": "1.2.2", - "pino": "9.5.0", + "pino": "9.6.0", "simple-card-validator": "1.1.0", - "uuid": "11.0.3" + "uuid": "11.0.5" } } diff --git a/src/react-native-app/package-lock.json b/src/react-native-app/package-lock.json index ca44cc7905..ea4e5ea678 100644 --- a/src/react-native-app/package-lock.json +++ b/src/react-native-app/package-lock.json @@ -8,52 +8,52 @@ "name": "reactnativeapp", "version": "1.0.0", "dependencies": { - "@expo/metro-config": "^0.19.4", + "@expo/metro-config": "^0.19.9", "@expo/vector-icons": "^14.0.0", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/core": "^1.28.0", - "@opentelemetry/exporter-trace-otlp-http": "^0.52.0", - "@opentelemetry/instrumentation": "^0.55.0", - "@opentelemetry/instrumentation-fetch": "^0.55.0", - "@opentelemetry/instrumentation-xml-http-request": "^0.55.0", - "@opentelemetry/resources": "^1.28.0", - "@opentelemetry/sdk-trace-base": "^1.28.0", - "@opentelemetry/sdk-trace-web": "^1.28.0", + "@opentelemetry/core": "^1.30.1", + "@opentelemetry/exporter-trace-otlp-http": "^0.57.1", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/instrumentation-fetch": "^0.57.1", + "@opentelemetry/instrumentation-xml-http-request": "^0.57.1", + "@opentelemetry/resources": "^1.30.1", + "@opentelemetry/sdk-trace-base": "^1.30.1", + "@opentelemetry/sdk-trace-web": "^1.30.1", "@opentelemetry/semantic-conventions": "^1.28.0", "@react-native-async-storage/async-storage": "^2.0.0", - "@react-navigation/native": "^6.0.2", - "@tanstack/react-query": "4.36.1", + "@react-navigation/native": "^7.0.14", + "@tanstack/react-query": "5.64.1", "@types/react-native-get-random-values": "^1.8.2", "@types/uuid": "^10.0.0", - "expo": "~51.0.14", - "expo-constants": "~16.0.2", - "expo-font": "~12.0.7", - "expo-linking": "~6.3.1", - "expo-router": "~3.5.16", - "expo-splash-screen": "~0.27.5", - "expo-status-bar": "~1.12.1", - "expo-system-ui": "~3.0.6", - "expo-web-browser": "~13.0.3", - "react": "18.2.0", - "react-dom": "18.2.0", - "react-hook-form": "^7.53.2", - "react-native": "0.74.2", - "react-native-device-info": "^11.1.0", - "react-native-gesture-handler": "~2.16.1", + "expo": "~52.0.25", + "expo-constants": "~17.0.4", + "expo-font": "~13.0.3", + "expo-linking": "~7.0.4", + "expo-router": "~4.0.16", + "expo-splash-screen": "~0.29.20", + "expo-status-bar": "~2.0.1", + "expo-system-ui": "~4.0.7", + "expo-web-browser": "~14.0.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-hook-form": "^7.54.2", + "react-native": "0.76.6", + "react-native-device-info": "^14.0.2", + "react-native-gesture-handler": "~2.22.0", "react-native-get-random-values": "^1.11.0", - "react-native-reanimated": "~3.10.1", + "react-native-reanimated": "~3.16.7", "react-native-root-toast": "^3.6.0", - "react-native-safe-area-context": "4.10.1", - "react-native-screens": "3.31.1", + "react-native-safe-area-context": "5.1.0", + "react-native-screens": "4.5.0", "react-native-toast-message": "^2.2.1", "react-native-web": "~0.19.10", - "uuid": "^10.0.0" + "uuid": "^11.0.5" }, "devDependencies": { "@babel/core": "^7.20.0", "@types/jest": "^29.5.12", - "@types/react": "~18.2.45", - "@types/react-test-renderer": "^19.0.0", + "@types/react": "^18.2.0", + "@types/react-test-renderer": "^18.2.0", "eslint": "^9.18.0", "eslint-config-expo": "~8.0.1", "eslint-config-prettier": "^10.0.1", @@ -61,15 +61,30 @@ "jest": "^29.2.1", "jest-expo": "~52.0.3", "prettier": "^3.4.2", - "react-test-renderer": "19.0.0", + "react-test-renderer": "^18.2.0", "ts-proto": "1.181.1", "typescript": "~5.7.3" } }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.13.tgz", + "integrity": "sha512-jqYxOevheVTU1S36ZdzAkJIdvRp2m3OYIG5SEoKDw5NI8eVwkoI0D/Q3DYNGmXCxkA6CQuoa7zvMiDPTLqUNuw==", + "license": "MIT", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -82,6 +97,7 @@ "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", @@ -92,9 +108,10 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -103,6 +120,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.0", @@ -129,12 +147,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -147,6 +166,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "license": "MIT", "dependencies": { "@babel/types": "^7.25.9" }, @@ -154,25 +174,13 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", - "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", - "peer": true, - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", + "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", @@ -186,6 +194,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-member-expression-to-functions": "^7.25.9", @@ -203,12 +212,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", - "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.1.1", + "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "engines": { @@ -222,6 +232,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -233,21 +244,11 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" @@ -260,6 +261,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" @@ -272,6 +274,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9", @@ -288,6 +291,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "license": "MIT", "dependencies": { "@babel/types": "^7.25.9" }, @@ -296,9 +300,10 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -307,6 +312,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-wrap-function": "^7.25.9", @@ -320,13 +326,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", + "license": "MIT", "dependencies": { "@babel/helper-member-expression-to-functions": "^7.25.9", "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/traverse": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -335,22 +342,11 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", - "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" @@ -363,6 +359,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -371,6 +368,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -379,6 +377,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -387,6 +386,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "license": "MIT", "dependencies": { "@babel/template": "^7.25.9", "@babel/traverse": "^7.25.9", @@ -400,6 +400,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "license": "MIT", "dependencies": { "@babel/template": "^7.25.9", "@babel/types": "^7.26.0" @@ -412,6 +413,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "chalk": "^2.4.2", @@ -426,6 +428,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -437,6 +440,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -450,6 +454,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -457,12 +462,14 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -471,6 +478,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -479,6 +487,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -487,11 +496,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.26.0" + "@babel/types": "^7.26.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -504,6 +514,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", @@ -520,6 +531,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -535,6 +547,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -550,6 +563,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", @@ -567,6 +581,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", @@ -579,29 +594,12 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -617,6 +615,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz", "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==", + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9", @@ -633,6 +632,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.25.9.tgz", "integrity": "sha512-ykqgwNfSnNOB+C8fV5X4mG3AVmvu+WVxcaU9xHHtBb7PCrPeweMmPjGsn8eMaeJg6SJuoUuZENeeSWaarWqonQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -643,27 +643,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -675,62 +660,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-optional-chaining": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", @@ -747,6 +682,7 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", "peer": true, "engines": { "node": ">=6.9.0" @@ -759,6 +695,7 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -770,7 +707,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -782,7 +719,7 @@ "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -794,7 +731,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -809,6 +746,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -823,6 +761,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -834,6 +773,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.25.9.tgz", "integrity": "sha512-9MhJ/SMTsVqsd69GyQg89lYR4o9T+oDGv5F6IsigxxqFVOyR/IflDLYP8WDI1l8fkhNGGktqkvL5qwNCtGEpgQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -848,6 +788,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -862,6 +803,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -877,6 +819,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -891,7 +834,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -903,7 +846,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -915,6 +858,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -929,6 +873,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -940,6 +885,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -951,6 +897,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -962,6 +909,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -973,6 +921,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -984,6 +933,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -995,7 +945,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1010,7 +960,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1025,6 +975,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1039,6 +990,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", @@ -1055,6 +1007,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1069,7 +1022,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", - "peer": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-remap-async-to-generator": "^7.25.9", @@ -1086,6 +1039,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9", @@ -1099,12 +1053,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1117,6 +1072,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1131,7 +1087,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", - "peer": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9" @@ -1147,6 +1103,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.25.9", @@ -1163,6 +1120,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-compilation-targets": "^7.25.9", @@ -1182,6 +1140,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/template": "^7.25.9" @@ -1197,6 +1156,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1211,6 +1171,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.25.9", @@ -1227,6 +1188,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -1242,6 +1204,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.25.9", @@ -1258,6 +1221,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -1270,12 +1234,12 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", - "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { @@ -1289,6 +1253,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1300,12 +1265,13 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.9.tgz", - "integrity": "sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.26.5.tgz", + "integrity": "sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-flow": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/plugin-syntax-flow": "^7.26.0" }, "engines": { "node": ">=6.9.0" @@ -1318,7 +1284,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", - "peer": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" @@ -1334,6 +1300,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9", @@ -1350,6 +1317,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -1365,6 +1333,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1379,7 +1348,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", - "peer": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1394,6 +1363,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -1409,6 +1379,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-module-transforms": "^7.25.9", @@ -1422,13 +1393,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", - "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-simple-access": "^7.25.9" + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1441,6 +1412,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-module-transforms": "^7.25.9", @@ -1459,6 +1431,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-module-transforms": "^7.25.9", @@ -1475,6 +1448,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9" @@ -1490,6 +1464,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -1502,11 +1477,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.26.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1519,7 +1495,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", - "peer": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1534,6 +1510,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9", @@ -1550,6 +1527,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", @@ -1566,7 +1544,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", - "peer": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1581,6 +1559,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" @@ -1596,6 +1575,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1610,6 +1590,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9" @@ -1625,6 +1606,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-create-class-features-plugin": "^7.25.9", @@ -1641,6 +1623,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -1656,6 +1639,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1670,6 +1654,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-module-imports": "^7.25.9", @@ -1688,6 +1673,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "license": "MIT", "dependencies": { "@babel/plugin-transform-react-jsx": "^7.25.9" }, @@ -1702,6 +1688,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1716,6 +1703,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1730,6 +1718,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9" @@ -1745,7 +1734,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", - "peer": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "regenerator-transform": "^0.15.2" @@ -1761,6 +1750,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.25.9", @@ -1777,6 +1767,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -1792,6 +1783,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9", @@ -1811,6 +1803,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1825,6 +1818,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" @@ -1840,6 +1834,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1854,6 +1849,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1868,6 +1864,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -1880,13 +1877,14 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", - "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.5.tgz", + "integrity": "sha512-GJhPO0y8SD5EYVCy2Zr+9dSZcEgaSmq5BLR0Oc25TOEhC+ba49vUAGZFjy8v79z9E1mdldq4x9d1xgh4L1d5dQ==", + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", "@babel/plugin-syntax-typescript": "^7.25.9" }, @@ -1901,6 +1899,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -1916,6 +1915,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.25.9", @@ -1932,6 +1932,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9" @@ -1947,6 +1948,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.25.9", @@ -1963,6 +1965,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "license": "MIT", "peer": true, "dependencies": { "@babel/compat-data": "^7.26.0", @@ -2046,6 +2049,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.25.9.tgz", "integrity": "sha512-EASHsAhE+SSlEzJ4bzfusnXSHiU+JfAYzj+jbw2vgQKgq5HrUr8qs+vgtiEL5dOH6sEweI+PNt2D7AqrDSHyqQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-validator-option": "^7.25.9", @@ -2062,6 +2066,7 @@ "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", @@ -2073,9 +2078,10 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", - "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-validator-option": "^7.25.9", @@ -2095,6 +2101,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-validator-option": "^7.25.9", @@ -2113,6 +2120,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.25.9.tgz", "integrity": "sha512-8D43jXtGsYmEeDvm4MWHYUpWf8iiXgWYx3fW7E7Wb7Oe6FWqJPl5K6TuFW0dOwNZzEE5rjlaSJYH9JjrUKJszA==", + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", @@ -2131,6 +2139,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -2143,6 +2152,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -2151,6 +2161,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2162,6 +2173,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.25.9", "@babel/parser": "^7.25.9", @@ -2172,15 +2184,35 @@ } }, "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse--for-generate-function-map": { + "name": "@babel/traverse", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", + "@babel/types": "^7.26.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2189,9 +2221,10 @@ } }, "node_modules/@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -2204,12 +2237,14 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@egjs/hammerjs": { "version": "2.0.17", "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", + "license": "MIT", "dependencies": { "@types/hammerjs": "^2.0.36" }, @@ -2222,6 +2257,7 @@ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" }, @@ -2235,11 +2271,25 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint-community/regexpp": { "version": "4.12.1", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -2249,6 +2299,7 @@ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.5", "debug": "^4.3.1", @@ -2276,6 +2327,7 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2299,6 +2351,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -2321,6 +2374,7 @@ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -2343,6 +2397,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.1.tgz", "integrity": "sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==", + "license": "MIT", "dependencies": { "uuid": "^8.0.0" }, @@ -2354,90 +2409,86 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/@expo/cli": { - "version": "0.18.31", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.18.31.tgz", - "integrity": "sha512-v9llw9fT3Uv+TCM6Xllo54t672CuYtinEQZ2LPJ2EJsCwuTc4Cd2gXQaouuIVD21VoeGQnr5JtJuWbF97sBKzQ==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.22.10.tgz", + "integrity": "sha512-MA4TOtf6x8ixVaQbUINgest/DsrWcMVGMmjXYtnhUfwQGvZtJC+aI+xMBM7ow2OqY2B/xfoRcgqkvWkl36yxkA==", + "license": "MIT", "dependencies": { + "@0no-co/graphql.web": "^1.0.8", "@babel/runtime": "^7.20.0", - "@expo/code-signing-certificates": "0.0.5", - "@expo/config": "~9.0.0-beta.0", - "@expo/config-plugins": "~8.0.8", - "@expo/devcert": "^1.0.0", - "@expo/env": "~0.3.0", - "@expo/image-utils": "^0.5.0", - "@expo/json-file": "^8.3.0", - "@expo/metro-config": "0.18.11", - "@expo/osascript": "^2.0.31", - "@expo/package-manager": "^1.5.0", - "@expo/plist": "^0.1.0", - "@expo/prebuild-config": "7.0.9", - "@expo/rudder-sdk-node": "1.1.1", + "@expo/code-signing-certificates": "^0.0.5", + "@expo/config": "~10.0.8", + "@expo/config-plugins": "~9.0.14", + "@expo/devcert": "^1.1.2", + "@expo/env": "~0.4.1", + "@expo/image-utils": "^0.6.4", + "@expo/json-file": "^9.0.1", + "@expo/metro-config": "~0.19.9", + "@expo/osascript": "^2.1.5", + "@expo/package-manager": "^1.7.1", + "@expo/plist": "^0.2.1", + "@expo/prebuild-config": "^8.0.25", + "@expo/rudder-sdk-node": "^1.1.1", "@expo/spawn-async": "^1.7.2", "@expo/xcpretty": "^4.3.0", - "@react-native/dev-middleware": "0.74.85", - "@urql/core": "2.3.6", - "@urql/exchange-retry": "0.3.0", + "@react-native/dev-middleware": "0.76.6", + "@urql/core": "^5.0.6", + "@urql/exchange-retry": "^1.3.0", "accepts": "^1.3.8", - "arg": "5.0.2", + "arg": "^5.0.2", "better-opn": "~3.0.2", "bplist-creator": "0.0.7", "bplist-parser": "^0.3.1", "cacache": "^18.0.2", "chalk": "^4.0.0", "ci-info": "^3.3.0", + "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "env-editor": "^0.4.1", "fast-glob": "^3.3.2", - "find-yarn-workspace-root": "~2.0.0", "form-data": "^3.0.1", - "freeport-async": "2.0.0", + "freeport-async": "^2.0.0", "fs-extra": "~8.1.0", "getenv": "^1.0.0", - "glob": "^7.1.7", - "graphql": "15.8.0", - "graphql-tag": "^2.10.1", - "https-proxy-agent": "^5.0.1", - "internal-ip": "4.3.0", + "glob": "^10.4.2", + "internal-ip": "^4.3.0", "is-docker": "^2.0.0", "is-wsl": "^2.1.1", - "js-yaml": "^3.13.1", - "json-schema-deref-sync": "^0.13.0", "lodash.debounce": "^4.0.8", - "md5hex": "^1.0.0", "minimatch": "^3.0.4", - "node-fetch": "^2.6.7", "node-forge": "^1.3.1", - "npm-package-arg": "^7.0.0", - "open": "^8.3.0", - "ora": "3.4.0", + "npm-package-arg": "^11.0.0", + "ora": "^3.4.0", "picomatch": "^3.0.1", - "pretty-bytes": "5.6.0", - "progress": "2.0.3", + "pretty-bytes": "^5.6.0", + "pretty-format": "^29.7.0", + "progress": "^2.0.3", "prompts": "^2.3.2", "qrcode-terminal": "0.11.0", "require-from-string": "^2.0.2", "requireg": "^0.2.2", "resolve": "^1.22.2", "resolve-from": "^5.0.0", - "resolve.exports": "^2.0.2", + "resolve.exports": "^2.0.3", "semver": "^7.6.0", - "send": "^0.18.0", + "send": "^0.19.0", "slugify": "^1.3.4", "source-map-support": "~0.5.21", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", - "tar": "^6.0.5", + "tar": "^6.2.1", "temp-dir": "^2.0.0", "tempy": "^0.7.1", "terminal-link": "^2.1.1", - "text-table": "^0.2.0", - "url-join": "4.0.0", + "undici": "^6.18.2", + "unique-string": "~2.0.0", "wrap-ansi": "^7.0.0", "ws": "^8.12.1" }, @@ -2445,46 +2496,95 @@ "expo-internal": "build/bin/cli" } }, - "node_modules/@expo/cli/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "node_modules/@expo/cli/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.10.4" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@expo/cli/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@expo/cli/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/cli/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@expo/code-signing-certificates": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz", + "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==", + "license": "MIT", + "dependencies": { + "node-forge": "^1.2.1", + "nullthrows": "^1.1.1" } }, - "node_modules/@expo/cli/node_modules/@expo/config": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", - "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", + "node_modules/@expo/config": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.8.tgz", + "integrity": "sha512-RaKwi8e6PbkMilRexdsxObLMdQwxhY6mlgel+l/eW+IfIw8HEydSU0ERlzYUjlGJxHLHUXe4rC2vw8FEvaowyQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~8.0.8", - "@expo/config-types": "^51.0.3", - "@expo/json-file": "^8.3.0", + "@expo/config-plugins": "~9.0.14", + "@expo/config-types": "^52.0.3", + "@expo/json-file": "^9.0.1", + "deepmerge": "^4.3.1", "getenv": "^1.0.0", - "glob": "7.1.6", + "glob": "^10.4.2", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0", + "resolve-workspace-root": "^2.0.0", "semver": "^7.6.0", "slugify": "^1.3.4", - "sucrase": "3.34.0" + "sucrase": "3.35.0" } }, - "node_modules/@expo/cli/node_modules/@expo/config-plugins": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", - "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "node_modules/@expo/config-plugins": { + "version": "9.0.14", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.14.tgz", + "integrity": "sha512-Lx1ebV95rTFKKQmbu4wMPLz65rKn7mqSpfANdCx+KwRxuLY2JQls8V4h3lQjG6dW8NWf9qV5QaEFAgNB6VMyOQ==", + "license": "MIT", "dependencies": { - "@expo/config-types": "^51.0.3", - "@expo/json-file": "~8.3.0", - "@expo/plist": "^0.1.0", + "@expo/config-types": "^52.0.3", + "@expo/json-file": "~9.0.1", + "@expo/plist": "^0.2.1", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", - "debug": "^4.3.1", - "find-up": "~5.0.0", + "debug": "^4.3.5", "getenv": "^1.0.0", - "glob": "7.1.6", + "glob": "^10.4.2", "resolve-from": "^5.0.0", "semver": "^7.5.4", "slash": "^3.0.0", @@ -2493,55 +2593,79 @@ "xml2js": "0.6.0" } }, - "node_modules/@expo/cli/node_modules/@expo/config-plugins/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "node_modules/@expo/config-plugins/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=10" } }, - "node_modules/@expo/cli/node_modules/@expo/config-types": { - "version": "51.0.3", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", - "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==" + "node_modules/@expo/config-types": { + "version": "52.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.3.tgz", + "integrity": "sha512-muxvuARmbysH5OGaiBRlh1Y6vfdmL56JtpXxB+y2Hfhu0ezG1U4FjZYBIacthckZPvnDCcP3xIu1R+eTo7/QFA==", + "license": "MIT" }, - "node_modules/@expo/cli/node_modules/@expo/config/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/@expo/config/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@expo/config/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=10" + } + }, + "node_modules/@expo/devcert": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.4.tgz", + "integrity": "sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==", + "license": "MIT", + "dependencies": { + "application-config-path": "^0.1.0", + "command-exists": "^1.2.4", + "debug": "^3.1.0", + "eol": "^0.9.1", + "get-port": "^3.2.0", + "glob": "^10.4.2", + "lodash": "^4.17.21", + "mkdirp": "^0.5.1", + "password-prompt": "^1.0.4", + "sudo-prompt": "^8.2.0", + "tmp": "^0.0.33", + "tslib": "^2.4.0" + } + }, + "node_modules/@expo/devcert/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/@expo/cli/node_modules/@expo/env": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz", - "integrity": "sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==", + "node_modules/@expo/env": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.4.1.tgz", + "integrity": "sha512-oDtbO3i9yXD1nx93acWiPTWGljJ3vABn35x1NAbqtQ2JL6mFOcRcArt1dwi4imZyLnG4VCcjabT9irj+LgYntw==", + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "debug": "^4.3.4", @@ -2550,134 +2674,195 @@ "getenv": "^1.0.0" } }, - "node_modules/@expo/cli/node_modules/@expo/json-file": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", - "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", - "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^2.2.2", - "write-file-atomic": "^2.3.0" - } - }, - "node_modules/@expo/cli/node_modules/@expo/metro-config": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.11.tgz", - "integrity": "sha512-/uOq55VbSf9yMbUO1BudkUM2SsGW1c5hr9BnhIqYqcsFv0Jp5D3DtJ4rljDKaUeNLbwr6m7pqIrkSMq5NrYf4Q==", + "node_modules/@expo/fingerprint": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.11.7.tgz", + "integrity": "sha512-2rfYVS4nqWmOPQk+AL5GPfPSawbqqmI5mL++bxAhWADt+d+fjoQYfIrGtjZxQ30f9o/a1PrRPVSuh2j09+diVg==", + "license": "MIT", "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.5", - "@babel/parser": "^7.20.0", - "@babel/types": "^7.20.0", - "@expo/config": "~9.0.0-beta.0", - "@expo/env": "~0.3.0", - "@expo/json-file": "~8.3.0", "@expo/spawn-async": "^1.7.2", - "chalk": "^4.1.0", - "debug": "^4.3.2", - "find-yarn-workspace-root": "~2.0.0", - "fs-extra": "^9.1.0", + "arg": "^5.0.2", + "chalk": "^4.1.2", + "debug": "^4.3.4", + "find-up": "^5.0.0", "getenv": "^1.0.0", - "glob": "^7.2.3", - "jsc-safe-url": "^0.2.4", - "lightningcss": "~1.19.0", - "postcss": "~8.4.32", - "resolve-from": "^5.0.0" + "minimatch": "^3.0.4", + "p-limit": "^3.1.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0" + }, + "bin": { + "fingerprint": "bin/cli.js" } }, - "node_modules/@expo/cli/node_modules/@expo/metro-config/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "node_modules/@expo/fingerprint/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, - "node_modules/@expo/cli/node_modules/@expo/plist": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", - "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "node_modules/@expo/image-utils": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.6.4.tgz", + "integrity": "sha512-L++1PBzSvf5iYc6UHJ8Db8GcYNkfLDw+a+zqEFBQ3xqRXP/muxb/O7wuiMFlXrj/cfkx4e0U+z1a4ceV0A7S7Q==", + "license": "MIT", "dependencies": { - "@xmldom/xmldom": "~0.7.7", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.0.0", + "fs-extra": "9.0.0", + "getenv": "^1.0.0", + "jimp-compact": "0.16.1", + "parse-png": "^2.1.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "temp-dir": "~2.0.0", + "unique-string": "~2.0.0" } }, - "node_modules/@expo/cli/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@expo/image-utils/node_modules/fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "license": "MIT", "dependencies": { - "sprintf-js": "~1.0.2" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@expo/cli/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "node_modules/@expo/image-utils/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/@expo/cli/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, + "node_modules/@expo/image-utils/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "license": "MIT", "engines": { - "node": ">=6 <7 || >=8" + "node": ">= 10.0.0" } }, - "node_modules/@expo/cli/node_modules/fs-extra/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "node_modules/@expo/json-file": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.1.tgz", + "integrity": "sha512-ZVPhbbEBEwafPCJ0+kI25O2Iivt3XKHEKAADCml1q2cmOIbQnKgLyn8DpOJXqWEyRQr/VWS+hflBh8DU2YFSqg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.3", + "write-file-atomic": "^2.3.0" } }, - "node_modules/@expo/cli/node_modules/fs-extra/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" + "node_modules/@expo/json-file/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" } }, - "node_modules/@expo/cli/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/@expo/metro-config": { + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.19.9.tgz", + "integrity": "sha512-JAsLWhFQqwLH0KsI4OMbPXsKFji5KJEmsi+/02Sz1GCT17YrjRmv1fZ91regUS/FUH2Y/PDAE/+2ulrTgMeG7A==", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.5", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", + "@expo/config": "~10.0.8", + "@expo/env": "~0.4.1", + "@expo/json-file": "~9.0.1", + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "fs-extra": "^9.1.0", + "getenv": "^1.0.0", + "glob": "^10.4.2", + "jsc-safe-url": "^0.2.4", + "lightningcss": "~1.27.0", + "minimatch": "^3.0.4", + "postcss": "~8.4.32", + "resolve-from": "^5.0.0" + } + }, + "node_modules/@expo/metro-runtime": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-4.0.1.tgz", + "integrity": "sha512-CRpbLvdJ1T42S+lrYa1iZp1KfDeBp4oeZOK3hdpiS5n0vR0nhD6sC1gGF0sTboCTp64tLteikz5Y3j53dvgOIw==", + "license": "MIT", + "peerDependencies": { + "react-native": "*" + } + }, + "node_modules/@expo/osascript": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.5.tgz", + "integrity": "sha512-Cp7YF7msGiTAIbFdzNovwHBfecdMLVL5XzSqq4xQz72ALFCQ3uSIUXRph1QV2r61ugH7Yem0gY8yi7RcDlI4qg==", + "license": "MIT", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "exec-async": "^2.2.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=12" + } + }, + "node_modules/@expo/package-manager": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.7.1.tgz", + "integrity": "sha512-DKbELrTOdl7U3KT0C07Aka9P+sUP3LL+1UTKf1KmLx2x2gPH1IC+c68N7iQlwNt+yA37qIw6/vKoqyTGu5EL9g==", + "license": "MIT", + "dependencies": { + "@expo/json-file": "^9.0.1", + "@expo/spawn-async": "^1.7.2", + "ansi-regex": "^5.0.0", + "chalk": "^4.0.0", + "find-up": "^5.0.0", + "js-yaml": "^3.13.1", + "micromatch": "^4.0.8", + "npm-package-arg": "^11.0.0", + "ora": "^3.4.0", + "resolve-workspace-root": "^2.0.0", + "split": "^1.0.1", + "sudo-prompt": "9.1.1" + } + }, + "node_modules/@expo/package-manager/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "node_modules/@expo/cli/node_modules/js-yaml": { + "node_modules/@expo/package-manager/node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -2686,567 +2871,309 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@expo/cli/node_modules/lightningcss": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz", - "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==", + "node_modules/@expo/package-manager/node_modules/sudo-prompt": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", + "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT" + }, + "node_modules/@expo/plist": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.1.tgz", + "integrity": "sha512-9TaXGuNxa0LQwHQn4rYiU6YaERv6dPnQgsdKWq2rKKTr6LWOtGNQCi/yOk/HBLeZSxBm59APT5/6x60uRvr0Mg==", + "license": "MIT", "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.19.0", - "lightningcss-darwin-x64": "1.19.0", - "lightningcss-linux-arm-gnueabihf": "1.19.0", - "lightningcss-linux-arm64-gnu": "1.19.0", - "lightningcss-linux-arm64-musl": "1.19.0", - "lightningcss-linux-x64-gnu": "1.19.0", - "lightningcss-linux-x64-musl": "1.19.0", - "lightningcss-win32-x64-msvc": "1.19.0" - } - }, - "node_modules/@expo/cli/node_modules/lightningcss-darwin-arm64": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz", - "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" } }, - "node_modules/@expo/cli/node_modules/lightningcss-darwin-x64": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz", - "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node_modules/@expo/prebuild-config": { + "version": "8.0.25", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-8.0.25.tgz", + "integrity": "sha512-xYHV8eiydZEDedf2AGaOFRFwcGlaSzrqQH94dwX42urNCU03FO0RUb7yPp4nkb7WNFg5Ov6PDsV7ES+YwzNgYQ==", + "license": "MIT", + "dependencies": { + "@expo/config": "~10.0.8", + "@expo/config-plugins": "~9.0.14", + "@expo/config-types": "^52.0.3", + "@expo/image-utils": "^0.6.4", + "@expo/json-file": "^9.0.1", + "@react-native/normalize-colors": "0.76.6", + "debug": "^4.3.1", + "fs-extra": "^9.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "xml2js": "0.6.0" } }, - "node_modules/@expo/cli/node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz", - "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" + "node_modules/@expo/prebuild-config/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@expo/cli/node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz", - "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=10" } }, - "node_modules/@expo/cli/node_modules/lightningcss-linux-arm64-musl": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz", - "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@expo/cli/node_modules/lightningcss-linux-x64-gnu": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz", - "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@expo/cli/node_modules/lightningcss-linux-x64-musl": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz", - "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" + "node_modules/@expo/rudder-sdk-node": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", + "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", + "license": "MIT", + "dependencies": { + "@expo/bunyan": "^4.0.0", + "@segment/loosely-validate-event": "^2.0.0", + "fetch-retry": "^4.1.1", + "md5": "^2.2.1", + "node-fetch": "^2.6.1", + "remove-trailing-slash": "^0.1.0", + "uuid": "^8.3.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@expo/cli/node_modules/lightningcss-win32-x64-msvc": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz", - "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=12" } }, - "node_modules/@expo/cli/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/@expo/rudder-sdk-node/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "uuid": "dist/bin/uuid" } }, - "node_modules/@expo/cli/node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "node_modules/@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==", + "license": "MIT" + }, + "node_modules/@expo/server": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@expo/server/-/server-0.5.1.tgz", + "integrity": "sha512-lk8pKKw0eVP6rqkDR46vQB3vLA46z4KNGrqHpjD/SvMu1cGaRmQG2cQdX44mQtG8WyO9EYau+fBMHQQS2OTFKg==", + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" + "@remix-run/node": "^2.12.0", + "abort-controller": "^3.0.0", + "debug": "^4.3.4", + "source-map-support": "~0.5.21" } }, - "node_modules/@expo/cli/node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/@expo/spawn-async": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz", + "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "cross-spawn": "^7.0.3" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@expo/code-signing-certificates": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz", - "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==", - "dependencies": { - "node-forge": "^1.2.1", - "nullthrows": "^1.1.1" + "node": ">=12" } }, - "node_modules/@expo/config": { - "version": "10.0.8", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.8.tgz", - "integrity": "sha512-RaKwi8e6PbkMilRexdsxObLMdQwxhY6mlgel+l/eW+IfIw8HEydSU0ERlzYUjlGJxHLHUXe4rC2vw8FEvaowyQ==", + "node_modules/@expo/vector-icons": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.4.tgz", + "integrity": "sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ==", "license": "MIT", "dependencies": { - "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~9.0.14", - "@expo/config-types": "^52.0.3", - "@expo/json-file": "^9.0.1", - "deepmerge": "^4.3.1", - "getenv": "^1.0.0", - "glob": "^10.4.2", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "resolve-workspace-root": "^2.0.0", - "semver": "^7.6.0", - "slugify": "^1.3.4", - "sucrase": "3.35.0" + "prop-types": "^15.8.1" } }, - "node_modules/@expo/config-plugins": { - "version": "9.0.14", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.14.tgz", - "integrity": "sha512-Lx1ebV95rTFKKQmbu4wMPLz65rKn7mqSpfANdCx+KwRxuLY2JQls8V4h3lQjG6dW8NWf9qV5QaEFAgNB6VMyOQ==", - "license": "MIT", + "node_modules/@expo/xcpretty": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.2.tgz", + "integrity": "sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw==", + "license": "BSD-3-Clause", "dependencies": { - "@expo/config-types": "^52.0.3", - "@expo/json-file": "~9.0.1", - "@expo/plist": "^0.2.1", - "@expo/sdk-runtime-versions": "^1.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.5", - "getenv": "^1.0.0", - "glob": "^10.4.2", - "resolve-from": "^5.0.0", - "semver": "^7.5.4", - "slash": "^3.0.0", - "slugify": "^1.6.6", - "xcode": "^3.0.1", - "xml2js": "0.6.0" - } - }, - "node_modules/@expo/config-plugins/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "@babel/code-frame": "7.10.4", + "chalk": "^4.1.0", + "find-up": "^5.0.0", + "js-yaml": "^4.1.0" }, - "engines": { - "node": ">=10" + "bin": { + "excpretty": "build/cli.js" } }, - "node_modules/@expo/config-types": { - "version": "52.0.3", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.3.tgz", - "integrity": "sha512-muxvuARmbysH5OGaiBRlh1Y6vfdmL56JtpXxB+y2Hfhu0ezG1U4FjZYBIacthckZPvnDCcP3xIu1R+eTo7/QFA==", - "license": "MIT" - }, - "node_modules/@expo/config/node_modules/@babel/code-frame": { + "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "license": "MIT", "dependencies": { "@babel/highlight": "^7.10.4" } }, - "node_modules/@expo/config/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" - }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/devcert": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.4.tgz", - "integrity": "sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==", - "dependencies": { - "application-config-path": "^0.1.0", - "command-exists": "^1.2.4", - "debug": "^3.1.0", - "eol": "^0.9.1", - "get-port": "^3.2.0", - "glob": "^10.4.2", - "lodash": "^4.17.21", - "mkdirp": "^0.5.1", - "password-prompt": "^1.0.4", - "sudo-prompt": "^8.2.0", - "tmp": "^0.0.33", - "tslib": "^2.4.0" + "node": ">=18.18.0" } }, - "node_modules/@expo/devcert/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "ms": "^2.1.1" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" } }, - "node_modules/@expo/env": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.4.0.tgz", - "integrity": "sha512-g2JYFqck3xKIwJyK+8LxZ2ENZPWtRgjFWpeht9abnKgzXVXBeSNECFBkg+WQjQocSIdxXhEWM6hz4ZAe7Tc4ng==", - "dependencies": { - "chalk": "^4.0.0", - "debug": "^4.3.4", - "dotenv": "~16.4.5", - "dotenv-expand": "~11.0.6", - "getenv": "^1.0.0" - } - }, - "node_modules/@expo/image-utils": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.5.1.tgz", - "integrity": "sha512-U/GsFfFox88lXULmFJ9Shfl2aQGcwoKPF7fawSCLixIKtMCpsI+1r0h+5i0nQnmt9tHuzXZDL8+Dg1z6OhkI9A==", - "dependencies": { - "@expo/spawn-async": "^1.7.2", - "chalk": "^4.0.0", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "jimp-compact": "0.16.1", - "node-fetch": "^2.6.0", - "parse-png": "^2.1.0", - "resolve-from": "^5.0.0", - "semver": "^7.6.0", - "tempy": "0.3.0" - } - }, - "node_modules/@expo/image-utils/node_modules/crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/image-utils/node_modules/fs-extra": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", - "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "node": ">=18.18" }, - "engines": { - "node": ">=10" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@expo/image-utils/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" - }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@expo/image-utils/node_modules/temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=4" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@expo/image-utils/node_modules/tempy": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", - "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", "dependencies": { - "temp-dir": "^1.0.0", - "type-fest": "^0.3.1", - "unique-string": "^1.0.0" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@expo/image-utils/node_modules/type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@expo/image-utils/node_modules/unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { - "crypto-random-string": "^1.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@expo/image-utils/node_modules/universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "node_modules/@isaacs/ttlcache": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", + "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", + "license": "ISC", "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@expo/json-file": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.1.tgz", - "integrity": "sha512-ZVPhbbEBEwafPCJ0+kI25O2Iivt3XKHEKAADCml1q2cmOIbQnKgLyn8DpOJXqWEyRQr/VWS+hflBh8DU2YFSqg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^2.2.3", - "write-file-atomic": "^2.3.0" - } - }, - "node_modules/@expo/json-file/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dependencies": { - "@babel/highlight": "^7.10.4" + "node": ">=12" } }, - "node_modules/@expo/metro-config": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.19.4.tgz", - "integrity": "sha512-2SWwYN8MZvMIRawWEr+1RBYncitPwu2VMACRYig+wBycJ9fsPb6BMVmBYi+3MHDUlJHNy/Bqfw++jn1eqBFETQ==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "license": "ISC", "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.5", - "@babel/parser": "^7.20.0", - "@babel/types": "^7.20.0", - "@expo/config": "~10.0.4", - "@expo/env": "~0.4.0", - "@expo/json-file": "~9.0.0", - "@expo/spawn-async": "^1.7.2", - "chalk": "^4.1.0", - "debug": "^4.3.2", - "fs-extra": "^9.1.0", - "getenv": "^1.0.0", - "glob": "^10.4.2", - "jsc-safe-url": "^0.2.4", - "lightningcss": "~1.27.0", - "minimatch": "^3.0.4", - "postcss": "~8.4.32", + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" - } - }, - "node_modules/@expo/metro-runtime": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-3.2.3.tgz", - "integrity": "sha512-v5ji+fAGi7B9YavrxvekuF8gXEV/5fz0+PhaED5AaFDnbGB4IJIbpaiqK9nqZV1axjGZNQSw6Q8TsnFetCR3bQ==", - "peerDependencies": { - "react-native": "*" - } - }, - "node_modules/@expo/osascript": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.4.tgz", - "integrity": "sha512-LcPjxJ5FOFpqPORm+5MRLV0CuYWMthJYV6eerF+lQVXKlvgSn3EOqaHC3Vf3H+vmB0f6G4kdvvFtg40vG4bIhA==", - "dependencies": { - "@expo/spawn-async": "^1.7.2", - "exec-async": "^2.2.0" }, "engines": { - "node": ">=12" - } - }, - "node_modules/@expo/package-manager": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.6.1.tgz", - "integrity": "sha512-4rT46wP/94Ll+CWXtFKok1Lbo9XncSUtErFOo/9/3FVughGbIfdG4SKZOAWIpr9wxwEfkyhHfAP9q71ONlWODw==", - "dependencies": { - "@expo/json-file": "^9.0.0", - "@expo/spawn-async": "^1.7.2", - "ansi-regex": "^5.0.0", - "chalk": "^4.0.0", - "find-up": "^5.0.0", - "js-yaml": "^3.13.1", - "micromatch": "^4.0.8", - "npm-package-arg": "^11.0.0", - "ora": "^3.4.0", - "resolve-workspace-root": "^2.0.0", - "split": "^1.0.1", - "sudo-prompt": "9.1.1" + "node": ">=8" } }, - "node_modules/@expo/package-manager/node_modules/argparse": { + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, - "node_modules/@expo/package-manager/node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", "dependencies": { - "lru-cache": "^10.0.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@expo/package-manager/node_modules/js-yaml": { + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -3255,172 +3182,276 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@expo/package-manager/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" - }, - "node_modules/@expo/package-manager/node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@expo/package-manager/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@expo/package-manager/node_modules/sudo-prompt": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", - "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==" + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/@expo/package-manager/node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@expo/plist": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.1.tgz", - "integrity": "sha512-9TaXGuNxa0LQwHQn4rYiU6YaERv6dPnQgsdKWq2rKKTr6LWOtGNQCi/yOk/HBLeZSxBm59APT5/6x60uRvr0Mg==", + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, "license": "MIT", "dependencies": { - "@xmldom/xmldom": "~0.7.7", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@expo/prebuild-config": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.9.tgz", - "integrity": "sha512-9i6Cg7jInpnGEHN0jxnW0P+0BexnePiBzmbUvzSbRXpdXihYUX2AKMu73jgzxn5P1hXOSkzNS7umaY+BZ+aBag==", - "dependencies": { - "@expo/config": "~9.0.0-beta.0", - "@expo/config-plugins": "~8.0.8", - "@expo/config-types": "^51.0.3", - "@expo/image-utils": "^0.5.0", - "@expo/json-file": "^8.3.0", - "@react-native/normalize-colors": "0.74.85", - "debug": "^4.3.1", - "fs-extra": "^9.0.0", - "resolve-from": "^5.0.0", - "semver": "^7.6.0", - "xml2js": "0.6.0" + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "expo-modules-autolinking": ">=0.8.1" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@expo/prebuild-config/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "node_modules/@jest/core/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.10.4" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@expo/prebuild-config/node_modules/@expo/config": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", - "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", + "node_modules/@jest/create-cache-key-function": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", + "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~8.0.8", - "@expo/config-types": "^51.0.3", - "@expo/json-file": "^8.3.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "semver": "^7.6.0", - "slugify": "^1.3.4", - "sucrase": "3.34.0" + "@jest/types": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@expo/prebuild-config/node_modules/@expo/config-plugins": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", - "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "license": "MIT", "dependencies": { - "@expo/config-types": "^51.0.3", - "@expo/json-file": "~8.3.0", - "@expo/plist": "^0.1.0", - "@expo/sdk-runtime-versions": "^1.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.1", - "find-up": "~5.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "semver": "^7.5.4", - "slash": "^3.0.0", - "slugify": "^1.6.6", - "xcode": "^3.0.1", - "xml2js": "0.6.0" + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@expo/prebuild-config/node_modules/@expo/config-types": { - "version": "51.0.3", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", - "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==" + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@expo/prebuild-config/node_modules/@expo/json-file": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", - "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^2.2.2", - "write-file-atomic": "^2.3.0" + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@expo/prebuild-config/node_modules/@expo/plist": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", - "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "license": "MIT", "dependencies": { - "@xmldom/xmldom": "~0.7.7", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@expo/prebuild-config/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@expo/prebuild-config/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -3431,571 +3462,751 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@expo/prebuild-config/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" + "node_modules/@jest/reporters/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@expo/prebuild-config/node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@expo/rudder-sdk-node": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", - "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", "dependencies": { - "@expo/bunyan": "^4.0.0", - "@segment/loosely-validate-event": "^2.0.0", - "fetch-retry": "^4.1.1", - "md5": "^2.2.1", - "node-fetch": "^2.6.1", - "remove-trailing-slash": "^0.1.0", - "uuid": "^8.3.2" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@expo/rudder-sdk-node/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@expo/sdk-runtime-versions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", - "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==" - }, - "node_modules/@expo/server": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@expo/server/-/server-0.4.4.tgz", - "integrity": "sha512-q9ADBzMN5rZ/fgQ2mz5YIJuZ8gelQlhG2CQqToD+UvBLZvbaHCNxTTSs2KI1LzJvAaW5CWgWMatGvGF6iUQ0LA==", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", "dependencies": { - "@remix-run/node": "^2.7.2", - "abort-controller": "^3.0.0", - "debug": "^4.3.4", - "source-map-support": "~0.5.21" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@expo/spawn-async": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz", - "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@expo/vector-icons": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.4.tgz", - "integrity": "sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ==", + "node_modules/@jest/transform/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/@jest/transform/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "license": "ISC", "dependencies": { - "prop-types": "^15.8.1" + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@expo/xcpretty": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.1.tgz", - "integrity": "sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "7.10.4", - "chalk": "^4.1.0", - "find-up": "^5.0.0", - "js-yaml": "^4.1.0" + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, - "bin": { - "excpretty": "build/cli.js" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.10.4" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", "dependencies": { - "@hapi/hoek": "^9.0.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "engines": { - "node": ">=18.18.0" + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=18.18.0" + "node": ">= 8" } }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">= 8" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "engines": { + "node": ">= 8" } }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=12.4.0" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "license": "ISC", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "semver": "^7.3.5" }, "engines": { - "node": ">=12" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "engines": { - "node": ">=12" + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": ">=10" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", "engines": { - "node": ">=12" + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.1.tgz", + "integrity": "sha512-I4PHczeujhQAQv6ZBzqHYEUiggZL4IdSMixtVD3EYqbdrjujE7kRfI5QohjlPoJm8BvenoW5YaTMWRrbpot6tg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=14" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@opentelemetry/core": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", + "license": "Apache-2.0", "dependencies": { - "ansi-regex": "^6.0.1" + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { - "node": ">=12" + "node": ">=14" }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@opentelemetry/exporter-trace-otlp-http": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.57.1.tgz", + "integrity": "sha512-43dLEjlf6JGxpVt9RaRlJAvjHG1wGsbAuNd67RIDy/95zfKk2aNovtiGUgFdS/kcvgvS90upIUbgn0xUd9JjMg==", + "license": "Apache-2.0", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-exporter-base": "0.57.1", + "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1" }, "engines": { - "node": ">=12" + "node": ">=14" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@isaacs/ttlcache": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", - "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", + "node_modules/@opentelemetry/instrumentation": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz", + "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.57.1", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, "engines": { - "node": ">=12" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, + "node_modules/@opentelemetry/instrumentation-fetch": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fetch/-/instrumentation-fetch-0.57.1.tgz", + "integrity": "sha512-osger7F15h8sbjYMcrh5hiYk/Jb53St+iMK+7Hh2z2QjpkvCak39P5QS226KaAARVGdk9X5ZpoFzonWaFMoTjQ==", + "license": "Apache-2.0", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/sdk-trace-web": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, + "node_modules/@opentelemetry/instrumentation-xml-http-request": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-xml-http-request/-/instrumentation-xml-http-request-0.57.1.tgz", + "integrity": "sha512-tLKEvSlO/dneD/oG9OrqYwUtbAByHdBy+Awv5QZquZNan0+UnA7QHAWwa/2b6J+swi66NyXdqoqXzdBZulTLvw==", + "license": "Apache-2.0", "dependencies": { - "sprintf-js": "~1.0.2" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/sdk-trace-web": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "node_modules/@opentelemetry/instrumentation/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, + "node_modules/@opentelemetry/otlp-exporter-base": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.57.1.tgz", + "integrity": "sha512-GNBJAEYfeiYJQ3O2dvXgiNZ/qjWrBxSb1L1s7iV/jKBRGMN3Nv+miTk2SLeEobF5E5ZK4rVcHKlBZ71bPVIv/g==", + "license": "Apache-2.0", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/otlp-transformer": "0.57.1" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, + "node_modules/@opentelemetry/otlp-transformer": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.57.1.tgz", + "integrity": "sha512-EX67y+ukNNfFrOLyjYGw8AMy0JPIlEX1dW60SGUNZWW2hSQyyolX7EqFuHP5LtXLjJHNfzx5SMBVQ3owaQCNDw==", + "license": "Apache-2.0", "dependencies": { - "p-locate": "^4.1.0" + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-metrics": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", + "protobufjs": "^7.3.0" }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, + "node_modules/@opentelemetry/resources": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz", + "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", + "license": "Apache-2.0", "dependencies": { - "p-try": "^2.0.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { - "node": ">=6" + "node": ">=14" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, + "node_modules/@opentelemetry/sdk-logs": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.57.1.tgz", + "integrity": "sha512-jGdObb/BGWu6Peo3cL3skx/Rl1Ak/wDDO3vpPrrThGbqE7isvkCsX6uE+OAt8Ayjm9YC8UGkohWbLR09JmM0FA==", + "license": "Apache-2.0", "dependencies": { - "p-limit": "^2.2.0" + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1" }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, + "node_modules/@opentelemetry/sdk-metrics": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.30.1.tgz", + "integrity": "sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1" + }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz", + "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==", + "license": "Apache-2.0", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, + "node_modules/@opentelemetry/sdk-trace-web": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.30.1.tgz", + "integrity": "sha512-AUo2e+1uyTGMB36VlbvBqnCogVzQhpC7dRcVVdCrt+cFHLpFRRJcd45J2obGTgs0XiAwNLyq5bhkW3JF2NZA+A==", + "license": "Apache-2.0", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "@opentelemetry/core": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=14" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@jest/create-cache-key-function": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", - "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", - "dependencies": { - "@jest/types": "^29.6.3" - }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "license": "Apache-2.0", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=14" } }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=14" } }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz", + "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0" } }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz", + "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==", + "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3" + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0" } }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "node_modules/@react-native-async-storage/async-storage": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.1.0.tgz", + "integrity": "sha512-eAGQGPTAuFNEoIQSB5j2Jh1zm5NPyBRTfjRMfCN0W1OakC5WIB5vsDyIQhUweKN9XOE2/V07lqTMGsL0dGXNkA==", + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "merge-options": "^3.0.4" }, + "peerDependencies": { + "react-native": "^0.0.0-0 || >=0.65 <1.0" + } + }, + "node_modules/@react-native/assets-registry": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.76.6.tgz", + "integrity": "sha512-YI8HoReYiIwdFQs+k9Q9qpFTnsyYikZxgs/UVtVbhKixXDQF6F9LLvj2naOx4cfV+RGybNKxwmDl1vUok/dRFQ==", + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, + "node_modules/@react-native/babel-plugin-codegen": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.76.6.tgz", + "integrity": "sha512-yFC9I/aDBOBz3ZMlqKn2NY/mDUtCksUNZ7AQmBiTAeVTUP0ujEjE0hTOx5Qd+kok7A7hwZEX87HdSgjiJZfr5g==", + "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" + "@react-native/codegen": "0.76.6" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, + "node_modules/@react-native/babel-preset": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.76.6.tgz", + "integrity": "sha512-ojlVWY6S/VE/nb9hIRetPMTsW9ZmGb2R3dnToEXAtQQDz41eHMHXbkw/k2h0THp6qhas25ruNvn3N5n2o+lBzg==", + "license": "MIT", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" + "@babel/core": "^7.25.2", + "@babel/plugin-proposal-export-default-from": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-default-from": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-classes": "^7.25.4", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-flow-strip-types": "^7.25.2", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-runtime": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.25.2", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/template": "^7.25.0", + "@react-native/babel-plugin-codegen": "0.76.6", + "babel-plugin-syntax-hermes-parser": "^0.25.1", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@babel/core": "*" } }, - "node_modules/@jest/reporters/node_modules/glob": { + "node_modules/@react-native/codegen": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.76.6.tgz", + "integrity": "sha512-BABb3e5G/+hyQYEYi0AODWh2km2d8ERoASZr6Hv90pVXdUHRYR+yxCatX7vSd9rnDUYndqRTzD0hZWAucPNAKg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "glob": "^7.1.1", + "hermes-parser": "0.23.1", + "invariant": "^2.2.4", + "jscodeshift": "^0.14.0", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1", + "yargs": "^17.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + } + }, + "node_modules/@react-native/codegen/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4011,5177 +4222,2249 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@react-native/community-cli-plugin": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.76.6.tgz", + "integrity": "sha512-nETlc/+U5cESVluzzgN0OcVfcoMijGBaDWzOaJhoYUodcuqnqtu75XsSEc7yzlYjwNQG+vF83mu9CQGezruNMA==", + "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.27.8" + "@react-native/dev-middleware": "0.76.6", + "@react-native/metro-babel-transformer": "0.76.6", + "chalk": "^4.0.0", + "execa": "^5.1.1", + "invariant": "^2.2.4", + "metro": "^0.81.0", + "metro-config": "^0.81.0", + "metro-core": "^0.81.0", + "node-fetch": "^2.2.0", + "readline": "^1.3.0", + "semver": "^7.1.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" + }, + "peerDependencies": { + "@react-native-community/cli-server-api": "*" + }, + "peerDependenciesMeta": { + "@react-native-community/cli-server-api": { + "optional": true + } } }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, + "node_modules/@react-native/community-cli-plugin/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "node_modules/@react-native/community-cli-plugin/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, + "node_modules/@react-native/community-cli-plugin/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" + "path-key": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, + "node_modules/@react-native/community-cli-plugin/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" + "mimic-fn": "^2.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jest/transform/node_modules/signal-exit": { + "node_modules/@react-native/community-cli-plugin/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "license": "ISC" }, - "node_modules/@jest/transform/node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, + "node_modules/@react-native/debugger-frontend": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.76.6.tgz", + "integrity": "sha512-kP97xMQjiANi5/lmf8MakS7d8FTJl+BqYHQMqyvNiY+eeWyKnhqW2GL2v3eEUBAuyPBgJGivuuO4RvjZujduJg==", + "license": "BSD-3-Clause", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "node_modules/@react-native/dev-middleware": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.76.6.tgz", + "integrity": "sha512-1bAyd2/X48Nzb45s5l2omM75vy764odx/UnDs4sJfFCuK+cupU4nRPgl0XWIqgdM/2+fbQ3E4QsVS/WIKTFxvQ==", + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.76.6", + "chrome-launcher": "^0.15.2", + "chromium-edge-launcher": "^0.2.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "selfsigned": "^2.4.1", + "serve-static": "^1.13.1", + "ws": "^6.2.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "node_modules/@react-native/dev-middleware/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" + "ms": "2.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@react-native/dev-middleware/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/@react-native/dev-middleware/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@react-native/gradle-plugin": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.76.6.tgz", + "integrity": "sha512-sDzpf4eiynryoS6bpYCweGoxSmWgCSx9lzBoxIIW+S6siyGiTaffzZHWCm8mIn9UZsSPlEO37q62ggnR9Zu/OA==", + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@react-native/js-polyfills": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.76.6.tgz", + "integrity": "sha512-cDD7FynxWYxHkErZzAJtzPGhJ13JdOgL+R0riTh0hCovOfIUz9ItffdLQv2nx48lnvMTQ+HZXMnGOZnsFCNzQw==", + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@react-native/metro-babel-transformer": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.76.6.tgz", + "integrity": "sha512-xSBi9jPliThu5HRSJvluqUlDOLLEmf34zY/U7RDDjEbZqC0ufPcPS7c5XsSg0GDPiXc7lgjBVesPZsKFkoIBgA==", + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@babel/core": "^7.25.2", + "@react-native/babel-preset": "0.76.6", + "hermes-parser": "0.23.1", + "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "node": ">=18" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "@babel/core": "*" } }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", - "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", - "dev": true, - "engines": { - "node": ">=12.4.0" - } + "node_modules/@react-native/normalize-color": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz", + "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==", + "license": "MIT" }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "node_modules/@react-native/normalize-colors": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.76.6.tgz", + "integrity": "sha512-1n4udXH2Cla31iA/8eLRdhFHpYUYK1NKWCn4m1Sr9L4SarWKAYuRFliK1fcLvPPALCFoFlWvn8I0ekdUOHMzDQ==", + "license": "MIT" + }, + "node_modules/@react-native/virtualized-lists": { + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.76.6.tgz", + "integrity": "sha512-0HUWVwJbRq1BWFOu11eOWGTSmK9nMHhoMPyoI27wyWcl/nqUx7HOxMbRVq0DsTCyATSMPeF+vZ6o1REapcNWKw==", + "license": "MIT", "dependencies": { - "semver": "^7.3.5" + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" + "node": ">=18" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", - "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/api-logs": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.52.1.tgz", - "integrity": "sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==", - "dependencies": { - "@opentelemetry/api": "^1.0.0" + "peerDependencies": { + "@types/react": "^18.2.6", + "react": "*", + "react-native": "*" }, - "engines": { - "node": ">=14" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/core": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.28.0.tgz", - "integrity": "sha512-ZLwRMV+fNDpVmF2WYUdBHlq0eOWtEaUJSusrzjGnBt7iSRvfjFE3RXYUZJrqou/wIDWV0DwQ5KIfYe9WXg9Xqw==", + "node_modules/@react-navigation/bottom-tabs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.2.0.tgz", + "integrity": "sha512-1LxjgnbPyFINyf9Qr5d1YE0pYhuJayg5TCIIFQmbcX4PRhX7FKUXV7cX8OzrKXEdZi/UE/VNXugtozPAR9zgvA==", + "license": "MIT", "dependencies": { - "@opentelemetry/semantic-conventions": "1.27.0" - }, - "engines": { - "node": ">=14" + "@react-navigation/elements": "^2.2.5", + "color": "^4.2.3" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" - } - }, - "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", - "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", - "engines": { - "node": ">=14" + "@react-navigation/native": "^7.0.14", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" } }, - "node_modules/@opentelemetry/exporter-trace-otlp-http": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.52.1.tgz", - "integrity": "sha512-05HcNizx0BxcFKKnS5rwOV+2GevLTVIRA0tRgWYyw4yCgR53Ic/xk83toYKts7kbzcI+dswInUg/4s8oyA+tqg==", + "node_modules/@react-navigation/core": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.3.1.tgz", + "integrity": "sha512-S3KCGvNsoqVk8ErAtQI2EAhg9185lahF5OY01ofrrD4Ij/uk3QEHHjoGQhR5l5DXSCSKr1JbMQA7MEKMsBiWZA==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/otlp-exporter-base": "0.52.1", - "@opentelemetry/otlp-transformer": "0.52.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-trace-base": "1.25.1" - }, - "engines": { - "node": ">=14" + "@react-navigation/routers": "^7.1.2", + "escape-string-regexp": "^4.0.0", + "nanoid": "3.3.8", + "query-string": "^7.1.3", + "react-is": "^18.2.0", + "use-latest-callback": "^0.2.1", + "use-sync-external-store": "^1.2.2" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "react": ">= 18.2.0" } }, - "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/core": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", - "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "node_modules/@react-navigation/elements": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.2.5.tgz", + "integrity": "sha512-sDhE+W14P7MNWLMxXg1MEVXwkLUpMZJGflE6nQNzLmolJQIHgcia0Mrm8uRa3bQovhxYu1UzEojLZ+caoZt7Fg==", + "license": "MIT", "dependencies": { - "@opentelemetry/semantic-conventions": "1.25.1" - }, - "engines": { - "node": ">=14" + "color": "^4.2.3" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "@react-native-masked-view/masked-view": ">= 0.2.0", + "@react-navigation/native": "^7.0.14", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0" + }, + "peerDependenciesMeta": { + "@react-native-masked-view/masked-view": { + "optional": true + } } }, - "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/resources": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", - "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "node_modules/@react-navigation/native": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.0.14.tgz", + "integrity": "sha512-Gi6lLw4VOGSWAhmUdJOMauOKGK51/YA1CprjXm91sNfgERWvznqEMw8QmUQx9SEqYfi0LfZhbzpMst09SJ00lw==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" - }, - "engines": { - "node": ">=14" + "@react-navigation/core": "^7.3.1", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "3.3.8", + "use-latest-callback": "^0.2.1" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "react": ">= 18.2.0", + "react-native": "*" } }, - "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", - "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==", + "node_modules/@react-navigation/native-stack": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.2.0.tgz", + "integrity": "sha512-mw7Nq9qQrGsmJmCTwIIWB7yY/3tWYXvQswx+HJScGAadIjemvytJXm1fcl3+YZ9T9Ym0aERcVe5kDs+ny3X4vA==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" - }, - "engines": { - "node": ">=14" + "@react-navigation/elements": "^2.2.5", + "warn-once": "^0.1.1" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" - } - }, - "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", - "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", - "engines": { - "node": ">=14" + "@react-navigation/native": "^7.0.14", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" } }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.55.0.tgz", - "integrity": "sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==", + "node_modules/@react-navigation/routers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.1.2.tgz", + "integrity": "sha512-emdEjpVDK8zbiu2GChC8oYIAub9i/OpNuQJekVsbyFCBz4/TzaBzms38Q53YaNhdIFNmiYLfHv/Y1Ub7KYfm3w==", + "license": "MIT", "dependencies": { - "@opentelemetry/api-logs": "0.55.0", - "@types/shimmer": "^1.2.0", - "import-in-the-middle": "^1.8.1", - "require-in-the-middle": "^7.1.1", - "semver": "^7.5.2", - "shimmer": "^1.2.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "nanoid": "3.3.8" } }, - "node_modules/@opentelemetry/instrumentation-fetch": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fetch/-/instrumentation-fetch-0.55.0.tgz", - "integrity": "sha512-wkybQE85HzInYX2csZ4UuMlCIMCyGGHcNqL9TcoZgAZC2EuXFReTsLytoszknhcaX+P7UT9Ee3915t8KC6XP4w==", + "node_modules/@remix-run/node": { + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/@remix-run/node/-/node-2.15.2.tgz", + "integrity": "sha512-NS/h5uxje7DYCNgcKqKAiUhf0r2HVnoYUBWLyIIMmCUP1ddWurBP6xTPcWzGhEvV/EvguniYi1wJZ5+X8sonWw==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.28.0", - "@opentelemetry/instrumentation": "0.55.0", - "@opentelemetry/sdk-trace-web": "1.28.0", - "@opentelemetry/semantic-conventions": "1.27.0" + "@remix-run/server-runtime": "2.15.2", + "@remix-run/web-fetch": "^4.4.2", + "@web3-storage/multipart-parser": "^1.0.0", + "cookie-signature": "^1.1.0", + "source-map-support": "^0.5.21", + "stream-slice": "^0.1.2", + "undici": "^6.11.1" }, "engines": { - "node": ">=14" + "node": ">=18.0.0" }, "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-fetch/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", - "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "node_modules/@remix-run/router": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", + "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=14.0.0" } }, - "node_modules/@opentelemetry/instrumentation-xml-http-request": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-xml-http-request/-/instrumentation-xml-http-request-0.55.0.tgz", - "integrity": "sha512-Wlz4LzDpBFxHpb24RAM6RoiGspJ7J16ux0Xw5KVLtK3zzpQaxMYEVF0XQNC61WJJa3tRNt3XRjiQ8mrXJZxVQg==", + "node_modules/@remix-run/server-runtime": { + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.15.2.tgz", + "integrity": "sha512-OqiPcvEnnU88B8b1LIWHHkQ3Tz2GDAmQ1RihFNQsbrFKpDsQLkw0lJlnfgKA/uHd0CEEacpfV7C9qqJT3V6Z2g==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.28.0", - "@opentelemetry/instrumentation": "0.55.0", - "@opentelemetry/sdk-trace-web": "1.28.0", - "@opentelemetry/semantic-conventions": "1.27.0" + "@remix-run/router": "1.21.0", + "@types/cookie": "^0.6.0", + "@web3-storage/multipart-parser": "^1.0.0", + "cookie": "^0.6.0", + "set-cookie-parser": "^2.4.8", + "source-map": "^0.7.3", + "turbo-stream": "2.4.0" }, "engines": { - "node": ">=14" + "node": ">=18.0.0" }, "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", - "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", - "engines": { - "node": ">=14" + "node_modules/@remix-run/web-blob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-blob/-/web-blob-3.1.0.tgz", + "integrity": "sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==", + "license": "MIT", + "dependencies": { + "@remix-run/web-stream": "^1.1.0", + "web-encoding": "1.1.5" } }, - "node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.55.0.tgz", - "integrity": "sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==", + "node_modules/@remix-run/web-fetch": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@remix-run/web-fetch/-/web-fetch-4.4.2.tgz", + "integrity": "sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==", + "license": "MIT", "dependencies": { - "@opentelemetry/api": "^1.3.0" + "@remix-run/web-blob": "^3.1.0", + "@remix-run/web-file": "^3.1.0", + "@remix-run/web-form-data": "^3.1.0", + "@remix-run/web-stream": "^1.1.0", + "@web3-storage/multipart-parser": "^1.0.0", + "abort-controller": "^3.0.0", + "data-uri-to-buffer": "^3.0.1", + "mrmime": "^1.0.0" }, "engines": { - "node": ">=14" + "node": "^10.17 || >=12.3" } }, - "node_modules/@opentelemetry/instrumentation/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/otlp-exporter-base": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.52.1.tgz", - "integrity": "sha512-z175NXOtX5ihdlshtYBe5RpGeBoTXVCKPPLiQlD6FHvpM4Ch+p2B0yWKYSrBfLH24H9zjJiBdTrtD+hLlfnXEQ==", + "node_modules/@remix-run/web-file": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-file/-/web-file-3.1.0.tgz", + "integrity": "sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/otlp-transformer": "0.52.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@remix-run/web-blob": "^3.1.0" } }, - "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/core": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", - "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "node_modules/@remix-run/web-form-data": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz", + "integrity": "sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==", + "license": "MIT", "dependencies": { - "@opentelemetry/semantic-conventions": "1.25.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "web-encoding": "1.1.5" } }, - "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", - "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", - "engines": { - "node": ">=14" + "node_modules/@remix-run/web-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-stream/-/web-stream-1.1.0.tgz", + "integrity": "sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==", + "license": "MIT", + "dependencies": { + "web-streams-polyfill": "^3.1.1" } }, - "node_modules/@opentelemetry/otlp-transformer": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.52.1.tgz", - "integrity": "sha512-I88uCZSZZtVa0XniRqQWKbjAUm73I8tpEy/uJYPPYw5d7BRdVk0RfTBQw8kSUl01oVWEuqxLDa802222MYyWHg==", - "dependencies": { - "@opentelemetry/api-logs": "0.52.1", - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-logs": "0.52.1", - "@opentelemetry/sdk-metrics": "1.25.1", - "@opentelemetry/sdk-trace-base": "1.25.1", - "protobufjs": "^7.3.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.10.0" - } + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" }, - "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/core": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", - "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "node_modules/@segment/loosely-validate-event": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", + "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", "dependencies": { - "@opentelemetry/semantic-conventions": "1.25.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "component-type": "^1.2.1", + "join-component": "^1.1.0" } }, - "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", - "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "license": "BSD-3-Clause", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "type-detect": "4.0.8" } }, - "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", - "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==", + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "license": "BSD-3-Clause", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", - "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", - "engines": { - "node": ">=14" + "node_modules/@tanstack/query-core": { + "version": "5.64.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.64.1.tgz", + "integrity": "sha512-978Wx4Wl4UJZbmvU/rkaM9cQtXXrbhK0lsz/UZhYIbyKYA8E4LdomTwyh2GHZ4oU0BKKoDH4YlKk2VscCUgNmg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/@opentelemetry/resources": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.28.0.tgz", - "integrity": "sha512-cIyXSVJjGeTICENN40YSvLDAq4Y2502hGK3iN7tfdynQLKWb3XWZQEkPc+eSx47kiy11YeFAlYkEfXwR1w8kfw==", + "node_modules/@tanstack/react-query": { + "version": "5.64.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.64.1.tgz", + "integrity": "sha512-vW5ggHpIO2Yjj44b4sB+Fd3cdnlMJppXRBJkEHvld6FXh3j5dwWJoQo7mGtKI2RbSFyiyu/PhGAy0+Vv5ev9Eg==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.28.0", - "@opentelemetry/semantic-conventions": "1.27.0" + "@tanstack/query-core": "5.64.1" }, - "engines": { - "node": ">=14" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "react": "^18 || ^19" } }, - "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", - "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">= 10" } }, - "node_modules/@opentelemetry/sdk-logs": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.52.1.tgz", - "integrity": "sha512-MBYh+WcPPsN8YpRHRmK1Hsca9pVlyyKd4BxOC4SsgHACnl/bPp4Cri9hWhVm5+2tiQ9Zf4qSc1Jshw9tOLGWQA==", + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", "dependencies": { - "@opentelemetry/api-logs": "0.52.1", - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.4.0 <1.10.0" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/core": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", - "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "license": "MIT", "dependencies": { - "@opentelemetry/semantic-conventions": "1.25.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "@babel/types": "^7.0.0" } }, - "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", - "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", - "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", - "engines": { - "node": ">=14" + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" } }, - "node_modules/@opentelemetry/sdk-metrics": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz", - "integrity": "sha512-9Mb7q5ioFL4E4dDrc4wC/A3NTHDat44v4I3p2pLPSxRvqUbDIQyMVr9uK+EU69+HWhlET1VaSrRzwdckWqY15Q==", + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1", - "lodash.merge": "^4.6.2" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.10.0" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", - "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@opentelemetry/semantic-conventions": "1.25.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "@types/eslint": "*", + "@types/estree": "*" } }, - "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", - "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "@types/node": "*" } }, - "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", - "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", - "engines": { - "node": ">=14" - } + "node_modules/@types/hammerjs": { + "version": "2.0.46", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.46.tgz", + "integrity": "sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==", + "license": "MIT" }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.28.0.tgz", - "integrity": "sha512-ceUVWuCpIao7Y5xE02Xs3nQi0tOGmMea17ecBdwtCvdo9ekmO+ijc9RFDgfifMl7XCBf41zne/1POM3LqSTZDA==", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.28.0", - "@opentelemetry/resources": "1.28.0", - "@opentelemetry/semantic-conventions": "1.27.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", - "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@opentelemetry/sdk-trace-web": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.28.0.tgz", - "integrity": "sha512-/QOIrJc/A/caKbA9voLua4isf///cjQKB6gomEzX2fL18TBqZhIkm9k2DpjlbtrQoYCJDZ9x7Phrec22aQGpQw==", + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.28.0", - "@opentelemetry/sdk-trace-base": "1.28.0", - "@opentelemetry/semantic-conventions": "1.27.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "@types/istanbul-lib-report": "*" } }, - "node_modules/@opentelemetry/sdk-trace-web/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", - "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", - "engines": { - "node": ">=14" + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" } }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", - "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", - "engines": { - "node": ">=14" + "node_modules/@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz", + "integrity": "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "devOptional": true, + "license": "MIT" }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "node_modules/@types/react": { + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "node_modules/@types/react-native-get-random-values": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@types/react-native-get-random-values/-/react-native-get-random-values-1.8.2.tgz", + "integrity": "sha512-CmtnfZnHKkVupG71SI9S7DDqkV6dtxxNIAzh2r1F1/tB8vg2weBtLhHmcruMIwp9Y69IZZ3DwJ0BhRpsbj42QA==", + "license": "MIT" }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "node_modules/@types/react-test-renderer": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.3.1.tgz", + "integrity": "sha512-vAhnk0tG2eGa37lkU9+s5SoroCsRI08xnsWFiAXOuPH2jqzMbcXvKExXViPi1P5fIklDeCvXqyrdmipFaSkZrA==", + "dev": true, + "license": "MIT", "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "@types/react": "^18" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + "node_modules/@types/shimmer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", + "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==", + "license": "MIT" }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "license": "MIT" }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true, + "license": "MIT" }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "license": "MIT" }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz", - "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==", + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" + "@types/yargs-parser": "*" } }, - "node_modules/@radix-ui/react-slot": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz", - "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==", + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz", + "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.0" + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/type-utils": "8.21.0", + "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@react-native-async-storage/async-storage": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.1.0.tgz", - "integrity": "sha512-eAGQGPTAuFNEoIQSB5j2Jh1zm5NPyBRTfjRMfCN0W1OakC5WIB5vsDyIQhUweKN9XOE2/V07lqTMGsL0dGXNkA==", + "node_modules/@typescript-eslint/parser": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz", + "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==", + "dev": true, + "license": "MIT", "dependencies": { - "merge-options": "^3.0.4" + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "react-native": "^0.0.0-0 || >=0.65 <1.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@react-native-community/cli": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-13.6.8.tgz", - "integrity": "sha512-0lRdgLNaXixWY4BfFRl1J6Ao9Lapo2z+++iE7TD4GAbuxOWJSyFi+KUA8XNfSDyML4jFO02MZgyBPxAWdaminQ==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz", + "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==", + "dev": true, + "license": "MIT", "dependencies": { - "@react-native-community/cli-clean": "13.6.8", - "@react-native-community/cli-config": "13.6.8", - "@react-native-community/cli-debugger-ui": "13.6.8", - "@react-native-community/cli-doctor": "13.6.8", - "@react-native-community/cli-hermes": "13.6.8", - "@react-native-community/cli-server-api": "13.6.8", - "@react-native-community/cli-tools": "13.6.8", - "@react-native-community/cli-types": "13.6.8", - "chalk": "^4.1.2", - "commander": "^9.4.1", - "deepmerge": "^4.3.0", - "execa": "^5.0.0", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0", - "graceful-fs": "^4.1.3", - "prompts": "^2.4.2", - "semver": "^7.5.2" - }, - "bin": { - "rnc-cli": "build/bin.js" + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0" }, "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@react-native-community/cli-clean": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-13.6.8.tgz", - "integrity": "sha512-B1uxlm1N4BQuWFvBL3yRl3LVvydjswsdbTi7tMrHMtSxfRio1p9HjcmDzlzKco09Y+8qBGgakm3jcMZGLbhXQQ==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz", + "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "13.6.8", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/utils": "8.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@react-native-community/cli-clean/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, + "node_modules/@typescript-eslint/types": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz", + "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@react-native-community/cli-clean/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/@react-native-community/cli-config": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-13.6.8.tgz", - "integrity": "sha512-RabCkIsWdP4Ex/sf1uSP9qxc30utm+0uIJAjrZkNQynm7T4Lyqn/kT3LKm4yM6M0Qk61YxGguiaXF4601vAduw==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz", + "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==", + "dev": true, + "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "13.6.8", - "chalk": "^4.1.2", - "cosmiconfig": "^5.1.0", - "deepmerge": "^4.3.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", + "debug": "^4.3.4", "fast-glob": "^3.3.2", - "joi": "^17.2.1" - } - }, - "node_modules/@react-native-community/cli-debugger-ui": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.8.tgz", - "integrity": "sha512-2cS+MX/Su6sVSjqpDftFOXbK7EuPg98xzsPkdPhkQnkZwvXqodK9CAMuDMbx3lBHHtrPrpMbBCpFmPN8iVOnlA==", - "dependencies": { - "serve-static": "^1.13.1" - } - }, - "node_modules/@react-native-community/cli-doctor": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-13.6.8.tgz", - "integrity": "sha512-/3Vdy9J3hyiu0y3nd/CU3kBqPlTRxnLXg7V6jrA1jbTOlZAMyV9imEkrqEaGK0SMOyMhh9Pipf98Ozhk0Nl4QA==", - "dependencies": { - "@react-native-community/cli-config": "13.6.8", - "@react-native-community/cli-platform-android": "13.6.8", - "@react-native-community/cli-platform-apple": "13.6.8", - "@react-native-community/cli-platform-ios": "13.6.8", - "@react-native-community/cli-tools": "13.6.8", - "chalk": "^4.1.2", - "command-exists": "^1.2.8", - "deepmerge": "^4.3.0", - "envinfo": "^7.10.0", - "execa": "^5.0.0", - "hermes-profile-transformer": "^0.0.6", - "node-stream-zip": "^1.9.1", - "ora": "^5.4.1", - "semver": "^7.5.2", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1", - "yaml": "^2.2.1" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.0" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/is-stream": { + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/@typescript-eslint/utils": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz", + "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==", + "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0" }, "engines": { - "node": ">=6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz", + "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==", + "dev": true, + "license": "MIT", "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "@typescript-eslint/types": "8.21.0", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/ora/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/@urql/core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-5.1.0.tgz", + "integrity": "sha512-yC3sw8yqjbX45GbXxfiBY8GLYCiyW/hLBbQF9l3TJrv4ro00Y0ChkKaD9I2KntRxAVm9IYBqh0awX8fwWAe/Yw==", + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "@0no-co/graphql.web": "^1.0.5", + "wonka": "^6.3.2" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/@urql/exchange-retry": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-1.3.0.tgz", + "integrity": "sha512-FLt+d81gP4oiHah4hWFDApimc+/xABWMU1AMYsZ1PVB0L0YPtrMCjbOp9WMM7hBzy4gbTDrG24sio0dCfSh/HQ==", + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "@urql/core": "^5.0.0", + "wonka": "^6.3.2" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@urql/core": "^5.0.0" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "node_modules/@web3-storage/multipart-parser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", + "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==", + "license": "(Apache-2.0 AND MIT)" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT", + "peer": true }, - "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "engines": { - "node": ">=6" - } + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT", + "peer": true }, - "node_modules/@react-native-community/cli-hermes": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-13.6.8.tgz", - "integrity": "sha512-lZi/OBFuZUj5cLK94oEgtrtmxGoqeYVRcnHXl/R5c4put9PDl+qH2bEMlGZkFiw57ae3UZKr3TMk+1s4jh3FYQ==", + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@react-native-community/cli-platform-android": "13.6.8", - "@react-native-community/cli-tools": "13.6.8", - "chalk": "^4.1.2", - "hermes-profile-transformer": "^0.0.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, - "node_modules/@react-native-community/cli-platform-android": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.8.tgz", - "integrity": "sha512-vWrqeLRRTwp2kO33nbrAgbYn8HR2c2CpIfyVJY9Ckk7HGUSwDyxdcSu7YBvt2ShdfLZH0HctWFNXsgGrfg6BDw==", + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@react-native-community/cli-tools": "13.6.8", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2", - "fast-xml-parser": "^4.2.4", - "logkitty": "^0.7.1" + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "@xtuc/long": "4.2.2" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT", + "peer": true }, - "node_modules/@react-native-community/cli-platform-android/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/@react-native-community/cli-platform-apple": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.8.tgz", - "integrity": "sha512-1JPohnlXPqU44zns3ALEzIbH2cKRw6JtEDJERgLuEUbs2r2NeJgqDbKyZ7fTTO8o+pegDnn6+Rr7qGVVOuUzzg==", + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@react-native-community/cli-tools": "13.6.8", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2", - "fast-xml-parser": "^4.0.12", - "ora": "^5.4.1" + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, + "node_modules/@xmldom/xmldom": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", + "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==", + "deprecated": "this version is no longer supported, please update to at least 0.8.*", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10.0.0" } }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/@react-native-community/cli-platform-ios": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.8.tgz", - "integrity": "sha512-/IIcIRM8qaoD7iZqsvtf6Qq1AwtChWYfB9sTn3mTiolZ5Zd5bXH37g+6liPfAICRkj2Ptq3iXmjrDVUQAxrOXw==", - "dependencies": { - "@react-native-community/cli-platform-apple": "13.6.8" - } - }, - "node_modules/@react-native-community/cli-server-api": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-13.6.8.tgz", - "integrity": "sha512-Lx664oWTzpVfbKUTy+3GIX7e+Mt5Zn+zdkM4ehllNdik/lbB3tM9Nrg8PSvOfI+tTXs2w55+nIydLfH+0FqJVg==", - "dependencies": { - "@react-native-community/cli-debugger-ui": "13.6.8", - "@react-native-community/cli-tools": "13.6.8", - "compression": "^1.7.1", - "connect": "^3.6.5", - "errorhandler": "^1.5.1", - "nocache": "^3.0.1", - "pretty-format": "^26.6.2", - "serve-static": "^1.13.1", - "ws": "^6.2.2" - } - }, - "node_modules/@react-native-community/cli-server-api/node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@react-native-community/cli-server-api/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@react-native-community/cli-server-api/node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@react-native-community/cli-server-api/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/@react-native-community/cli-server-api/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/@react-native-community/cli-tools": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-13.6.8.tgz", - "integrity": "sha512-1MYlae9EkbjC7DBYOGMH5xF9yDoeNYUKgEdDjL6WAUBoF2gtwiZPM6igLKi/+dhb5sCtC7fiLrLi0Oevdf+RmQ==", - "dependencies": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "mime": "^2.4.1", - "node-fetch": "^2.6.0", - "open": "^6.2.0", - "ora": "^5.4.1", - "semver": "^7.5.2", - "shell-quote": "^1.7.3", - "sudo-prompt": "^9.0.0" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/@react-native-community/cli-tools/node_modules/sudo-prompt": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", - "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" - }, - "node_modules/@react-native-community/cli-types": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-13.6.8.tgz", - "integrity": "sha512-C4mVByy0i+/NPuPhdMLBR7ubEVkjVS1VwoQu/BoG1crJFNE+167QXAzH01eFbXndsjZaMWmD4Gerx7TYc6lHfA==", - "dependencies": { - "joi": "^17.2.1" - } - }, - "node_modules/@react-native-community/cli/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/@react-native-community/cli/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native-community/cli/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@react-native-community/cli/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@react-native-community/cli/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@react-native-community/cli/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/@react-native-community/cli/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/@react-native/assets-registry": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.84.tgz", - "integrity": "sha512-dzUhwyaX04QosWZ8zyaaNB/WYZIdeDN1lcpfQbqiOhZJShRH+FLTDVONE/dqlMQrP+EO7lDqF0RrlIt9lnOCQQ==", - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.87.tgz", - "integrity": "sha512-+vJYpMnENFrwtgvDfUj+CtVJRJuUnzAUYT0/Pb68Sq9RfcZ5xdcCuUgyf7JO+akW2VTBoJY427wkcxU30qrWWw==", - "dependencies": { - "@react-native/codegen": "0.74.87" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/babel-preset": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.87.tgz", - "integrity": "sha512-hyKpfqzN2nxZmYYJ0tQIHG99FQO0OWXp/gVggAfEUgiT+yNKas1C60LuofUsK7cd+2o9jrpqgqW4WzEDZoBlTg==", - "dependencies": { - "@babel/core": "^7.20.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.18.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", - "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.20.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.18.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.20.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.20.0", - "@babel/plugin-transform-flow-strip-types": "^7.20.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.87", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/@react-native/codegen": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.87.tgz", - "integrity": "sha512-GMSYDiD+86zLKgMMgz9z0k6FxmRn+z6cimYZKkucW4soGbxWsbjUAZoZ56sJwt2FJ3XVRgXCrnOCgXoH/Bkhcg==", - "dependencies": { - "@babel/parser": "^7.20.0", - "glob": "^7.1.1", - "hermes-parser": "0.19.1", - "invariant": "^2.2.4", - "jscodeshift": "^0.14.0", - "mkdirp": "^0.5.1", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/preset-env": "^7.1.6" - } - }, - "node_modules/@react-native/codegen/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@react-native/community-cli-plugin": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.84.tgz", - "integrity": "sha512-GBKE+1sUh86fS2XXV46gMCNHMc1KetshMbYJ0AhDhldpaILZHqRBX50mdVsiYVvkzp4QjM0nmYqefuJ9NVwicQ==", - "dependencies": { - "@react-native-community/cli-server-api": "13.6.8", - "@react-native-community/cli-tools": "13.6.8", - "@react-native/dev-middleware": "0.74.84", - "@react-native/metro-babel-transformer": "0.74.84", - "chalk": "^4.0.0", - "execa": "^5.1.1", - "metro": "^0.80.3", - "metro-config": "^0.80.3", - "metro-core": "^0.80.3", - "node-fetch": "^2.2.0", - "querystring": "^0.2.1", - "readline": "^1.3.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/debugger-frontend": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.84.tgz", - "integrity": "sha512-YUEA03UNFbiYzHpYxlcS2D9+3eNT5YLGkl5yRg3nOSN6KbCc/OttGnNZme+tuSOJwjMN/vcvtDKYkTqjJw8U0A==", - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.84.tgz", - "integrity": "sha512-veYw/WmyrAOQHUiIeULzn2duJQnXDPiKq2jZ/lcmDo6jsLirpp+Q73lx09TYgy/oVoPRuV0nfmU3x9B6EV/7qQ==", - "dependencies": { - "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.84", - "@rnx-kit/chromium-edge-launcher": "^1.0.0", - "chrome-launcher": "^0.15.2", - "connect": "^3.6.5", - "debug": "^2.2.0", - "node-fetch": "^2.2.0", - "nullthrows": "^1.1.1", - "open": "^7.0.3", - "selfsigned": "^2.4.1", - "serve-static": "^1.13.1", - "temp-dir": "^2.0.0", - "ws": "^6.2.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/@react-native/community-cli-plugin/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/@react-native/community-cli-plugin/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/@react-native/debugger-frontend": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.85.tgz", - "integrity": "sha512-gUIhhpsYLUTYWlWw4vGztyHaX/kNlgVspSvKe2XaPA7o3jYKUoNLc3Ov7u70u/MBWfKdcEffWq44eSe3j3s5JQ==", - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/dev-middleware": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.85.tgz", - "integrity": "sha512-BRmgCK5vnMmHaKRO+h8PKJmHHH3E6JFuerrcfE3wG2eZ1bcSr+QTu8DAlpxsDWvJvHpCi8tRJGauxd+Ssj/c7w==", - "dependencies": { - "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.85", - "@rnx-kit/chromium-edge-launcher": "^1.0.0", - "chrome-launcher": "^0.15.2", - "connect": "^3.6.5", - "debug": "^2.2.0", - "node-fetch": "^2.2.0", - "nullthrows": "^1.1.1", - "open": "^7.0.3", - "selfsigned": "^2.4.1", - "serve-static": "^1.13.1", - "temp-dir": "^2.0.0", - "ws": "^6.2.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/dev-middleware/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@react-native/dev-middleware/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/@react-native/dev-middleware/node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native/dev-middleware/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/@react-native/gradle-plugin": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.84.tgz", - "integrity": "sha512-wYWC5WWXqzCCe4PDogz9pNc4xH5ZamahW5XGSbrrYJ5V3walZ+7z43V6iEBJkZbLjj9YBcSttkXYGr1Xh4veAg==", - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/js-polyfills": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.84.tgz", - "integrity": "sha512-+PgxuUjBw9JVlz6m4ECsIJMLbDopnr4rpLmsG32hQaJrg0wMuvHtsgAY/J/aVCSG2GNUXexfjrnhc+O9yGOZXQ==", - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/metro-babel-transformer": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.84.tgz", - "integrity": "sha512-YtVGq7jkgyUECv5yt4BOFbOXyW4ddUn8+dnwGGpJKdfhXYL5o5++AxNdE+2x+SZdkj3JUVekGKPwRabFECABaw==", - "dependencies": { - "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.84", - "hermes-parser": "0.19.1", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/babel-plugin-codegen": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.84.tgz", - "integrity": "sha512-UR4uiii5szIJA84mSC6GJOfYKDq7/ThyetOQT62+BBcyGeHVtHlNLNRzgaMeLqIQaT8Fq4pccMI+7QqLOMXzdw==", - "dependencies": { - "@react-native/codegen": "0.74.84" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/babel-preset": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.84.tgz", - "integrity": "sha512-WUfu6Y4aGuVdocQZvx33BJiQWFH6kRCHYbZfBn2psgFrSRLgQWEQrDCxqPFObNAVSayM0rNhp2FvI5K/Eyeqlg==", - "dependencies": { - "@babel/core": "^7.20.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.18.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", - "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.20.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.18.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.20.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.20.0", - "@babel/plugin-transform-flow-strip-types": "^7.20.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.84", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/codegen": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.84.tgz", - "integrity": "sha512-0hXlnu9i0o8v+gXKQi+x6T471L85kCDwW4WrJiYAeOheWrQdNNW6rC3g8+LL7HXAf7QcHGU/8/d57iYfdVK2BQ==", - "dependencies": { - "@babel/parser": "^7.20.0", - "glob": "^7.1.1", - "hermes-parser": "0.19.1", - "invariant": "^2.2.4", - "jscodeshift": "^0.14.0", - "mkdirp": "^0.5.1", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/preset-env": "^7.1.6" - } - }, - "node_modules/@react-native/metro-babel-transformer/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@react-native/normalize-color": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz", - "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==" - }, - "node_modules/@react-native/normalize-colors": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz", - "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==" - }, - "node_modules/@react-native/virtualized-lists": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.84.tgz", - "integrity": "sha512-XcV+qdqt2WihaY4iRm/M1FdSy+18lecU9mRXNmy9YK8g9Th/8XbNtmmKI0qWBx3KxyuXMH/zd0ps05YTrX16kw==", - "dependencies": { - "invariant": "^2.2.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/react": "^18.2.6", - "react": "*", - "react-native": "*" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@react-navigation/bottom-tabs": { - "version": "6.5.20", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.20.tgz", - "integrity": "sha512-ow6Z06iS4VqBO8d7FP+HsGjJLWt2xTWIvuWjpoCvsM/uQXzCRDIjBv9HaKcXbF0yTW7IMir0oDAbU5PFzEDdgA==", - "dependencies": { - "@react-navigation/elements": "^1.3.30", - "color": "^4.2.3", - "warn-once": "^0.1.0" - }, - "peerDependencies": { - "@react-navigation/native": "^6.0.0", - "react": "*", - "react-native": "*", - "react-native-safe-area-context": ">= 3.0.0", - "react-native-screens": ">= 3.0.0" - } - }, - "node_modules/@react-navigation/core": { - "version": "6.4.17", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.17.tgz", - "integrity": "sha512-Nd76EpomzChWAosGqWOYE3ItayhDzIEzzZsT7PfGcRFDgW5miHV2t4MZcq9YIK4tzxZjVVpYbIynOOQQd1e0Cg==", - "dependencies": { - "@react-navigation/routers": "^6.1.9", - "escape-string-regexp": "^4.0.0", - "nanoid": "^3.1.23", - "query-string": "^7.1.3", - "react-is": "^16.13.0", - "use-latest-callback": "^0.2.1" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/@react-navigation/elements": { - "version": "1.3.31", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.31.tgz", - "integrity": "sha512-bUzP4Awlljx5RKEExw8WYtif8EuQni2glDaieYROKTnaxsu9kEIA515sXQgUDZU4Ob12VoL7+z70uO3qrlfXcQ==", - "peerDependencies": { - "@react-navigation/native": "^6.0.0", - "react": "*", - "react-native": "*", - "react-native-safe-area-context": ">= 3.0.0" - } - }, - "node_modules/@react-navigation/native": { - "version": "6.1.18", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.18.tgz", - "integrity": "sha512-mIT9MiL/vMm4eirLcmw2h6h/Nm5FICtnYSdohq4vTLA2FF/6PNhByM7s8ffqoVfE5L0uAa6Xda1B7oddolUiGg==", - "dependencies": { - "@react-navigation/core": "^6.4.17", - "escape-string-regexp": "^4.0.0", - "fast-deep-equal": "^3.1.3", - "nanoid": "^3.1.23" - }, - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/@react-navigation/native-stack": { - "version": "6.9.26", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.26.tgz", - "integrity": "sha512-++dueQ+FDj2XkZ902DVrK79ub1vp19nSdAZWxKRgd6+Bc0Niiesua6rMCqymYOVaYh+dagwkA9r00bpt/U5WLw==", - "dependencies": { - "@react-navigation/elements": "^1.3.30", - "warn-once": "^0.1.0" - }, - "peerDependencies": { - "@react-navigation/native": "^6.0.0", - "react": "*", - "react-native": "*", - "react-native-safe-area-context": ">= 3.0.0", - "react-native-screens": ">= 3.0.0" - } - }, - "node_modules/@react-navigation/routers": { - "version": "6.1.9", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.9.tgz", - "integrity": "sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==", - "dependencies": { - "nanoid": "^3.1.23" - } - }, - "node_modules/@remix-run/node": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/@remix-run/node/-/node-2.14.0.tgz", - "integrity": "sha512-ou16LMJYv0ElIToZ6dDqaLjv1T3iBEwuJTBahveEA8NkkACIWODJ2fgUYf1UKLMKHVdHjNImLzS37HdSZY0Q6g==", - "dependencies": { - "@remix-run/server-runtime": "2.14.0", - "@remix-run/web-fetch": "^4.4.2", - "@web3-storage/multipart-parser": "^1.0.0", - "cookie-signature": "^1.1.0", - "source-map-support": "^0.5.21", - "stream-slice": "^0.1.2", - "undici": "^6.11.1" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "typescript": "^5.1.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@remix-run/router": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", - "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@remix-run/server-runtime": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.14.0.tgz", - "integrity": "sha512-9Th9UzDaoFFBD7zA5mRI1KT8JktFLN4ij9jPygrKBhG/kYmNIvhcMtq9VyjcbMvFK5natTyhOhrrKRIHtijD4w==", - "dependencies": { - "@remix-run/router": "1.21.0", - "@types/cookie": "^0.6.0", - "@web3-storage/multipart-parser": "^1.0.0", - "cookie": "^0.6.0", - "set-cookie-parser": "^2.4.8", - "source-map": "^0.7.3", - "turbo-stream": "2.4.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "typescript": "^5.1.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@remix-run/web-blob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@remix-run/web-blob/-/web-blob-3.1.0.tgz", - "integrity": "sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==", - "dependencies": { - "@remix-run/web-stream": "^1.1.0", - "web-encoding": "1.1.5" - } - }, - "node_modules/@remix-run/web-fetch": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@remix-run/web-fetch/-/web-fetch-4.4.2.tgz", - "integrity": "sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==", - "dependencies": { - "@remix-run/web-blob": "^3.1.0", - "@remix-run/web-file": "^3.1.0", - "@remix-run/web-form-data": "^3.1.0", - "@remix-run/web-stream": "^1.1.0", - "@web3-storage/multipart-parser": "^1.0.0", - "abort-controller": "^3.0.0", - "data-uri-to-buffer": "^3.0.1", - "mrmime": "^1.0.0" - }, - "engines": { - "node": "^10.17 || >=12.3" - } - }, - "node_modules/@remix-run/web-file": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@remix-run/web-file/-/web-file-3.1.0.tgz", - "integrity": "sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==", - "dependencies": { - "@remix-run/web-blob": "^3.1.0" - } - }, - "node_modules/@remix-run/web-form-data": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz", - "integrity": "sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==", - "dependencies": { - "web-encoding": "1.1.5" - } - }, - "node_modules/@remix-run/web-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@remix-run/web-stream/-/web-stream-1.1.0.tgz", - "integrity": "sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==", - "dependencies": { - "web-streams-polyfill": "^3.1.1" - } - }, - "node_modules/@rnx-kit/chromium-edge-launcher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz", - "integrity": "sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==", - "dependencies": { - "@types/node": "^18.0.0", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0", - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=14.15" - } - }, - "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true - }, - "node_modules/@segment/loosely-validate-event": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", - "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", - "dependencies": { - "component-type": "^1.2.1", - "join-component": "^1.1.0" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@tanstack/query-core": { - "version": "4.36.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz", - "integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/react-query": { - "version": "4.36.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz", - "integrity": "sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==", - "dependencies": { - "@tanstack/query-core": "4.36.1", - "use-sync-external-store": "^1.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-native": "*" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" - }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "dev": true, - "peer": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "peer": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/hammerjs": { - "version": "2.0.46", - "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.46.tgz", - "integrity": "sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.5.14", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", - "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", - "dev": true, - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/jsdom": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.19.71", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.71.tgz", - "integrity": "sha512-evXpcgtZm8FY4jqBSN8+DmOTcVkkvTmAayeo4Wf3m1xAruyVGzGuDh/Fb/WWX2yLItUiho42ozyJjB0dw//Tkw==", - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", - "devOptional": true - }, - "node_modules/@types/react": { - "version": "18.2.79", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", - "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", - "devOptional": true, - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-native-get-random-values": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@types/react-native-get-random-values/-/react-native-get-random-values-1.8.2.tgz", - "integrity": "sha512-CmtnfZnHKkVupG71SI9S7DDqkV6dtxxNIAzh2r1F1/tB8vg2weBtLhHmcruMIwp9Y69IZZ3DwJ0BhRpsbj42QA==" - }, - "node_modules/@types/react-test-renderer": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-19.0.0.tgz", - "integrity": "sha512-qDVnNybqFm2eZKJ4jD34EvRd6VHD67KjgnWaEMM0Id9L22EpWe3nOSVKHWL1XWRCxUWe3lhXwlEeCKD1BlJCQA==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/shimmer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", - "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "dev": true - }, - "node_modules/@types/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==" - }, - "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz", - "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/type-utils": "8.21.0", - "@typescript-eslint/utils": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz", - "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/typescript-estree": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz", - "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz", - "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "8.21.0", - "@typescript-eslint/utils": "8.21.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz", - "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz", - "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz", - "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/typescript-estree": "8.21.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz", - "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.21.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@urql/core": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz", - "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.0", - "wonka": "^4.0.14" - }, - "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@urql/exchange-retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz", - "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==", - "dependencies": { - "@urql/core": ">=2.3.1", - "wonka": "^4.0.14" - }, - "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/@web3-storage/multipart-parser": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", - "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "dev": true, - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "dev": true, - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xmldom/xmldom": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", - "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==", - "deprecated": "this version is no longer supported, please update to at least 0.8.*", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "peer": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "peer": true - }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "optional": true - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "dev": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-loose": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.4.0.tgz", - "integrity": "sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==", - "dev": true, - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/anser": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", - "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==" - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-fragments": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", - "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", - "dependencies": { - "colorette": "^1.0.7", - "slice-ansi": "^2.0.0", - "strip-ansi": "^5.0.0" - } - }, - "node_modules/ansi-fragments/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-fragments/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/appdirsjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", - "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==" - }, - "node_modules/application-config-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz", - "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==" - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "node_modules/ast-types": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", - "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/babel-core": { - "version": "7.0.0-bridge.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-react-compiler": { - "version": "0.0.0-experimental-592953e-20240517", - "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-0.0.0-experimental-592953e-20240517.tgz", - "integrity": "sha512-OjG1SVaeQZaJrqkMFJatg8W/MTow8Ak5rx2SI0ETQBO1XvOk/XZGMbltNCPdFJLKghBYoBjC+Y3Ap/Xr7B01mA==", - "dependencies": { - "@babel/generator": "7.2.0", - "@babel/types": "^7.19.0", - "chalk": "4", - "invariant": "^2.2.4", - "pretty-format": "^24", - "zod": "^3.22.4", - "zod-validation-error": "^2.1.0" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/@babel/generator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.0.tgz", - "integrity": "sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==", - "dependencies": { - "@babel/types": "^7.2.0", - "jsesc": "^2.5.1", - "lodash": "^4.17.10", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/babel-plugin-react-compiler/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "dependencies": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-plugin-react-native-web": { - "version": "0.19.13", - "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.13.tgz", - "integrity": "sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==" - }, - "node_modules/babel-plugin-transform-flow-enums": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", - "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==", - "dependencies": { - "@babel/plugin-syntax-flow": "^7.12.1" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-expo": { - "version": "11.0.15", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.15.tgz", - "integrity": "sha512-rgiMTYwqIPULaO7iZdqyL7aAff9QLOX6OWUtLZBlOrOTreGY1yHah/5+l8MvI6NVc/8Zj5LY4Y5uMSnJIuzTLw==", - "dependencies": { - "@babel/plugin-proposal-decorators": "^7.12.9", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/preset-react": "^7.22.15", - "@babel/preset-typescript": "^7.23.0", - "@react-native/babel-preset": "0.74.87", - "babel-plugin-react-compiler": "0.0.0-experimental-592953e-20240517", - "babel-plugin-react-native-web": "~0.19.10", - "react-refresh": "^0.14.2" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/better-opn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", - "dependencies": { - "open": "^8.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bplist-creator": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", - "integrity": "sha512-xp/tcaV3T5PCiaY04mXga7o/TE+t95gqeLmADeBI1CvZtdWTbgBt3uLpvh4UWtenKeBhCV6oVxGk38yZr2uYEA==", - "dependencies": { - "stream-buffers": "~2.2.0" - } - }, - "node_modules/bplist-parser": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", - "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", - "dependencies": { - "big-integer": "1.6.x" - }, - "engines": { - "node": ">= 5.10.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-alloc": { + "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } + "node_modules/@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "license": "(Unlicense OR Apache-2.0)", + "optional": true }, - "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true, + "license": "BSD-3-Clause" }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", "dependencies": { - "callsites": "^2.0.0" + "event-target-shim": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=6.5" } }, - "node_modules/caller-callsite/node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", - "dependencies": { - "caller-callsite": "^2.0.0" + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", "dev": true, - "engines": { - "node": ">=6" + "license": "MIT", + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^8" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001680", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", - "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, - "node_modules/case-anything": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz", - "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==", + "node_modules/acorn-loose": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.4.0.tgz", + "integrity": "sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==", "dev": true, - "engines": { - "node": ">=12.13" + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" + "engines": { + "node": ">=0.4.0" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "acorn": "^8.11.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.4.0" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, "engines": { - "node": ">=10" + "node": ">= 6.0.0" } }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/chrome-launcher": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", - "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" + "ajv": "^8.0.0" }, - "bin": { - "print-chrome-path": "bin/print-chrome-path.js" + "peerDependencies": { + "ajv": "^8.0.0" }, - "engines": { - "node": ">=12.13.0" + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=6.0" + "peerDependencies": { + "ajv": "^6.9.1" } }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], + "node_modules/anser": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", + "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", + "license": "MIT" + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/cjs-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", - "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==" - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", "dependencies": { - "restore-cursor": "^2.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } + "node_modules/application-config-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz", + "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==", + "license": "MIT" }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", "engines": { - "node": ">=0.8" + "node": ">=8" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { - "node": ">=12.5.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/color-name": { + "node_modules/array.prototype.tosorted": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/ast-types": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", + "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", + "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" + "tslib": "^2.0.1" }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 0.4" } }, - "node_modules/commondir": { + "node_modules/async-limiter": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "license": "MIT" }, - "node_modules/component-type": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz", - "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", "dependencies": { - "mime-db": ">= 1.43.0 < 2" + "possible-typed-array-names": "^1.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "node_modules/babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "license": "BSD-3-Clause", "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/compression/node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "license": "BSD-3-Clause", "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">=8" } }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "license": "MIT", "dependencies": { - "ms": "2.0.0" + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" - }, - "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", - "engines": { - "node": ">= 0.6" + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", - "engines": { - "node": ">=6.6.0" + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "license": "MIT", "dependencies": { - "browserslist": "^4.24.2" + "@babel/helper-define-polyfill-provider": "^0.6.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "node_modules/babel-plugin-react-native-web": { + "version": "0.19.13", + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.13.tgz", + "integrity": "sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==", + "license": "MIT" + }, + "node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz", + "integrity": "sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==", + "license": "MIT", + "dependencies": { + "hermes-parser": "0.25.1" + } }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "license": "MIT" + }, + "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "license": "MIT", "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" + "hermes-estree": "0.25.1" } }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/babel-plugin-transform-flow-enums": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", + "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==", + "license": "MIT", "dependencies": { - "sprintf-js": "~1.0.2" + "@babel/plugin-syntax-flow": "^7.12.1" } }, - "node_modules/cosmiconfig/node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "license": "MIT", "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" }, - "engines": { - "node": ">=4" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/babel-preset-expo": { + "version": "12.0.6", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-12.0.6.tgz", + "integrity": "sha512-az3H7gDVo0wxNBAFES8h5vLLWE8NPGkD9g5P962hDEOqZUdyPacb9MOzicypeLmcq9zQWr6E3iVtEHoNagCTTQ==", + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "@babel/plugin-proposal-decorators": "^7.12.9", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/preset-react": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@react-native/babel-preset": "0.76.6", + "babel-plugin-react-native-web": "~0.19.13", + "react-refresh": "^0.14.2" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "peerDependencies": { + "babel-plugin-react-compiler": "^19.0.0-beta-9ee70a1-20241017", + "react-compiler-runtime": "^19.0.0-beta-8a03594-20241020" + }, + "peerDependenciesMeta": { + "babel-plugin-react-compiler": { + "optional": true + }, + "react-compiler-runtime": { + "optional": true + } } }, - "node_modules/cosmiconfig/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "license": "MIT", "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/cosmiconfig/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "license": "MIT", + "dependencies": { + "open": "^8.0.4" + }, "engines": { - "node": ">=4" + "node": ">=12.0.0" } }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, + "node_modules/better-opn/node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" }, - "bin": { - "create-jest": "bin/create-jest.js" + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "license": "Unlicense", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.6" } }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "node_modules/bplist-creator": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", + "integrity": "sha512-xp/tcaV3T5PCiaY04mXga7o/TE+t95gqeLmADeBI1CvZtdWTbgBt3uLpvh4UWtenKeBhCV6oVxGk38yZr2uYEA==", + "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "stream-buffers": "~2.2.0" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/bplist-parser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", + "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "big-integer": "1.6.x" }, "engines": { - "node": ">= 8" + "node": ">= 5.10.0" } }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "engines": { - "node": "*" + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, "engines": { "node": ">=8" } }, - "node_modules/css-in-js-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz", - "integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==", + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "hyphenate-style-name": "^1.0.3" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" } }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "license": "MIT", "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "license": "MIT" }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "devOptional": true + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "license": "MIT" }, - "node_modules/dag-map": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", - "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==" + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" }, - "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">= 0.8" } }, - "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, + "node_modules/cacache": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "license": "ISC", "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" }, "engines": { - "node": ">=12" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -9190,30 +6473,27 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" + "function-bind": "^1.1.2" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -9222,598 +6502,801 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" - }, - "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "callsites": "^2.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=4" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "node_modules/caller-callsite/node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "license": "MIT", + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=6" } }, - "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001695", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/case-anything": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz", + "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==", "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" + "license": "MIT", + "engines": { + "node": ">=12.13" }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">=10" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dependencies": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "node_modules/chrome-launcher": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", + "license": "Apache-2.0", "dependencies": { - "clone": "^1.0.2" + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" } }, - "node_modules/defaults/node_modules/clone": { + "node_modules/chrome-trace-event": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=0.8" + "node": ">=6.0" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/chromium-edge-launcher": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", + "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==", + "license": "Apache-2.0", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "node_modules/chromium-edge-launcher/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, + "node_modules/cjs-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "license": "MIT", "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" + "restore-cursor": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=4" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, "engines": { - "node": ">=0.4.0" + "node": ">=12" } }, - "node_modules/denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==" + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/deprecated-react-native-prop-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz", - "integrity": "sha512-pWD0voFtNYxrVqvBMYf5gq3NA2GCpfodS1yNynTPc93AYA/KEMGeWDqqeUB6R2Z9ZofVhks2aeJXiuQqKNpesA==", + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { - "@react-native/normalize-color": "*", - "invariant": "*", - "prop-types": "*" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=0.8" } }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "bin": { - "detect-libc": "bin/detect-libc.js" + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" }, "engines": { - "node": ">=0.10" + "node": ">=6" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true, + "license": "MIT" + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=12.5.0" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "deprecated": "Use your platform's native DOMException instead", - "dev": true, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", "dependencies": { - "webidl-conversions": "^7.0.0" + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">=12" + "node": ">= 0.8" } }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "license": "MIT" + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { - "node": ">=12" - }, + "node": ">= 10" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, + "node_modules/component-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz", + "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==", + "license": "MIT", "funding": { - "url": "https://dotenvx.com" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dotenv-expand": { - "version": "11.0.7", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", - "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", "dependencies": { - "dotenv": "^16.4.5" + "mime-db": ">= 1.43.0 < 2" }, "engines": { - "node": ">=12" + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" }, - "funding": { - "url": "https://dotenvx.com" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/dprint-node": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.8.tgz", - "integrity": "sha512-iVKnUtYfGrYcW1ZAlfR/F59cUVL8QIhWoBJoSjkkdua/dkWIgjZfiLMeTjiB06X0ZLkQ0M2C1VbUj/CxkIf1zg==", - "dev": true, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { - "detect-libc": "^1.0.3" + "ms": "2.0.0" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.10.0" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "node_modules/electron-to-chromium": { - "version": "1.5.61", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.61.tgz", - "integrity": "sha512-CcRGSBCBB6L9c3PBJWYYrBo6Bzeoi+GZTKvtuRtooJGWsINk+mOInZWcssU35zDTAwreVcrMimc9aMyPpehRNw==" + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.3" }, "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "license": "MIT", + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", "dependencies": { - "once": "^1.4.0" + "sprintf-js": "~1.0.2" } }, - "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", - "dev": true, + "node_modules/cosmiconfig/node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=4" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "engines": { - "node": ">=0.12" + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/env-editor": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", - "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/envinfo": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", - "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", - "bin": { - "envinfo": "dist/cli.js" - }, + "node_modules/cosmiconfig/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/eol": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", - "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", "dependencies": { - "stackframe": "^1.3.4" + "node-fetch": "^2.7.0" } }, - "node_modules/errorhandler": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", - "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { - "accepts": "~1.3.7", - "escape-html": "~1.0.3" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">= 0.8" + "node": ">= 8" } }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" - }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "*" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" + "node_modules/css-in-js-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz", + "integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==", + "license": "MIT", + "dependencies": { + "hyphenate-style-name": "^1.0.3" } }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" + "cssom": "~0.3.6" }, "engines": { - "node": ">= 0.4" + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "license": "MIT", + "engines": { + "node": ">= 6" } }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", "dev": true, - "peer": true - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0" + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=12" } }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", "dependencies": { + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-shim-unscopables": { + "node_modules/data-view-byte-length": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -9822,1337 +7305,1482 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, "engines": { - "node": ">=6" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "node_modules/decimal.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "dev": true, + "license": "MIT" }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "node": ">=4.0.0" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, - "optional": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/eslint": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", - "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", - "dev": true, - "license": "MIT", + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "license": "BSD-2-Clause", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.10.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.18.0", - "@eslint/plugin-kit": "^0.2.5", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" + "execa": "^1.0.0", + "ip-regex": "^2.1.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=6" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" }, "funding": { - "url": "https://eslint.org/donate" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, - "peerDependencies": { - "jiti": "*" + "engines": { + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/eslint-config-expo": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-expo/-/eslint-config-expo-8.0.1.tgz", - "integrity": "sha512-r9PSgkuZk5Q5ALbk1yowYwEIj0oqO/ikRO9TNhpx2DzSOdK65y3urgFI04WYvQzMr9q1fnA62wr9iGfrsmF5pQ==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "^8.9.0", - "@typescript-eslint/parser": "^8.9.0", - "eslint-import-resolver-typescript": "^3.6.3", - "eslint-plugin-expo": "^0.1.0", - "eslint-plugin-import": "^2.30.0", - "eslint-plugin-react": "^7.36.1", - "eslint-plugin-react-hooks": "^4.6.2" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, - "peerDependencies": { - "eslint": ">=8.10" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-config-expo/node_modules/eslint-plugin-expo": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-expo/-/eslint-plugin-expo-0.1.0.tgz", - "integrity": "sha512-bX0ABF5CTbwUnFXHN5aHhx2uyasbmr1ADlY/D1bmFb31sNd1rc+K1Ss4/BlTU6H0urGNOD30+q7LTDABKB/10g==", - "dev": true, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "^8.9.0", - "@typescript-eslint/utils": "^8.9.0" + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=10" }, - "peerDependencies": { - "eslint": ">=8 <9" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-config-expo/node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "dev": true, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "node": ">=0.4.0" } }, - "node_modules/eslint-config-prettier": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz", - "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", - "dev": true, + "node_modules/denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==", + "license": "MIT" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/deprecated-react-native-prop-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz", + "integrity": "sha512-pWD0voFtNYxrVqvBMYf5gq3NA2GCpfodS1yNynTPc93AYA/KEMGeWDqqeUB6R2Z9ZofVhks2aeJXiuQqKNpesA==", + "license": "MIT", + "dependencies": { + "@react-native/normalize-color": "*", + "invariant": "*", + "prop-types": "*" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", "bin": { - "eslint-config-prettier": "build/bin/cli.js" + "detect-libc": "bin/detect-libc.js" }, - "peerDependencies": { - "eslint": ">=7.0.0" + "engines": { + "node": ">=0.10" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "dependencies": { - "ms": "^2.1.1" + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz", - "integrity": "sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==", - "dev": true, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", "dependencies": { - "@nolyfill/is-core-module": "1.0.39", - "debug": "^4.3.5", - "enhanced-resolve": "^5.15.0", - "eslint-module-utils": "^2.8.1", - "fast-glob": "^3.3.2", - "get-tsconfig": "^4.7.5", - "is-bun-module": "^1.0.2", - "is-glob": "^4.0.3" + "path-type": "^4.0.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*", - "eslint-plugin-import-x": "*" - }, - "peerDependenciesMeta": { - "eslint-plugin-import": { - "optional": true - }, - "eslint-plugin-import-x": { - "optional": true - } + "node": ">=8" } }, - "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "debug": "^3.2.7" + "esutils": "^2.0.2" }, "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", "dev": true, + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", - "dev": true, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "license": "BSD-2-Clause", "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" + "dotenv": "^16.4.5" }, "engines": { - "node": ">=4" + "node": ">=12" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + "funding": { + "url": "https://dotenvx.com" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/dprint-node": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.8.tgz", + "integrity": "sha512-iVKnUtYfGrYcW1ZAlfR/F59cUVL8QIhWoBJoSjkkdua/dkWIgjZfiLMeTjiB06X0ZLkQ0M2C1VbUj/CxkIf1zg==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "detect-libc": "^1.0.3" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-prettier": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", - "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.87", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.87.tgz", + "integrity": "sha512-mPFwmEWmRivw2F8x3w3l2m6htAUN97Gy0kwpO++2m9iT1Gt8RCFVUfv9U/sIbHJ6rY4P6/ooqFL/eL7ock+pPg==", + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" - }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/eslint-plugin-react": { - "version": "7.37.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", - "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", - "dev": true, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + "node": ">= 0.8" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" + "once": "^1.4.0" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "node_modules/enhanced-resolve": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10.13.0" } }, - "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, + "license": "BSD-2-Clause", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=0.12" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, + "node_modules/env-editor": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", + "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=8" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "node_modules/eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">= 0.4" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">= 0.4" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/esquery": { + "node_modules/es-module-lexer": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", "dependencies": { - "estraverse": "^5.1.0" + "es-errors": "^1.3.0" }, "engines": { - "node": ">=0.10" + "node": ">= 0.4" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, + "license": "MIT", "dependencies": { - "estraverse": "^5.2.0" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { - "node": ">=4.0" + "node": ">= 0.4" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" } }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/exec-async": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", - "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==" - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "license": "MIT", "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { - "node": ">=6" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "node": ">= 0.4" }, - "engines": { - "node": ">=4.8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/execa/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { - "node": ">=4" - } - }, - "node_modules/execa/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" + "node": ">=6" } }, - "node_modules/execa/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/execa/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "isexe": "^2.0.0" + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" }, "bin": { - "which": "bin/which" + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", + "optional": true, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "node_modules/eslint": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.10.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "node_modules/expo": { - "version": "51.0.39", - "resolved": "https://registry.npmjs.org/expo/-/expo-51.0.39.tgz", - "integrity": "sha512-Cs/9xopyzJrpXWbyVUZnr37rprdFJorRgfSp6cdBfvbjxZeKnw2MEu7wJwV/s626i5lZTPGjZPHUF9uQvt51cg==", + "node_modules/eslint-config-expo": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-expo/-/eslint-config-expo-8.0.1.tgz", + "integrity": "sha512-r9PSgkuZk5Q5ALbk1yowYwEIj0oqO/ikRO9TNhpx2DzSOdK65y3urgFI04WYvQzMr9q1fnA62wr9iGfrsmF5pQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.20.0", - "@expo/cli": "0.18.31", - "@expo/config": "9.0.4", - "@expo/config-plugins": "8.0.11", - "@expo/metro-config": "0.18.11", - "@expo/vector-icons": "^14.0.3", - "babel-preset-expo": "~11.0.15", - "expo-asset": "~10.0.10", - "expo-file-system": "~17.0.1", - "expo-font": "~12.0.10", - "expo-keep-awake": "~13.0.2", - "expo-modules-autolinking": "1.11.3", - "expo-modules-core": "1.12.26", - "fbemitter": "^3.0.0", - "whatwg-url-without-unicode": "8.0.0-3" + "@typescript-eslint/eslint-plugin": "^8.9.0", + "@typescript-eslint/parser": "^8.9.0", + "eslint-import-resolver-typescript": "^3.6.3", + "eslint-plugin-expo": "^0.1.0", + "eslint-plugin-import": "^2.30.0", + "eslint-plugin-react": "^7.36.1", + "eslint-plugin-react-hooks": "^4.6.2" }, - "bin": { - "expo": "bin/cli" + "peerDependencies": { + "eslint": ">=8.10" } }, - "node_modules/expo-asset": { - "version": "10.0.10", - "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-10.0.10.tgz", - "integrity": "sha512-0qoTIihB79k+wGus9wy0JMKq7DdenziVx3iUkGvMAy2azscSgWH6bd2gJ9CGnhC6JRd3qTMFBL0ou/fx7WZl7A==", + "node_modules/eslint-config-expo/node_modules/eslint-plugin-expo": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-expo/-/eslint-plugin-expo-0.1.0.tgz", + "integrity": "sha512-bX0ABF5CTbwUnFXHN5aHhx2uyasbmr1ADlY/D1bmFb31sNd1rc+K1Ss4/BlTU6H0urGNOD30+q7LTDABKB/10g==", + "dev": true, + "license": "MIT", "dependencies": { - "expo-constants": "~16.0.0", - "invariant": "^2.2.4", - "md5-file": "^3.2.3" + "@typescript-eslint/types": "^8.9.0", + "@typescript-eslint/utils": "^8.9.0" + }, + "engines": { + "node": ">=18.0.0" }, "peerDependencies": { - "expo": "*" + "eslint": ">=8 <9" } }, - "node_modules/expo-constants": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-16.0.2.tgz", - "integrity": "sha512-9tNY3OVO0jfiMzl7ngb6IOyR5VFzNoN5OOazUWoeGfmMqVB5kltTemRvKraK9JRbBKIw+SOYLEmF0sEqgFZ6OQ==", - "dependencies": { - "@expo/config": "~9.0.0", - "@expo/env": "~0.3.0" + "node_modules/eslint-config-expo/node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" }, "peerDependencies": { - "expo": "*" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "node_modules/expo-constants/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "node_modules/eslint-config-prettier": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz", + "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "build/bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.10.4" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/expo-constants/node_modules/@expo/config": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", - "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~8.0.8", - "@expo/config-types": "^51.0.3", - "@expo/json-file": "^8.3.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "semver": "^7.6.0", - "slugify": "^1.3.4", - "sucrase": "3.34.0" + "ms": "^2.1.1" } }, - "node_modules/expo-constants/node_modules/@expo/config-plugins": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", - "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "node_modules/eslint-import-resolver-typescript": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.7.0.tgz", + "integrity": "sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==", + "dev": true, + "license": "ISC", "dependencies": { - "@expo/config-types": "^51.0.3", - "@expo/json-file": "~8.3.0", - "@expo/plist": "^0.1.0", - "@expo/sdk-runtime-versions": "^1.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.1", - "find-up": "~5.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "semver": "^7.5.4", - "slash": "^3.0.0", - "slugify": "^1.6.6", - "xcode": "^3.0.1", - "xml2js": "0.6.0" + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.7", + "enhanced-resolve": "^5.15.0", + "fast-glob": "^3.3.2", + "get-tsconfig": "^4.7.5", + "is-bun-module": "^1.0.2", + "is-glob": "^4.0.3", + "stable-hash": "^0.0.4" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } } }, - "node_modules/expo-constants/node_modules/@expo/config-types": { - "version": "51.0.3", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", - "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==" + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } }, - "node_modules/expo-constants/node_modules/@expo/env": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz", - "integrity": "sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "debug": "^4.3.4", - "dotenv": "~16.4.5", - "dotenv-expand": "~11.0.6", - "getenv": "^1.0.0" + "ms": "^2.1.1" } }, - "node_modules/expo-constants/node_modules/@expo/json-file": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", - "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^2.2.2", - "write-file-atomic": "^2.3.0" + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/expo-constants/node_modules/@expo/plist": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", - "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@xmldom/xmldom": "~0.7.7", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" - } - }, - "node_modules/expo-constants/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" + "ms": "^2.1.1" } }, - "node_modules/expo-constants/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/eslint-plugin-prettier": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", + "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", + "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" }, "engines": { - "node": "*" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/expo-constants/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" + "node_modules/eslint-plugin-react": { + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, - "node_modules/expo-constants/node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" + "resolve": "bin/resolve" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/expo-file-system": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-17.0.1.tgz", - "integrity": "sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw==", - "peerDependencies": { - "expo": "*" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/expo-font": { - "version": "12.0.10", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.10.tgz", - "integrity": "sha512-Q1i2NuYri3jy32zdnBaHHCya1wH1yMAsI+3CCmj9zlQzlhsS9Bdwcj2W3c5eU5FvH2hsNQy4O+O1NnM6o/pDaQ==", + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "fontfaceobserver": "^2.1.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, - "peerDependencies": { - "expo": "*" - } - }, - "node_modules/expo-keep-awake": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-13.0.2.tgz", - "integrity": "sha512-kKiwkVg/bY0AJ5q1Pxnm/GvpeB6hbNJhcFsoOWDh2NlpibhCLaHL826KHUM+WsnJRbVRxJ+K9vbPRHEMvFpVyw==", - "peerDependencies": { - "expo": "*" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/expo-linking": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-6.3.1.tgz", - "integrity": "sha512-xuZCntSBGWCD/95iZ+mTUGTwHdy8Sx+immCqbUBxdvZ2TN61P02kKg7SaLS8A4a/hLrSCwrg5tMMwu5wfKr35g==", - "dependencies": { - "expo-constants": "~16.0.0", - "invariant": "^2.2.4" + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/expo-modules-autolinking": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.11.3.tgz", - "integrity": "sha512-oYh8EZEvYF5TYppxEKUTTJmbr8j7eRRnrIxzZtMvxLTXoujThVPMFS/cbnSnf2bFm1lq50TdDNABhmEi7z0ngQ==", + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "chalk": "^4.1.0", - "commander": "^7.2.0", - "fast-glob": "^3.2.5", - "find-up": "^5.0.0", - "fs-extra": "^9.1.0", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0" + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" }, - "bin": { - "expo-modules-autolinking": "bin/expo-modules-autolinking.js" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/expo-modules-core": { - "version": "1.12.26", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.26.tgz", - "integrity": "sha512-y8yDWjOi+rQRdO+HY+LnUlz8qzHerUaw/LUjKPU/mX8PRXP4UUPEEp5fjAwBU44xjNmYSHWZDwet4IBBE+yQUA==", - "dependencies": { - "invariant": "^2.2.4" + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "node_modules/expo-router": { - "version": "3.5.24", - "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-3.5.24.tgz", - "integrity": "sha512-wFi+PIUrOntF5cgg0PgBMlkxEZlWedIv5dWnPFEzN6Tr3A3bpsqdDLgOEIwvwd+pxn5DLzykTmg9EkQ1pPGspw==", + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@expo/metro-runtime": "3.2.3", - "@expo/server": "^0.4.0", - "@radix-ui/react-slot": "1.0.1", - "@react-navigation/bottom-tabs": "~6.5.7", - "@react-navigation/native": "~6.1.6", - "@react-navigation/native-stack": "~6.9.12", - "expo-splash-screen": "0.27.7", - "react-native-helmet-async": "2.0.4", - "schema-utils": "^4.0.1" - }, - "peerDependencies": { - "@react-navigation/drawer": "^6.5.8", - "expo": "*", - "expo-constants": "*", - "expo-linking": "*", - "expo-status-bar": "*", - "react-native-reanimated": "*", - "react-native-safe-area-context": "*", - "react-native-screens": "*" + "estraverse": "^5.1.0" }, - "peerDependenciesMeta": { - "@react-navigation/drawer": { - "optional": true - }, - "@testing-library/jest-native": { - "optional": true - }, - "react-native-reanimated": { - "optional": true - } + "engines": { + "node": ">=0.10" } }, - "node_modules/expo-splash-screen": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.27.7.tgz", - "integrity": "sha512-s+eGcG185878nixlrjhhLD6UDYrvoqBUaBkIEozBVWFg3pkdsKpONPiUAco4XR3h7I/9ODq4quN28RJLFO+s0Q==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@expo/prebuild-config": "7.0.9" + "estraverse": "^5.2.0" }, - "peerDependencies": { - "expo": "*" + "engines": { + "node": ">=4.0" } }, - "node_modules/expo-status-bar": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.12.1.tgz", - "integrity": "sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA==" + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "node_modules/expo-system-ui": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-3.0.7.tgz", - "integrity": "sha512-KAs72F5JKhdIfPR9ZNVlRubTPK9uUuevPy5oYEp12xNEzSQcjZKvypH5NpwJuNWkXzrp3n3vZ+3pXsudA7J3KA==", - "dependencies": { - "@react-native/normalize-colors": "0.74.85", - "debug": "^4.3.2" - }, - "peerDependencies": { - "expo": "*" + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/expo-web-browser": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-13.0.3.tgz", - "integrity": "sha512-HXb7y82ApVJtqk8tManyudtTrCtx8xcUnVzmJECeHCB0SsWSQ+penVLZxJkcyATWoJOsFMnfVSVdrTcpKKGszQ==", - "peerDependencies": { - "expo": "*" + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "node_modules/expo/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dependencies": { - "@babel/highlight": "^7.10.4" + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/expo/node_modules/@expo/config": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", - "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", - "dependencies": { - "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~8.0.8", - "@expo/config-types": "^51.0.3", - "@expo/json-file": "^8.3.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "semver": "^7.6.0", - "slugify": "^1.3.4", - "sucrase": "3.34.0" + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.x" } }, - "node_modules/expo/node_modules/@expo/config-plugins": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", - "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "node_modules/exec-async": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", + "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==", + "license": "MIT" + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "license": "MIT", "dependencies": { - "@expo/config-types": "^51.0.3", - "@expo/json-file": "~8.3.0", - "@expo/plist": "^0.1.0", - "@expo/sdk-runtime-versions": "^1.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.1", - "find-up": "~5.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "semver": "^7.5.4", - "slash": "^3.0.0", - "slugify": "^1.6.6", - "xcode": "^3.0.1", - "xml2js": "0.6.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/expo/node_modules/@expo/config-types": { - "version": "51.0.3", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", - "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==" - }, - "node_modules/expo/node_modules/@expo/env": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz", - "integrity": "sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==", + "node_modules/execa/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "debug": "^4.3.4", - "dotenv": "~16.4.5", - "dotenv-expand": "~11.0.6", - "getenv": "^1.0.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" } }, - "node_modules/expo/node_modules/@expo/json-file": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", - "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", - "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^2.2.2", - "write-file-atomic": "^2.3.0" + "node_modules/execa/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "node_modules/expo/node_modules/@expo/metro-config": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.11.tgz", - "integrity": "sha512-/uOq55VbSf9yMbUO1BudkUM2SsGW1c5hr9BnhIqYqcsFv0Jp5D3DtJ4rljDKaUeNLbwr6m7pqIrkSMq5NrYf4Q==", - "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.5", - "@babel/parser": "^7.20.0", - "@babel/types": "^7.20.0", - "@expo/config": "~9.0.0-beta.0", - "@expo/env": "~0.3.0", - "@expo/json-file": "~8.3.0", - "@expo/spawn-async": "^1.7.2", - "chalk": "^4.1.0", - "debug": "^4.3.2", - "find-yarn-workspace-root": "~2.0.0", - "fs-extra": "^9.1.0", - "getenv": "^1.0.0", - "glob": "^7.2.3", - "jsc-safe-url": "^0.2.4", - "lightningcss": "~1.19.0", - "postcss": "~8.4.32", - "resolve-from": "^5.0.0" + "node_modules/execa/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/expo/node_modules/@expo/metro-config/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "shebang-regex": "^1.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/expo/node_modules/@expo/plist": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", - "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", "dependencies": { - "@xmldom/xmldom": "~0.7.7", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "node_modules/expo/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, "engines": { - "node": ">= 6" + "node": ">= 0.8.0" } }, - "node_modules/expo/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/expo/node_modules/lightningcss": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz", - "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==", + "node_modules/expo": { + "version": "52.0.27", + "resolved": "https://registry.npmjs.org/expo/-/expo-52.0.27.tgz", + "integrity": "sha512-PxIS8JRTegUNYq4vNeP0eCqm7p17oGNYjJ/9x207zkwVlklywD9LYIckGojXEY5JPW/DwhbhtO6E2hMgdQQugg==", + "license": "MIT", "dependencies": { - "detect-libc": "^1.0.3" + "@babel/runtime": "^7.20.0", + "@expo/cli": "0.22.10", + "@expo/config": "~10.0.8", + "@expo/config-plugins": "~9.0.14", + "@expo/fingerprint": "0.11.7", + "@expo/metro-config": "0.19.9", + "@expo/vector-icons": "^14.0.0", + "babel-preset-expo": "~12.0.6", + "expo-asset": "~11.0.2", + "expo-constants": "~17.0.4", + "expo-file-system": "~18.0.7", + "expo-font": "~13.0.3", + "expo-keep-awake": "~14.0.2", + "expo-modules-autolinking": "2.0.7", + "expo-modules-core": "2.1.4", + "fbemitter": "^3.0.0", + "web-streams-polyfill": "^3.3.2", + "whatwg-url-without-unicode": "8.0.0-3" }, - "engines": { - "node": ">= 12.0.0" + "bin": { + "expo": "bin/cli" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "@expo/dom-webview": "*", + "@expo/metro-runtime": "*", + "react": "*", + "react-native": "*", + "react-native-webview": "*" }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.19.0", - "lightningcss-darwin-x64": "1.19.0", - "lightningcss-linux-arm-gnueabihf": "1.19.0", - "lightningcss-linux-arm64-gnu": "1.19.0", - "lightningcss-linux-arm64-musl": "1.19.0", - "lightningcss-linux-x64-gnu": "1.19.0", - "lightningcss-linux-x64-musl": "1.19.0", - "lightningcss-win32-x64-msvc": "1.19.0" - } - }, - "node_modules/expo/node_modules/lightningcss-darwin-arm64": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz", - "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" + "peerDependenciesMeta": { + "@expo/dom-webview": { + "optional": true + }, + "@expo/metro-runtime": { + "optional": true + }, + "react-native-webview": { + "optional": true + } + } + }, + "node_modules/expo-asset": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-11.0.2.tgz", + "integrity": "sha512-We3Td5WsNsNQyXoheLnuwic6JCOt/pqXqIIyWaZ3z/PeHrA+SwoQdI18MjDhkudLK08tbIVyDSUW8IJHXa04eg==", + "license": "MIT", + "dependencies": { + "@expo/image-utils": "^0.6.4", + "expo-constants": "~17.0.4", + "invariant": "^2.2.4", + "md5-file": "^3.2.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "expo": "*", + "react": "*", + "react-native": "*" + } + }, + "node_modules/expo-constants": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-17.0.4.tgz", + "integrity": "sha512-5c0VlZycmDyQUCMCr3Na3cpHAsVJJ+5o6KkkD4rmATQZ0++Xp/S2gpnjWyEo2riRmO91vxoyHwmAySXuktJddQ==", + "license": "MIT", + "dependencies": { + "@expo/config": "~10.0.8", + "@expo/env": "~0.4.1" + }, + "peerDependencies": { + "expo": "*", + "react-native": "*" } }, - "node_modules/expo/node_modules/lightningcss-darwin-x64": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz", - "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" + "node_modules/expo-file-system": { + "version": "18.0.7", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-18.0.7.tgz", + "integrity": "sha512-6PpbQfogMXdzOsJzlJayy5qf40IfIHhudtAOzr32RlRYL4Hkmk3YcR9jG0PWQ0rklJfAhbAdP63yOcN+wDgzaA==", + "license": "MIT", + "dependencies": { + "web-streams-polyfill": "^3.3.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "expo": "*", + "react-native": "*" } }, - "node_modules/expo/node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz", - "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" + "node_modules/expo-font": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-13.0.3.tgz", + "integrity": "sha512-9IdYz+A+b3KvuCYP7DUUXF4VMZjPU+IsvAnLSVJ2TfP6zUD2JjZFx3jeo/cxWRkYk/aLj5+53Te7elTAScNl4Q==", + "license": "MIT", + "dependencies": { + "fontfaceobserver": "^2.1.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "expo": "*", + "react": "*" } }, - "node_modules/expo/node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz", - "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node_modules/expo-keep-awake": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-14.0.2.tgz", + "integrity": "sha512-71XAMnoWjKZrN8J7Q3+u0l9Ytp4OfhNAYz8BCWF1/9aFUw09J3I7Z5DuI3MUsVMa/KWi+XhG+eDUFP8cVA19Uw==", + "license": "MIT", + "peerDependencies": { + "expo": "*", + "react": "*" } }, - "node_modules/expo/node_modules/lightningcss-linux-arm64-musl": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz", - "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" + "node_modules/expo-linking": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-7.0.4.tgz", + "integrity": "sha512-i+QaFc2zwOoq/ajePVWC+op3cOKC6nd6Wj/BJtukU71byTAbxDhbi+3m0ZFbh2i1/v/iIXRqrl3PvQcKNklPkw==", + "license": "MIT", + "dependencies": { + "expo-constants": "~17.0.4", + "invariant": "^2.2.4" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "react": "*", + "react-native": "*" } }, - "node_modules/expo/node_modules/lightningcss-linux-x64-gnu": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz", - "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" + "node_modules/expo-modules-autolinking": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.0.7.tgz", + "integrity": "sha512-rkGc6a/90AC3q8wSy4V+iIpq6Fd0KXmQICKrvfmSWwrMgJmLfwP4QTrvLYPYOOMjFwNJcTaohcH8vzW/wYKrMg==", + "license": "MIT", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "fast-glob": "^3.2.5", + "find-up": "^5.0.0", + "fs-extra": "^9.1.0", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "bin": { + "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, - "node_modules/expo/node_modules/lightningcss-linux-x64-musl": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz", - "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node_modules/expo-modules-core": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-2.1.4.tgz", + "integrity": "sha512-gfsbTPSaocgcQQDy4Z4ztg1hcOofwODctAA+yoNcrUQr/hRaDc6ndIJQwGPjoGXnEbXVxFfzGGSAkNiqK1I7lQ==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4" } }, - "node_modules/expo/node_modules/lightningcss-win32-x64-msvc": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz", - "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" + "node_modules/expo-router": { + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-4.0.17.tgz", + "integrity": "sha512-8ybo6bVwdG1S9hafh9BTOjX1hpCgomdUvs6hKHMM01koo8mQ7zocH/+zxQeaMVDxGhboz2dO5GiDchWJ0OheRA==", + "license": "MIT", + "dependencies": { + "@expo/metro-runtime": "4.0.1", + "@expo/server": "^0.5.1", + "@radix-ui/react-slot": "1.0.1", + "@react-navigation/bottom-tabs": "^7.2.0", + "@react-navigation/native": "^7.0.14", + "@react-navigation/native-stack": "^7.2.0", + "client-only": "^0.0.1", + "react-helmet-async": "^1.3.0", + "react-native-helmet-async": "2.0.4", + "react-native-is-edge-to-edge": "^1.1.6", + "schema-utils": "^4.0.1", + "semver": "~7.6.3", + "server-only": "^0.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "@react-navigation/drawer": "^7.1.1", + "expo": "*", + "expo-constants": "*", + "expo-linking": "*", + "react-native-reanimated": "*", + "react-native-safe-area-context": "*", + "react-native-screens": "*" + }, + "peerDependenciesMeta": { + "@react-navigation/drawer": { + "optional": true + }, + "@testing-library/jest-native": { + "optional": true + }, + "react-native-reanimated": { + "optional": true + } } }, - "node_modules/expo/node_modules/semver": { + "node_modules/expo-router/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -11160,58 +8788,94 @@ "node": ">=10" } }, - "node_modules/expo/node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "node_modules/expo-splash-screen": { + "version": "0.29.21", + "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.29.21.tgz", + "integrity": "sha512-7uZ+qvIuNcvrvrLIklW+Wbt6llPuCj6LKYjrMu+GOX8s///laldS4TGiMAbqcE7fmfCzQ8ffgfY7xhxRourhcA==", + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" + "@expo/prebuild-config": "^8.0.25" }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-status-bar": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-2.0.1.tgz", + "integrity": "sha512-AkIPX7jWHRPp83UBZ1iXtVvyr0g+DgBVvIXTtlmPtmUsm8Vq9Bb5IGj86PW8osuFlgoTVAg7HI/+Ok7yEYwiRg==", + "license": "MIT", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/expo-system-ui": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-4.0.7.tgz", + "integrity": "sha512-x1VDoE7J8m4wxTgWyUBEYqsf1KabIg64dOLzYiZjg0cWOE6o6kX2Mg6n3abVWEEC01WhZBoo9+Urcce/6ZJ3tg==", + "license": "MIT", + "dependencies": { + "@react-native/normalize-colors": "0.76.6", + "debug": "^4.3.2" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "expo": "*", + "react-native": "*", + "react-native-web": "*" + }, + "peerDependenciesMeta": { + "react-native-web": { + "optional": true + } + } + }, + "node_modules/expo-web-browser": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-14.0.2.tgz", + "integrity": "sha512-Hncv2yojhTpHbP6SGWARBFdl7P6wBHc1O8IKaNsH0a/IEakq887o1eRhLxZ5IwztPQyRDhpqHdgJ+BjWolOnwA==", + "license": "MIT", + "peerDependencies": { + "expo": "*", + "react-native": "*" } }, "node_modules/exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "license": "Apache-2.0" }, "node_modules/fast-base64-decode": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz", - "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==" + "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==", + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -11221,6 +8885,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -11232,49 +8897,42 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-loops": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.4.tgz", - "integrity": "sha512-8dbd3XWoKCTms18ize6JmQF1SFnnfj5s0B7rRry22EofgMu7B6LKHVh+XfFqFGsqnbH54xgeO83PzpKI+ODhlg==" + "integrity": "sha512-8dbd3XWoKCTms18ize6JmQF1SFnnfj5s0B7rRry22EofgMu7B6LKHVh+XfFqFGsqnbH54xgeO83PzpKI+ODhlg==", + "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==" - }, - "node_modules/fast-xml-parser": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", - "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", "funding": [ { "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" + "url": "https://github.com/sponsors/fastify" }, { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" + "type": "opencollective", + "url": "https://opencollective.com/fastify" } ], - "dependencies": { - "strnum": "^1.0.5" - }, - "bin": { - "fxparser": "src/cli/cli.js" - } + "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -11283,6 +8941,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } @@ -11291,6 +8950,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", + "license": "BSD-3-Clause", "dependencies": { "fbjs": "^3.0.0" } @@ -11299,6 +8959,7 @@ "version": "3.0.5", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", + "license": "MIT", "dependencies": { "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", @@ -11312,18 +8973,21 @@ "node_modules/fbjs-css-vars": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "license": "MIT" }, "node_modules/fetch-retry": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz", - "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==" + "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==", + "license": "MIT" }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, @@ -11335,6 +8999,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -11346,6 +9011,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11354,6 +9020,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -11371,6 +9038,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -11378,12 +9046,14 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -11397,6 +9067,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -11408,6 +9079,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -11420,6 +9092,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -11432,6 +9105,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -11446,6 +9120,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -11457,6 +9132,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -11465,6 +9141,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -11476,6 +9153,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -11484,6 +9162,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -11495,19 +9174,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "dependencies": { - "micromatch": "^4.0.2" - } - }, "node_modules/flat-cache": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -11520,17 +9192,20 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/flow-enums-runtime": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz", - "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==" + "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==", + "license": "MIT" }, "node_modules/flow-parser": { - "version": "0.253.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.253.0.tgz", - "integrity": "sha512-EbxtzRIzp8dDSzTloPhsc6uOvrEFIyu08cqQzXBWLAgxK+i2d/5qOos9ryQHRmk+RyDDXfnz/7qteh3jnAlc4w==", + "version": "0.259.1", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.259.1.tgz", + "integrity": "sha512-xiXLmMH2Z7OmdE9Q+MjljUMr/rbemFqZIRxaeZieVScG4HzQrKKhNcCYZbWTGpoN7ZPi7z8ClQbeVPq6t5AszQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -11538,12 +9213,14 @@ "node_modules/fontfaceobserver": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", - "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==" + "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==", + "license": "BSD-2-Clause" }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } @@ -11552,6 +9229,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -11567,6 +9245,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz", "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -11580,6 +9259,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -11588,6 +9268,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11596,6 +9277,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -11610,6 +9292,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -11620,13 +9303,15 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -11639,6 +9324,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11647,6 +9333,8 @@ "version": "1.1.8", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -11666,6 +9354,8 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11674,6 +9364,7 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -11682,6 +9373,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -11690,6 +9382,7 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-define-property": "^1.0.1", @@ -11713,7 +9406,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -11722,6 +9415,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -11730,6 +9424,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" @@ -11742,6 +9437,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -11753,6 +9449,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -11766,10 +9464,11 @@ } }, "node_modules/get-tsconfig": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", - "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", "dev": true, + "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -11781,6 +9480,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -11789,6 +9489,7 @@ "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -11809,6 +9510,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -11821,12 +9523,14 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true, + "license": "BSD-2-Clause", "peer": true }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -11835,6 +9539,7 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -11849,6 +9554,7 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", "engines": { "node": ">=4" } @@ -11857,6 +9563,8 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" @@ -11872,6 +9580,7 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -11891,6 +9600,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11901,40 +9611,22 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } + "dev": true, + "license": "MIT" }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11946,6 +9638,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -11954,6 +9647,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -11965,6 +9659,8 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.0" }, @@ -11979,6 +9675,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11990,6 +9687,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -12004,6 +9702,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -12012,69 +9711,59 @@ } }, "node_modules/hermes-estree": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz", - "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==" + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", + "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==", + "license": "MIT" }, "node_modules/hermes-parser": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz", - "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==", - "dependencies": { - "hermes-estree": "0.19.1" - } - }, - "node_modules/hermes-profile-transformer": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", - "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", + "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", + "license": "MIT", "dependencies": { - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=8" + "hermes-estree": "0.23.1" } }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, "node_modules/hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, + "license": "MIT", "dependencies": { "whatwg-encoding": "^2.0.0" }, @@ -12086,12 +9775,14 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -12107,6 +9798,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -12116,6 +9808,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, + "license": "MIT", "dependencies": { "@tootallnate/once": "2", "agent-base": "6", @@ -12129,6 +9822,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -12141,6 +9836,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } @@ -12148,13 +9844,15 @@ "node_modules/hyphenate-style-name": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", - "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==" + "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==", + "license": "BSD-3-Clause" }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -12179,20 +9877,23 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/image-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", - "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.0.tgz", + "integrity": "sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==", + "license": "MIT", "dependencies": { "queue": "6.0.2" }, @@ -12208,6 +9909,7 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -12224,14 +9926,16 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/import-in-the-middle": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.2.tgz", - "integrity": "sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.12.0.tgz", + "integrity": "sha512-yAgSE7GmtRcu4ZUSFX/4v69UGXwugFFSdIQJ14LHPOPPQrWv8Y7O9PHsw8Ovk7bKCLe4sjXMbZFqGFcLHpZ89w==", + "license": "Apache-2.0", "dependencies": { "acorn": "^8.8.2", "acorn-import-attributes": "^1.9.5", @@ -12244,6 +9948,7 @@ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -12262,6 +9967,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -12270,6 +9976,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -12279,6 +9986,7 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -12287,17 +9995,20 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" }, "node_modules/inline-style-prefixer": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz", "integrity": "sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==", + "license": "MIT", "dependencies": { "css-in-js-utils": "^3.1.0", "fast-loops": "^1.1.3" @@ -12307,6 +10018,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "license": "MIT", "dependencies": { "default-gateway": "^4.2.0", "ipaddr.js": "^1.9.0" @@ -12319,6 +10031,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", @@ -12332,6 +10046,7 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } @@ -12340,6 +10055,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -12348,17 +10064,19 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -12371,6 +10089,8 @@ "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -12386,13 +10106,17 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" }, "node_modules/is-async-function": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", - "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", "dependencies": { + "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", @@ -12409,6 +10133,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.2" }, @@ -12423,6 +10149,8 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -12437,13 +10165,15 @@ "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" }, "node_modules/is-bun-module": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.2.1.tgz", - "integrity": "sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", + "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.6.3" } @@ -12453,6 +10183,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -12464,6 +10195,7 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -12472,9 +10204,10 @@ } }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -12489,6 +10222,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", @@ -12505,6 +10240,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -12520,6 +10257,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12528,6 +10266,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -12542,6 +10281,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12550,6 +10290,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -12561,11 +10303,12 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/is-generator-fn": { @@ -12573,16 +10316,21 @@ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -12595,6 +10343,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -12602,48 +10351,12 @@ "node": ">=0.10.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-invalid-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", - "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", - "dependencies": { - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -12655,6 +10368,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -12663,6 +10377,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -12678,6 +10394,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -12686,6 +10403,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -12694,6 +10412,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", "engines": { "node": ">=8" } @@ -12702,6 +10421,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -12713,12 +10433,14 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", @@ -12736,6 +10458,8 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -12747,6 +10471,8 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -12761,6 +10487,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12769,6 +10496,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -12784,6 +10513,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", @@ -12800,6 +10531,7 @@ "version": "1.1.15", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.16" }, @@ -12810,32 +10542,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-valid-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", - "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", - "dependencies": { - "is-invalid-path": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -12847,6 +10559,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2" }, @@ -12861,6 +10575,8 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" @@ -12876,6 +10592,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -12886,17 +10603,21 @@ "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12905,7 +10626,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } @@ -12915,6 +10636,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", @@ -12931,6 +10653,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -12943,6 +10666,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -12957,6 +10681,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -12971,6 +10696,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -12980,6 +10706,7 @@ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -12993,6 +10720,7 @@ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", @@ -13009,6 +10737,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -13024,6 +10753,7 @@ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -13050,6 +10780,7 @@ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", @@ -13064,6 +10795,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -13087,6 +10819,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -13099,6 +10832,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -13111,6 +10845,7 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -13120,6 +10855,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -13132,6 +10868,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -13146,13 +10883,15 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/jest-circus": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -13184,6 +10923,7 @@ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", @@ -13217,6 +10957,7 @@ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", @@ -13263,6 +11004,7 @@ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -13283,6 +11025,7 @@ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", @@ -13298,6 +11041,7 @@ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, + "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -13310,6 +11054,7 @@ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -13326,6 +11071,7 @@ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -13352,6 +11098,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -13402,6 +11149,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-6230622a1a-20240610.tgz", "integrity": "sha512-SMgWGY//7nO7F3HMuBfmC15Cr4vTe2tlpSCATfnz/wymSftDOKUqc+0smjRhcUeCFCc1zhOAWJ+N//U5CrmOzQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -13412,6 +11160,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-6230622a1a-20240610.tgz", "integrity": "sha512-56G4Pum5E7FeGL1rwHX5IxidSJxQnXP4yORRo0pVeOJuu5DQJvNKpUwmJoftMP/ez0AiglYTY77L2Gs8iyt1Hg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "scheduler": "0.25.0-rc-6230622a1a-20240610" @@ -13420,24 +11169,12 @@ "react": "19.0.0-rc-6230622a1a-20240610" } }, - "node_modules/jest-expo/node_modules/react-dom/node_modules/scheduler": { - "version": "0.25.0-rc-6230622a1a-20240610", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-6230622a1a-20240610.tgz", - "integrity": "sha512-GTIQdJXthps5mgkIFo7yAq03M0QQYTfN8z+GrnMC/SCKFSuyFP5tk2BMaaWUsVy4u4r+dTLdiXH8JEivVls0Bw==", - "dev": true, - "peer": true - }, - "node_modules/jest-expo/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true - }, "node_modules/jest-expo/node_modules/react-server-dom-webpack": { "version": "19.0.0-rc-6230622a1a-20240610", "resolved": "https://registry.npmjs.org/react-server-dom-webpack/-/react-server-dom-webpack-19.0.0-rc-6230622a1a-20240610.tgz", "integrity": "sha512-nr+IsOVD07QdeCr4BLvR5TALfLaZLi9AIaoa6vXymBc051iDPWedJujYYrjRJy5+9jp9oCx3G8Tt/Bs//TckJw==", "dev": true, + "license": "MIT", "dependencies": { "acorn-loose": "^8.3.0", "neo-async": "^2.6.1" @@ -13451,24 +11188,19 @@ "webpack": "^5.59.0" } }, - "node_modules/jest-expo/node_modules/react-test-renderer": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.3.1.tgz", - "integrity": "sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==", + "node_modules/jest-expo/node_modules/scheduler": { + "version": "0.25.0-rc-6230622a1a-20240610", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-6230622a1a-20240610.tgz", + "integrity": "sha512-GTIQdJXthps5mgkIFo7yAq03M0QQYTfN8z+GrnMC/SCKFSuyFP5tk2BMaaWUsVy4u4r+dTLdiXH8JEivVls0Bw==", "dev": true, - "dependencies": { - "react-is": "^18.3.1", - "react-shallow-renderer": "^16.15.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } + "license": "MIT", + "peer": true }, "node_modules/jest-get-type": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -13477,7 +11209,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -13503,6 +11235,7 @@ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" @@ -13516,6 +11249,7 @@ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", @@ -13530,6 +11264,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", @@ -13549,6 +11284,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -13563,6 +11299,7 @@ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -13579,7 +11316,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -13589,6 +11326,7 @@ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -13609,6 +11347,7 @@ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "license": "MIT", "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" @@ -13622,6 +11361,7 @@ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", @@ -13654,6 +11394,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -13663,6 +11404,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -13673,6 +11415,7 @@ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -13707,6 +11450,7 @@ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -13727,6 +11471,7 @@ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -13758,6 +11503,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -13769,6 +11515,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -13785,6 +11532,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -13796,6 +11544,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", @@ -13812,6 +11561,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -13824,6 +11574,7 @@ "resolved": "https://registry.npmjs.org/jest-watch-select-projects/-/jest-watch-select-projects-2.0.0.tgz", "integrity": "sha512-j00nW4dXc2NiCW6znXgFLF9g8PJ0zP25cpQ1xRro/HU2GBfZQFZD0SoXnAlaoKkIY4MlfTMkKGbNXFpvCdjl1w==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.0", "chalk": "^3.0.0", @@ -13835,6 +11586,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -13848,6 +11600,7 @@ "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-2.2.1.tgz", "integrity": "sha512-jYpYmUnTzysmVnwq49TAxlmtOAwp8QIqvZyoofQFn8fiWhEDZj33ZXzg3JA4nGnzWFm1hbWf3ADpteUokvXgFA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^6.0.0", "chalk": "^4.0.0", @@ -13869,6 +11622,7 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -13876,23 +11630,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/jest-watch-typeahead/node_modules/char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz", + "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" } @@ -13902,6 +11645,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -13914,6 +11658,7 @@ "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", "dev": true, + "license": "MIT", "dependencies": { "char-regex": "^2.0.0", "strip-ansi": "^7.0.1" @@ -13925,26 +11670,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/jest-watcher": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", @@ -13963,6 +11694,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -13977,6 +11709,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -13990,34 +11723,26 @@ "node_modules/jimp-compact": { "version": "0.16.1", "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz", - "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==" - }, - "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", - "dependencies": { - "@hapi/hoek": "^9.3.0", - "@hapi/topo": "^5.1.0", - "@sideway/address": "^4.1.5", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } + "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==", + "license": "MIT" }, "node_modules/join-component": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", - "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==" + "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==", + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -14028,17 +11753,20 @@ "node_modules/jsc-android": { "version": "250231.0.0", "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz", - "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==" + "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==", + "license": "BSD-2-Clause" }, "node_modules/jsc-safe-url": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz", - "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==" + "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==", + "license": "0BSD" }, "node_modules/jscodeshift": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz", "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.13.16", "@babel/parser": "^7.13.16", @@ -14072,6 +11800,7 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", "dev": true, + "license": "MIT", "dependencies": { "abab": "^2.0.6", "acorn": "^8.8.1", @@ -14117,6 +11846,7 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -14127,9 +11857,10 @@ } }, "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -14141,63 +11872,41 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-deref-sync": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz", - "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==", - "dependencies": { - "clone": "^2.1.2", - "dag-map": "~1.0.0", - "is-valid-path": "^0.1.1", - "lodash": "^4.17.13", - "md5": "~2.2.0", - "memory-cache": "~0.2.0", - "traverse": "~0.6.6", - "valid-url": "~1.0.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/json-schema-deref-sync/node_modules/md5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", - "dependencies": { - "charenc": "~0.0.1", - "crypt": "~0.0.1", - "is-buffer": "~1.1.1" - } + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -14209,6 +11918,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -14221,6 +11931,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -14236,6 +11947,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -14244,6 +11956,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14252,6 +11965,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", "engines": { "node": ">=6" } @@ -14260,6 +11974,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -14269,6 +11984,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -14281,6 +11997,7 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", + "license": "Apache-2.0", "dependencies": { "debug": "^2.6.9", "marky": "^1.2.2" @@ -14290,6 +12007,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -14297,12 +12015,14 @@ "node_modules/lighthouse-logger/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/lightningcss": { "version": "1.27.0", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.27.0.tgz", "integrity": "sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==", + "license": "MPL-2.0", "dependencies": { "detect-libc": "^1.0.3" }, @@ -14333,6 +12053,7 @@ "cpu": [ "arm64" ], + "license": "MPL-2.0", "optional": true, "os": [ "darwin" @@ -14352,6 +12073,7 @@ "cpu": [ "x64" ], + "license": "MPL-2.0", "optional": true, "os": [ "darwin" @@ -14371,6 +12093,7 @@ "cpu": [ "x64" ], + "license": "MPL-2.0", "optional": true, "os": [ "freebsd" @@ -14390,6 +12113,7 @@ "cpu": [ "arm" ], + "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -14409,6 +12133,7 @@ "cpu": [ "arm64" ], + "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -14428,6 +12153,7 @@ "cpu": [ "arm64" ], + "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -14447,6 +12173,7 @@ "cpu": [ "x64" ], + "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -14466,6 +12193,7 @@ "cpu": [ "x64" ], + "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -14485,6 +12213,7 @@ "cpu": [ "arm64" ], + "license": "MPL-2.0", "optional": true, "os": [ "win32" @@ -14504,6 +12233,7 @@ "cpu": [ "x64" ], + "license": "MPL-2.0", "optional": true, "os": [ "win32" @@ -14519,13 +12249,15 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.11.5" @@ -14535,6 +12267,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -14548,27 +12281,33 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" }, "node_modules/log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "license": "MIT", "dependencies": { "chalk": "^2.0.1" }, @@ -14580,6 +12319,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -14591,6 +12331,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -14604,199 +12345,58 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/log-symbols/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/logkitty": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", - "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", - "dependencies": { - "ansi-fragments": "^0.2.1", - "dayjs": "^1.8.15", - "yargs": "^15.1.0" - }, - "bin": { - "logkitty": "bin/logkitty.js" - } - }, - "node_modules/logkitty/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/logkitty/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/logkitty/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/logkitty/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "color-name": "1.1.3" } }, - "node_modules/logkitty/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/log-symbols/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.8.0" } }, - "node_modules/logkitty/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/logkitty/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/logkitty/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", + "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==", + "license": "Apache-2.0" }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -14808,6 +12408,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -14817,6 +12418,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -14832,6 +12434,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -14843,6 +12446,7 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } @@ -14850,12 +12454,14 @@ "node_modules/marky": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", - "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==" + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "license": "Apache-2.0" }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -14864,6 +12470,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -14874,6 +12481,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz", "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==", + "license": "MIT", "dependencies": { "buffer-alloc": "^1.1.0" }, @@ -14884,25 +12492,17 @@ "node": ">=0.10" } }, - "node_modules/md5hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", - "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==" - }, "node_modules/memoize-one": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" - }, - "node_modules/memory-cache": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", - "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==" + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT" }, "node_modules/merge-options": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "license": "MIT", "dependencies": { "is-plain-obj": "^2.1.0" }, @@ -14913,28 +12513,31 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/metro": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.12.tgz", - "integrity": "sha512-1UsH5FzJd9quUsD1qY+zUG4JY3jo3YEMxbMYH9jT6NK3j4iORhlwTK8fYTfAUBhDKjgLfKjAh7aoazNE23oIRA==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.81.0.tgz", + "integrity": "sha512-kzdzmpL0gKhEthZ9aOV7sTqvg6NuTxDV8SIm9pf9sO8VVEbKrQk5DNcwupOUjgPPFAuKUc2NkT0suyT62hm2xg==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/parser": "^7.20.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", + "@babel/code-frame": "^7.24.7", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", + "@babel/types": "^7.25.2", "accepts": "^1.3.7", "chalk": "^4.0.0", "ci-info": "^2.0.0", @@ -14944,24 +12547,24 @@ "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", - "hermes-parser": "0.23.1", + "hermes-parser": "0.24.0", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.6.3", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.80.12", - "metro-cache": "0.80.12", - "metro-cache-key": "0.80.12", - "metro-config": "0.80.12", - "metro-core": "0.80.12", - "metro-file-map": "0.80.12", - "metro-resolver": "0.80.12", - "metro-runtime": "0.80.12", - "metro-source-map": "0.80.12", - "metro-symbolicate": "0.80.12", - "metro-transform-plugins": "0.80.12", - "metro-transform-worker": "0.80.12", + "metro-babel-transformer": "0.81.0", + "metro-cache": "0.81.0", + "metro-cache-key": "0.81.0", + "metro-config": "0.81.0", + "metro-core": "0.81.0", + "metro-file-map": "0.81.0", + "metro-resolver": "0.81.0", + "metro-runtime": "0.81.0", + "metro-source-map": "0.81.0", + "metro-symbolicate": "0.81.0", + "metro-transform-plugins": "0.81.0", + "metro-transform-worker": "0.81.0", "mime-types": "^2.1.27", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", @@ -14975,95 +12578,103 @@ "metro": "src/cli.js" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-babel-transformer": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.12.tgz", - "integrity": "sha512-YZziRs0MgA3pzCkkvOoQRXjIoVjvrpi/yRlJnObyIvMP6lFdtyG4nUGIwGY9VXnBvxmXD6mPY2e+NSw6JAyiRg==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.81.0.tgz", + "integrity": "sha512-Dc0QWK4wZIeHnyZ3sevWGTnnSkIDDn/SWyfrn99zbKbDOCoCYy71PAn9uCRrP/hduKLJQOy+tebd63Rr9D8tXg==", + "license": "MIT", "dependencies": { - "@babel/core": "^7.20.0", + "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", - "hermes-parser": "0.23.1", + "hermes-parser": "0.24.0", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-babel-transformer/node_modules/hermes-estree": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", - "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==" + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.24.0.tgz", + "integrity": "sha512-LyoXLB7IFzeZW0EvAbGZacbxBN7t6KKSDqFJPo3Ydow7wDlrDjXwsdiAHV6XOdvEN9MEuWXsSIFN4tzpyrXIHw==", + "license": "MIT" }, "node_modules/metro-babel-transformer/node_modules/hermes-parser": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", - "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.24.0.tgz", + "integrity": "sha512-IJooSvvu2qNRe7oo9Rb04sUT4omtZqZqf9uq9WM25Tb6v3usmvA93UqfnnoWs5V0uYjEl9Al6MNU10MCGKLwpg==", + "license": "MIT", "dependencies": { - "hermes-estree": "0.23.1" + "hermes-estree": "0.24.0" } }, "node_modules/metro-cache": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.12.tgz", - "integrity": "sha512-p5kNHh2KJ0pbQI/H7ZBPCEwkyNcSz7OUkslzsiIWBMPQGFJ/xArMwkV7I+GJcWh+b4m6zbLxE5fk6fqbVK1xGA==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.81.0.tgz", + "integrity": "sha512-DyuqySicHXkHUDZFVJmh0ygxBSx6pCKUrTcSgb884oiscV/ROt1Vhye+x+OIHcsodyA10gzZtrVtxIFV4l9I4g==", + "license": "MIT", "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", - "metro-core": "0.80.12" + "metro-core": "0.81.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-cache-key": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.12.tgz", - "integrity": "sha512-o4BspKnugg/pE45ei0LGHVuBJXwRgruW7oSFAeSZvBKA/sGr0UhOGY3uycOgWInnS3v5yTTfiBA9lHlNRhsvGA==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.81.0.tgz", + "integrity": "sha512-qX/IwtknP9bQZL78OK9xeSvLM/xlGfrs6SlUGgHvrxtmGTRSsxcyqxR+c+7ch1xr05n62Gin/O44QKg5V70rNQ==", + "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-config": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.12.tgz", - "integrity": "sha512-4rwOWwrhm62LjB12ytiuR5NgK1ZBNr24/He8mqCsC+HXZ+ATbrewLNztzbAZHtFsrxP4D4GLTGgh96pCpYLSAQ==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.81.0.tgz", + "integrity": "sha512-6CinEaBe3WLpRlKlYXXu8r1UblJhbwD6Gtnoib5U8j6Pjp7XxMG9h/DGMeNp9aGLDu1OieUqiXpFo7O0/rR5Kg==", + "license": "MIT", "dependencies": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "flow-enums-runtime": "^0.0.6", "jest-validate": "^29.6.3", - "metro": "0.80.12", - "metro-cache": "0.80.12", - "metro-core": "0.80.12", - "metro-runtime": "0.80.12" + "metro": "0.81.0", + "metro-cache": "0.81.0", + "metro-core": "0.81.0", + "metro-runtime": "0.81.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-core": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.12.tgz", - "integrity": "sha512-QqdJ/yAK+IpPs2HU/h5v2pKEdANBagSsc6DRSjnwSyJsCoHlmyJKCaCJ7KhWGx+N4OHxh37hoA8fc2CuZbx0Fw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.81.0.tgz", + "integrity": "sha512-CVkM5YCOAFkNMvJai6KzA0RpztzfEKRX62/PFMOJ9J7K0uq/UkOFLxcgpcncMIrfy0PbfEj811b69tjULUQe1Q==", + "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.80.12" + "metro-resolver": "0.81.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-file-map": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.12.tgz", - "integrity": "sha512-sYdemWSlk66bWzW2wp79kcPMzwuG32x1ZF3otI0QZTmrnTaaTiGyhE66P1z6KR4n2Eu5QXiABa6EWbAQv0r8bw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.81.0.tgz", + "integrity": "sha512-zMDI5uYhQCyxbye/AuFx/pAbsz9K+vKL7h1ShUXdN2fz4VUPiyQYRsRqOoVG1DsiCgzd5B6LW0YW77NFpjDQeg==", + "license": "MIT", "dependencies": { "anymatch": "^3.0.3", "debug": "^2.2.0", @@ -15078,7 +12689,7 @@ "walker": "^1.0.7" }, "engines": { - "node": ">=18" + "node": ">=18.18" }, "optionalDependencies": { "fsevents": "^2.3.2" @@ -15088,6 +12699,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -15095,78 +12707,86 @@ "node_modules/metro-file-map/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/metro-minify-terser": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.12.tgz", - "integrity": "sha512-muWzUw3y5k+9083ZoX9VaJLWEV2Jcgi+Oan0Mmb/fBNMPqP9xVDuy4pOMn/HOiGndgfh/MK7s4bsjkyLJKMnXQ==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.81.0.tgz", + "integrity": "sha512-U2ramh3W822ZR1nfXgIk+emxsf5eZSg10GbQrT0ZizImK8IZ5BmJY+BHRIkQgHzWFpExOVxC7kWbGL1bZALswA==", + "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-resolver": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.12.tgz", - "integrity": "sha512-PR24gYRZnYHM3xT9pg6BdbrGbM/Cu1TcyIFBVlAk7qDAuHkUNQ1nMzWumWs+kwSvtd9eZGzHoucGJpTUEeLZAw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.81.0.tgz", + "integrity": "sha512-Uu2Q+buHhm571cEwpPek8egMbdSTqmwT/5U7ZVNpK6Z2ElQBBCxd7HmFAslKXa7wgpTO2FAn6MqGeERbAtVDUA==", + "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-runtime": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.12.tgz", - "integrity": "sha512-LIx7+92p5rpI0i6iB4S4GBvvLxStNt6fF0oPMaUd1Weku7jZdfkCZzmrtDD9CSQ6EPb0T9NUZoyXIxlBa3wOCw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.81.0.tgz", + "integrity": "sha512-6oYB5HOt37RuGz2eV4A6yhcl+PUTwJYLDlY9vhT+aVjbUWI6MdBCf69vc4f5K5Vpt+yOkjy+2LDwLS0ykWFwYw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-source-map": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.12.tgz", - "integrity": "sha512-o+AXmE7hpvM8r8MKsx7TI21/eerYYy2DCDkWfoBkv+jNkl61khvDHlQn0cXZa6lrcNZiZkl9oHSMcwLLIrFmpw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.81.0.tgz", + "integrity": "sha512-TzsVxhH83dyxg4A4+L1nzNO12I7ps5IHLjKGZH3Hrf549eiZivkdjYiq/S5lOB+p2HiQ+Ykcwtmcja95LIC62g==", + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", + "@babel/traverse": "^7.25.3", + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", + "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-symbolicate": "0.80.12", + "metro-symbolicate": "0.81.0", "nullthrows": "^1.1.1", - "ob1": "0.80.12", + "ob1": "0.81.0", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-source-map/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/metro-symbolicate": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.12.tgz", - "integrity": "sha512-/dIpNdHksXkGHZXARZpL7doUzHqSNxgQ8+kQGxwpJuHnDhGkENxB5PS2QBaTDdEcmyTMjS53CN1rl9n1gR6fmw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.81.0.tgz", + "integrity": "sha512-C/1rWbNTPYp6yzID8IPuQPpVGzJ2rbWYBATxlvQ9dfK5lVNoxcwz77hjcY8ISLsRRR15hyd/zbjCNKPKeNgE1Q==", + "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-source-map": "0.80.12", + "metro-source-map": "0.81.0", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -15176,99 +12796,121 @@ "metro-symbolicate": "src/index.js" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-symbolicate/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/metro-transform-plugins": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.12.tgz", - "integrity": "sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.81.0.tgz", + "integrity": "sha512-uErLAPBvttGCrmGSCa0dNHlOTk3uJFVEVWa5WDg6tQ79PRmuYRwzUgLhVzn/9/kyr75eUX3QWXN79Jvu4txt6Q==", + "license": "MIT", "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.20.0", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", "flow-enums-runtime": "^0.0.6", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-transform-worker": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.12.tgz", - "integrity": "sha512-KAPFN1y3eVqEbKLx1I8WOarHPqDMUa8WelWxaJCNKO/yHCP26zELeqTJvhsQup+8uwB6EYi/sp0b6TGoh6lOEA==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.81.0.tgz", + "integrity": "sha512-HrQ0twiruhKy0yA+9nK5bIe3WQXZcC66PXTvRIos61/EASLAP2DzEmW7IxN/MGsfZegN2UzqL2CG38+mOB45vg==", + "license": "MIT", "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/parser": "^7.20.0", - "@babel/types": "^7.20.0", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", - "metro": "0.80.12", - "metro-babel-transformer": "0.80.12", - "metro-cache": "0.80.12", - "metro-cache-key": "0.80.12", - "metro-minify-terser": "0.80.12", - "metro-source-map": "0.80.12", - "metro-transform-plugins": "0.80.12", + "metro": "0.81.0", + "metro-babel-transformer": "0.81.0", + "metro-cache": "0.81.0", + "metro-cache-key": "0.81.0", + "metro-minify-terser": "0.81.0", + "metro-source-map": "0.81.0", + "metro-transform-plugins": "0.81.0", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro/node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "license": "MIT" }, "node_modules/metro/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/metro/node_modules/hermes-estree": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", - "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==" + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.24.0.tgz", + "integrity": "sha512-LyoXLB7IFzeZW0EvAbGZacbxBN7t6KKSDqFJPo3Ydow7wDlrDjXwsdiAHV6XOdvEN9MEuWXsSIFN4tzpyrXIHw==", + "license": "MIT" }, "node_modules/metro/node_modules/hermes-parser": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", - "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.24.0.tgz", + "integrity": "sha512-IJooSvvu2qNRe7oo9Rb04sUT4omtZqZqf9uq9WM25Tb6v3usmvA93UqfnnoWs5V0uYjEl9Al6MNU10MCGKLwpg==", + "license": "MIT", "dependencies": { - "hermes-estree": "0.23.1" + "hermes-estree": "0.24.0" } }, "node_modules/metro/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/metro/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/metro/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/metro/node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -15289,6 +12931,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -15301,6 +12944,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -15309,20 +12953,22 @@ } }, "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4.0.0" + "node": ">=4" } }, "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -15331,6 +12977,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -15338,10 +12985,20 @@ "node": ">= 0.6" } }, + "node_modules/mime-types/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -15350,6 +13007,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -15361,6 +13019,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -15369,6 +13028,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -15377,6 +13037,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -15388,6 +13049,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -15399,6 +13061,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -15409,12 +13072,14 @@ "node_modules/minipass-flush/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -15426,6 +13091,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -15436,12 +13102,14 @@ "node_modules/minipass-pipeline/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -15454,6 +13122,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -15464,12 +13133,14 @@ "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -15480,12 +13151,14 @@ "node_modules/module-details-from-path": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" + "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", + "license": "MIT" }, "node_modules/mrmime": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "license": "MIT", "engines": { "node": ">=10" } @@ -15493,12 +13166,14 @@ "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -15506,15 +13181,16 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -15526,12 +13202,14 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -15539,35 +13217,32 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" }, "node_modules/nested-error-stacks": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", - "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==" + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "license": "MIT" }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/nocache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", - "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", - "engines": { - "node": ">=12.0.0" - } + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "license": "MIT" }, "node_modules/node-abort-controller": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "license": "MIT" }, "node_modules/node-dir": { "version": "0.1.17", "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", + "license": "MIT", "dependencies": { "minimatch": "^3.0.2" }, @@ -15579,6 +13254,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -15597,17 +13273,20 @@ "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -15617,6 +13296,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } @@ -15624,56 +13304,56 @@ "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" - }, - "node_modules/node-stream-zip": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", - "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", - "engines": { - "node": ">=0.12.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/antelle" - } + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/npm-package-arg": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", - "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "license": "ISC", "dependencies": { - "hosted-git-info": "^3.0.2", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-package-arg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "license": "MIT", "dependencies": { "path-key": "^2.0.0" }, @@ -15685,6 +13365,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -15692,29 +13373,33 @@ "node_modules/nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "license": "MIT" }, "node_modules/nwsapi": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", - "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==", - "dev": true + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", + "dev": true, + "license": "MIT" }, "node_modules/ob1": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.12.tgz", - "integrity": "sha512-VMArClVT6LkhUGpnuEoBuyjG9rzUyEzg4PDkav6wK1cLhOK02gPCYFxoiB4mqVnrMhDpIzJcrGNAMVi9P+hXrw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.81.0.tgz", + "integrity": "sha512-6Cvrkxt1tqaRdWqTAMcVYEiO5i1xcF9y7t06nFdjFqkfPsEloCf8WwhXdwBpNUkVYSQlSGS7cDgVQR86miBfBQ==", + "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15723,6 +13408,8 @@ "version": "1.13.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -15734,6 +13421,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -15742,6 +13431,8 @@ "version": "4.1.7", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -15762,6 +13453,7 @@ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -15776,6 +13468,7 @@ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -15794,6 +13487,7 @@ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -15808,6 +13502,7 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -15825,6 +13520,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -15836,6 +13532,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -15844,6 +13541,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -15852,6 +13550,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "license": "MIT", "dependencies": { "mimic-fn": "^1.0.0" }, @@ -15860,16 +13559,16 @@ } }, "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "license": "MIT", "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15880,6 +13579,7 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -15896,6 +13596,7 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "license": "MIT", "dependencies": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", @@ -15912,6 +13613,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -15920,6 +13622,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -15931,6 +13634,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -15944,6 +13648,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -15951,12 +13656,14 @@ "node_modules/ora/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" }, "node_modules/ora/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -15965,6 +13672,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -15973,6 +13681,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -15984,6 +13693,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -15991,36 +13701,21 @@ "node": ">=4" } }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "deprecated": "This package is no longer supported.", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", @@ -16037,6 +13732,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", "engines": { "node": ">=4" } @@ -16045,6 +13741,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -16059,6 +13756,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -16073,6 +13771,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -16087,6 +13786,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -16094,13 +13794,15 @@ "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -16113,6 +13815,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -16130,6 +13833,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", + "license": "MIT", "dependencies": { "pngjs": "^3.3.0" }, @@ -16142,6 +13846,7 @@ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "dev": true, + "license": "MIT", "dependencies": { "entities": "^4.5.0" }, @@ -16153,6 +13858,7 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -16161,6 +13867,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz", "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==", + "license": "0BSD", "dependencies": { "ansi-escapes": "^4.3.2", "cross-spawn": "^7.0.3" @@ -16170,6 +13877,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", "engines": { "node": ">=8" } @@ -16178,6 +13886,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16186,6 +13895,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -16193,12 +13903,14 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -16213,12 +13925,14 @@ "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -16226,12 +13940,14 @@ "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -16243,6 +13959,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -16251,6 +13968,7 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -16260,6 +13978,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -16272,6 +13991,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -16285,6 +14005,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -16297,6 +14018,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -16312,6 +14034,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -16323,6 +14046,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "license": "MIT", "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", @@ -16336,6 +14060,7 @@ "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "license": "MIT", "engines": { "node": ">=10.0.0" } @@ -16344,6 +14069,7 @@ "version": "15.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "license": "MIT", "engines": { "node": ">=8.0" } @@ -16352,6 +14078,7 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -16360,6 +14087,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -16382,6 +14110,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.1", @@ -16394,13 +14123,15 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -16410,6 +14141,7 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -16425,6 +14157,7 @@ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, + "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -16436,6 +14169,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -16447,6 +14181,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -16460,6 +14195,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -16467,15 +14203,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - }, "node_modules/proc-log": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -16483,12 +14215,14 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -16497,6 +14231,7 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "license": "MIT", "dependencies": { "asap": "~2.0.3" } @@ -16505,6 +14240,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -16517,17 +14253,25 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, "node_modules/protobufjs": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -16547,18 +14291,23 @@ } }, "node_modules/psl": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.10.0.tgz", - "integrity": "sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" } }, "node_modules/pump": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -16568,6 +14317,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -16586,7 +14336,8 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ] + ], + "license": "MIT" }, "node_modules/qrcode-terminal": { "version": "0.11.0", @@ -16600,6 +14351,7 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "license": "MIT", "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", @@ -16613,25 +14365,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "license": "MIT", "dependencies": { "inherits": "~2.0.3" } @@ -16653,13 +14398,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "^5.1.0" @@ -16669,6 +14416,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16677,6 +14425,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -16691,14 +14440,16 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -16710,6 +14461,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-5.3.2.tgz", "integrity": "sha512-crr9HkVrDiJ0A4zot89oS0Cgv0Oa4OG1Em4jit3P3ZxZSKPMYyMjfwMqgcJna9o625g8oN87rBm8SWWrSTBZxg==", + "license": "MIT", "dependencies": { "shell-quote": "^1.6.1", "ws": "^7" @@ -16719,6 +14471,7 @@ "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -16736,26 +14489,29 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-fast-compare": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" }, "node_modules/react-freeze": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz", "integrity": "sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -16763,10 +14519,28 @@ "react": ">=17.0.0" } }, + "node_modules/react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-hook-form": { - "version": "7.53.2", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.2.tgz", - "integrity": "sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==", + "version": "7.54.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz", + "integrity": "sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==", + "license": "MIT", "engines": { "node": ">=18.0.0" }, @@ -16779,51 +14553,54 @@ } }, "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" }, "node_modules/react-native": { - "version": "0.74.2", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.2.tgz", - "integrity": "sha512-EBMBjPPL4/GjHMP4NqsZabT3gI5WU9cSmduABGAGrd8uIcmTZ5F2Ng9k6gFmRm7n8e8CULxDNu98ZpQfBjl7Bw==", + "version": "0.76.6", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.76.6.tgz", + "integrity": "sha512-AsRi+ud6v6ADH7ZtSOY42kRB4nbM0KtSu450pGO4pDudl4AEK/AF96ai88snb2/VJJSGGa/49QyJVFXxz/qoFg==", + "license": "MIT", "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "13.6.8", - "@react-native-community/cli-platform-android": "13.6.8", - "@react-native-community/cli-platform-ios": "13.6.8", - "@react-native/assets-registry": "0.74.84", - "@react-native/codegen": "0.74.84", - "@react-native/community-cli-plugin": "0.74.84", - "@react-native/gradle-plugin": "0.74.84", - "@react-native/js-polyfills": "0.74.84", - "@react-native/normalize-colors": "0.74.84", - "@react-native/virtualized-lists": "0.74.84", + "@react-native/assets-registry": "0.76.6", + "@react-native/codegen": "0.76.6", + "@react-native/community-cli-plugin": "0.76.6", + "@react-native/gradle-plugin": "0.76.6", + "@react-native/js-polyfills": "0.76.6", + "@react-native/normalize-colors": "0.76.6", + "@react-native/virtualized-lists": "0.76.6", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", + "babel-jest": "^29.7.0", + "babel-plugin-syntax-hermes-parser": "^0.23.1", "base64-js": "^1.5.1", "chalk": "^4.0.0", + "commander": "^12.0.0", "event-target-shim": "^5.0.1", "flow-enums-runtime": "^0.0.6", + "glob": "^7.1.1", "invariant": "^2.2.4", "jest-environment-node": "^29.6.3", "jsc-android": "^250231.0.0", "memoize-one": "^5.0.0", - "metro-runtime": "^0.80.3", - "metro-source-map": "^0.80.3", + "metro-runtime": "^0.81.0", + "metro-source-map": "^0.81.0", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", - "pretty-format": "^26.5.2", + "pretty-format": "^29.7.0", "promise": "^8.3.0", - "react-devtools-core": "^5.0.0", + "react-devtools-core": "^5.3.1", "react-refresh": "^0.14.0", - "react-shallow-renderer": "^16.15.0", "regenerator-runtime": "^0.13.2", "scheduler": "0.24.0-canary-efb381bbf-20230505", + "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", - "ws": "^6.2.2", + "ws": "^6.2.3", "yargs": "^17.6.2" }, "bin": { @@ -16834,7 +14611,7 @@ }, "peerDependencies": { "@types/react": "^18.2.6", - "react": "18.2.0" + "react": "^18.2.0" }, "peerDependenciesMeta": { "@types/react": { @@ -16843,23 +14620,23 @@ } }, "node_modules/react-native-device-info": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-11.1.0.tgz", - "integrity": "sha512-hzXJSObJdezEz0hF7MAJ3tGeoesuQWenXXt9mrQR9Mjb8kXpZ09rqSsZ/quNpJdZpQ3rYiFa3/0GFG5KNn9PBg==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-14.0.2.tgz", + "integrity": "sha512-W1oqu4dC4uLKT/Z4uimRP6birJprWjhMP/AwV9hxGSZ5K3wJ/yb34aQ22sd6HmegQHfT2PmkFs3mj+4uXLE1YQ==", + "license": "MIT", "peerDependencies": { "react-native": "*" } }, "node_modules/react-native-gesture-handler": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.16.2.tgz", - "integrity": "sha512-vGFlrDKlmyI+BT+FemqVxmvO7nqxU33cgXVsn6IKAFishvlG3oV2Ds67D5nPkHMea8T+s1IcuMm0bF8ntZtAyg==", + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.22.1.tgz", + "integrity": "sha512-E0C9D+Ia2UZYevoSV9rTKjhFWEVdR/3l4Z3TUoQrI/wewgzDlmJOrYvGW5aMlPUuQF2vHQOdFfAWhVEqFu4tWw==", + "license": "MIT", "dependencies": { "@egjs/hammerjs": "^2.0.17", "hoist-non-react-statics": "^3.3.0", - "invariant": "^2.2.4", - "lodash": "^4.17.21", - "prop-types": "^15.7.2" + "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", @@ -16870,6 +14647,7 @@ "version": "1.11.0", "resolved": "https://registry.npmjs.org/react-native-get-random-values/-/react-native-get-random-values-1.11.0.tgz", "integrity": "sha512-4BTbDbRmS7iPdhYLRcz3PGFIpFJBwNZg9g42iwa2P6FOv9vZj/xJc678RZXnLNZzd0qd7Q3CCF6Yd+CU2eoXKQ==", + "license": "MIT", "dependencies": { "fast-base64-decode": "^1.0.0" }, @@ -16881,6 +14659,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/react-native-helmet-async/-/react-native-helmet-async-2.0.4.tgz", "integrity": "sha512-m3CkXWss6B1dd6mCMleLpzDCJJGGaHOLQsUzZv8kAASJmMfmVT4d2fx375iXKTRWT25ThBfae3dECuX5cq/8hg==", + "license": "Apache-2.0", "dependencies": { "invariant": "^2.2.4", "react-fast-compare": "^3.2.2", @@ -16890,16 +14669,30 @@ "react": "^16.6.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-native-is-edge-to-edge": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.1.6.tgz", + "integrity": "sha512-1pHnFTlBahins6UAajXUqeCOHew9l9C2C8tErnpGC3IyLJzvxD+TpYAixnCbrVS52f7+NvMttbiSI290XfwN0w==", + "license": "MIT", + "peerDependencies": { + "react": ">=18.2.0", + "react-native": ">=0.73.0" + } + }, "node_modules/react-native-reanimated": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.10.1.tgz", - "integrity": "sha512-sfxg6vYphrDc/g4jf/7iJ7NRi+26z2+BszPmvmk0Vnrz6FL7HYljJqTf531F1x6tFmsf+FEAmuCtTUIXFLVo9w==", + "version": "3.16.7", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.16.7.tgz", + "integrity": "sha512-qoUUQOwE1pHlmQ9cXTJ2MX9FQ9eHllopCLiWOkDkp6CER95ZWeXhJCP4cSm6AD4jigL5jHcZf/SkWrg8ttZUsw==", + "license": "MIT", "dependencies": { "@babel/plugin-transform-arrow-functions": "^7.0.0-0", + "@babel/plugin-transform-class-properties": "^7.0.0-0", + "@babel/plugin-transform-classes": "^7.0.0-0", "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", "@babel/plugin-transform-optional-chaining": "^7.0.0-0", "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", "@babel/plugin-transform-template-literals": "^7.0.0-0", + "@babel/plugin-transform-unicode-regex": "^7.0.0-0", "@babel/preset-typescript": "^7.16.7", "convert-source-map": "^2.0.0", "invariant": "^2.2.4" @@ -16913,12 +14706,14 @@ "node_modules/react-native-root-siblings": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/react-native-root-siblings/-/react-native-root-siblings-4.1.1.tgz", - "integrity": "sha512-sdmLElNs5PDWqmZmj4/aNH4anyxreaPm61c4ZkRiR8SO/GzLg6KjAbb0e17RmMdnBdD0AIQbS38h/l55YKN4ZA==" + "integrity": "sha512-sdmLElNs5PDWqmZmj4/aNH4anyxreaPm61c4ZkRiR8SO/GzLg6KjAbb0e17RmMdnBdD0AIQbS38h/l55YKN4ZA==", + "license": "MIT" }, "node_modules/react-native-root-toast": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/react-native-root-toast/-/react-native-root-toast-3.6.0.tgz", "integrity": "sha512-HgZ2OS84ZbInJGuejGghBCPmBwoSBuJFO/bAJoR/NS6rCl9eiXSRegIG/gLEo7lH9BijeA63is1noUqR8Y1DpQ==", + "license": "MIT", "dependencies": { "deprecated-react-native-prop-types": "^2.3.0", "prop-types": "^15.5.10", @@ -16929,18 +14724,20 @@ } }, "node_modules/react-native-safe-area-context": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.10.1.tgz", - "integrity": "sha512-w8tCuowDorUkPoWPXmhqosovBr33YsukkwYCDERZFHAxIkx6qBadYxfeoaJ91nCQKjkNzGrK5qhoNOeSIcYSpA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.1.0.tgz", + "integrity": "sha512-Y4vyJX+0HPJUQNVeIJTj2/UOjbSJcB09OEwirAWDrOZ67Lz5p43AmjxSy8nnZft1rMzoh3rcPuonB6jJyHTfCw==", + "license": "MIT", "peerDependencies": { "react": "*", "react-native": "*" } }, "node_modules/react-native-screens": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.31.1.tgz", - "integrity": "sha512-8fRW362pfZ9y4rS8KY5P3DFScrmwo/vu1RrRMMx0PNHbeC9TLq0Kw1ubD83591yz64gLNHFLTVkTJmWeWCXKtQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.5.0.tgz", + "integrity": "sha512-yBWeN5EHNeew9f0ia9VE7JSlUQzCZEwkb87r7A7/Sg41OJHuRKHNRhmdCOiMBUqwwQi3F+b4NZGywjeM/gWMyg==", + "license": "MIT", "dependencies": { "react-freeze": "^1.0.0", "warn-once": "^0.1.0" @@ -16954,6 +14751,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-native-toast-message/-/react-native-toast-message-2.2.1.tgz", "integrity": "sha512-iXFMnlxPcgKKs4bZOIl06W16m6KXMh/bAYpWLyVXlISSCdcL2+FX5WPpRP3TGQeM/u9q+j5ex48DDY+72en+Sw==", + "license": "MIT", "peerDependencies": { "react": "*", "react-native": "*" @@ -16963,6 +14761,7 @@ "version": "0.19.13", "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.19.13.tgz", "integrity": "sha512-etv3bN8rJglrRCp/uL4p7l8QvUNUC++QwDbdZ8CB7BvZiMvsxfFIRM1j04vxNldG3uo2puRd6OSWR3ibtmc29A==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.6", "@react-native/normalize-colors": "^0.74.1", @@ -16978,57 +14777,34 @@ "react-dom": "^18.0.0" } }, + "node_modules/react-native-web/node_modules/@react-native/normalize-colors": { + "version": "0.74.88", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.88.tgz", + "integrity": "sha512-He5oTwPBxvXrxJ91dZzpxR7P+VYmc9IkJfhuH8zUiU50ckrt+xWNjtVugPdUv4LuVjmZ36Vk2EX8bl1gVn2dVA==", + "license": "MIT" + }, "node_modules/react-native-web/node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" }, - "node_modules/react-native/node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "node_modules/react-native/node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.23.1.tgz", + "integrity": "sha512-uNLD0tk2tLUjGFdmCk+u/3FEw2o+BAwW4g+z2QVlxJrzZYOOPADroEcNtTPt5lNiScctaUmnsTkVEnOwZUOLhA==", + "license": "MIT", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" + "hermes-parser": "0.23.1" } }, - "node_modules/react-native/node_modules/@react-native/codegen": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.84.tgz", - "integrity": "sha512-0hXlnu9i0o8v+gXKQi+x6T471L85kCDwW4WrJiYAeOheWrQdNNW6rC3g8+LL7HXAf7QcHGU/8/d57iYfdVK2BQ==", - "dependencies": { - "@babel/parser": "^7.20.0", - "glob": "^7.1.1", - "hermes-parser": "0.19.1", - "invariant": "^2.2.4", - "jscodeshift": "^0.14.0", - "mkdirp": "^0.5.1", - "nullthrows": "^1.1.1" - }, + "node_modules/react-native/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", "engines": { "node": ">=18" - }, - "peerDependencies": { - "@babel/preset-env": "^7.1.6" - } - }, - "node_modules/react-native/node_modules/@react-native/normalize-colors": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.84.tgz", - "integrity": "sha512-Y5W6x8cC5RuakUcTVUFNAIhUZ/tYpuqHZlRBoAuakrTwVuoNHXfQki8lj1KsYU7rW6e3VWgdEx33AfOQpdNp6A==" - }, - "node_modules/react-native/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", - "dependencies": { - "@types/yargs-parser": "*" } }, "node_modules/react-native/node_modules/glob": { @@ -17036,6 +14812,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -17051,50 +14828,47 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/react-native/node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/react-native/node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "license": "MIT", "dependencies": { "asap": "~2.0.6" } }, - "node_modules/react-native/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, "node_modules/react-native/node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" }, "node_modules/react-native/node_modules/scheduler": { "version": "0.24.0-canary-efb381bbf-20230505", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz", "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } }, + "node_modules/react-native/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/react-native/node_modules/ws": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", "dependencies": { "async-limiter": "~1.0.0" } @@ -17103,6 +14877,7 @@ "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17111,6 +14886,8 @@ "version": "16.15.0", "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", + "dev": true, + "license": "MIT", "dependencies": { "object-assign": "^4.1.1", "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" @@ -17120,34 +14897,25 @@ } }, "node_modules/react-test-renderer": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-19.0.0.tgz", - "integrity": "sha512-oX5u9rOQlHzqrE/64CNr0HB0uWxkCQmZNSfozlYvwE71TLVgeZxVf0IjouGEr1v7r1kcDifdAJBeOhdhxsG/DA==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.3.1.tgz", + "integrity": "sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==", "dev": true, + "license": "MIT", "dependencies": { - "react-is": "^19.0.0", - "scheduler": "^0.25.0" + "react-is": "^18.3.1", + "react-shallow-renderer": "^16.15.0", + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^19.0.0" + "react": "^18.3.1" } }, - "node_modules/react-test-renderer/node_modules/react-is": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", - "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", - "dev": true - }, - "node_modules/react-test-renderer/node_modules/scheduler": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", - "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", - "dev": true - }, "node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -17161,22 +14929,26 @@ "node_modules/readable-stream/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/readline": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz", - "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==" + "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==", + "license": "BSD" }, "node_modules/recast": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz", "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==", + "license": "MIT", "dependencies": { "ast-types": "0.15.2", "esprima": "~4.0.0", @@ -17191,6 +14963,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -17199,6 +14972,8 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -17219,12 +14994,14 @@ "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -17235,25 +15012,30 @@ "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" }, "node_modules/regenerator-transform": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "peer": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", "set-function-name": "^2.0.2" }, "engines": { @@ -17264,14 +15046,15 @@ } }, "node_modules/regexpu-core": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", - "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "license": "MIT", "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.2.0", "regjsgen": "^0.8.0", - "regjsparser": "^0.11.0", + "regjsparser": "^0.12.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -17282,28 +15065,44 @@ "node_modules/regjsgen": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==" + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", - "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "license": "BSD-2-Clause", "dependencies": { "jsesc": "~3.0.2" }, "bin": { - "regjsparser": "bin/parser" + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" } }, "node_modules/remove-trailing-slash": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", - "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==" + "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==", + "license": "MIT" }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17312,6 +15111,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17320,6 +15120,7 @@ "version": "7.4.0", "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz", "integrity": "sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==", + "license": "MIT", "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", @@ -17329,11 +15130,6 @@ "node": ">=8.6.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, "node_modules/requireg": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", @@ -17351,6 +15147,7 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "license": "MIT", "dependencies": { "path-parse": "^1.0.5" } @@ -17359,20 +15156,25 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -17382,6 +15184,7 @@ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -17393,6 +15196,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -17402,6 +15206,7 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -17409,12 +15214,14 @@ "node_modules/resolve-workspace-root": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve-workspace-root/-/resolve-workspace-root-2.0.0.tgz", - "integrity": "sha512-IsaBUZETJD5WsI11Wt8PKHwaIe45or6pwNc8yflvLJ4DWtImK9kuLoH5kUva/2Mmx/RdIyr4aONNSa2v9LTJsw==" + "integrity": "sha512-IsaBUZETJD5WsI11Wt8PKHwaIe45or6pwNc8yflvLJ4DWtImK9kuLoH5kUva/2Mmx/RdIyr4aONNSa2v9LTJsw==", + "license": "MIT" }, "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "license": "MIT", "engines": { "node": ">=10" } @@ -17423,6 +15230,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "license": "MIT", "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -17434,12 +15242,14 @@ "node_modules/restore-cursor/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -17450,6 +15260,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -17465,6 +15276,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -17498,6 +15310,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -17506,6 +15319,8 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -17537,12 +15352,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" @@ -17558,6 +15376,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -17574,18 +15393,21 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, + "license": "ISC", "dependencies": { "xmlchars": "^2.2.0" }, @@ -17597,6 +15419,7 @@ "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } @@ -17605,6 +15428,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -17623,6 +15447,7 @@ "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -17638,6 +15463,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -17648,12 +15474,14 @@ "node_modules/schema-utils/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" }, "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" @@ -17666,19 +15494,21 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.1.tgz", + "integrity": "sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", @@ -17697,6 +15527,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -17704,23 +15535,23 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, + "node_modules/send/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.8" } }, "node_modules/send/node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -17732,6 +15563,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -17740,6 +15572,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17749,6 +15582,7 @@ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { "randombytes": "^2.1.0" @@ -17758,6 +15592,7 @@ "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", @@ -17772,6 +15607,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -17779,31 +15615,23 @@ "node_modules/serve-static/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/serve-static/node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/serve-static/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/serve-static/node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -17815,6 +15643,7 @@ "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -17838,6 +15667,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -17846,6 +15676,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -17854,22 +15685,19 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==", - "dev": true - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + "license": "MIT" }, "node_modules/set-cookie-parser": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==" + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -17886,6 +15714,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -17900,6 +15730,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", @@ -17912,17 +15744,20 @@ "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -17933,12 +15768,14 @@ "node_modules/shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -17950,14 +15787,19 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -17965,12 +15807,15 @@ "node_modules/shimmer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", + "license": "BSD-2-Clause" }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", @@ -17989,6 +15834,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" @@ -18004,6 +15851,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -18021,6 +15870,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -18039,6 +15890,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -18050,6 +15902,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", + "license": "MIT", "dependencies": { "bplist-creator": "0.1.0", "bplist-parser": "0.3.1", @@ -18060,6 +15913,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", + "license": "MIT", "dependencies": { "stream-buffers": "2.2.x" } @@ -18068,6 +15922,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", + "license": "MIT", "dependencies": { "big-integer": "1.6.x" }, @@ -18079,6 +15934,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } @@ -18086,62 +15942,29 @@ "node_modules/simple-swizzle/node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, "node_modules/slugify": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -18150,6 +15973,7 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } @@ -18158,6 +15982,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -18166,6 +15991,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -18175,6 +16001,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -18183,6 +16010,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "license": "MIT", "dependencies": { "through": "2" }, @@ -18194,6 +16022,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -18201,12 +16030,14 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" }, "node_modules/ssri": { "version": "10.0.6", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -18214,11 +16045,19 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/stable-hash": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.4.tgz", + "integrity": "sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==", + "dev": true, + "license": "MIT" + }, "node_modules/stack-generator": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", "dev": true, + "license": "MIT", "dependencies": { "stackframe": "^1.3.4" } @@ -18227,6 +16066,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -18238,6 +16078,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "license": "MIT", "engines": { "node": ">=8" } @@ -18245,13 +16086,15 @@ "node_modules/stackframe": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "license": "MIT" }, "node_modules/stacktrace-gps": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", "dev": true, + "license": "MIT", "dependencies": { "source-map": "0.5.6", "stackframe": "^1.3.4" @@ -18262,6 +16105,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -18271,6 +16115,7 @@ "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", "dev": true, + "license": "MIT", "dependencies": { "error-stack-parser": "^2.0.6", "stack-generator": "^2.0.5", @@ -18281,6 +16126,7 @@ "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "license": "MIT", "dependencies": { "type-fest": "^0.7.1" }, @@ -18292,6 +16138,7 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } @@ -18300,6 +16147,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -18308,6 +16156,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==", + "license": "Unlicense", "engines": { "node": ">= 0.10.0" } @@ -18315,12 +16164,14 @@ "node_modules/stream-slice": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz", - "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==" + "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==", + "license": "MIT" }, "node_modules/strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -18329,6 +16180,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -18336,13 +16188,15 @@ "node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -18351,10 +16205,24 @@ "node": ">=10" } }, + "node_modules/string-length/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -18372,6 +16240,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -18384,39 +16253,19 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/string.prototype.matchall": { @@ -18424,6 +16273,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -18451,6 +16301,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" @@ -18460,6 +16311,8 @@ "version": "1.2.10", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -18480,6 +16333,8 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -18497,6 +16352,8 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -18510,14 +16367,18 @@ } }, "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/strip-ansi-cjs": { @@ -18525,6 +16386,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -18532,11 +16394,24 @@ "node": ">=8" } }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -18545,6 +16420,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -18553,6 +16429,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -18562,6 +16439,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -18569,25 +16447,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" - }, "node_modules/structured-headers": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", - "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==" + "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==", + "license": "MIT" }, "node_modules/styleq": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/styleq/-/styleq-0.1.3.tgz", - "integrity": "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==" + "integrity": "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==", + "license": "MIT" }, "node_modules/sucrase": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -18609,6 +16485,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -18616,12 +16493,15 @@ "node_modules/sudo-prompt": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", - "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==" + "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT" }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -18633,6 +16513,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -18645,6 +16526,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -18656,13 +16538,15 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/synckit": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", "dev": true, + "license": "MIT", "dependencies": { "@pkgr/core": "^0.1.0", "tslib": "^2.6.2" @@ -18679,6 +16563,7 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -18687,6 +16572,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -18703,6 +16589,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -18714,6 +16601,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -18725,6 +16613,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", "engines": { "node": ">=8" } @@ -18733,6 +16622,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -18743,12 +16633,14 @@ "node_modules/tar/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/temp": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", + "license": "MIT", "dependencies": { "rimraf": "~2.6.2" }, @@ -18760,6 +16652,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -18769,6 +16662,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -18789,6 +16683,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -18800,6 +16695,7 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz", "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==", + "license": "MIT", "dependencies": { "del": "^6.0.0", "is-stream": "^2.0.0", @@ -18818,6 +16714,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -18829,6 +16726,7 @@ "version": "0.16.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -18840,6 +16738,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" @@ -18852,9 +16751,10 @@ } }, "node_modules/terser": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", - "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "version": "5.37.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", + "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -18873,6 +16773,7 @@ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", @@ -18908,6 +16809,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/node": "*", @@ -18923,6 +16825,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -18937,13 +16840,14 @@ "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -18958,7 +16862,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -18974,15 +16878,11 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } @@ -18991,6 +16891,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -19001,17 +16902,20 @@ "node_modules/throat": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "license": "MIT" }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -19021,6 +16925,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -19031,12 +16936,14 @@ "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "license": "BSD-3-Clause" }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -19048,6 +16955,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } @@ -19057,6 +16965,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -19072,6 +16981,7 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -19081,6 +16991,7 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.1.1" }, @@ -19088,35 +16999,12 @@ "node": ">=12" } }, - "node_modules/traverse": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.10.tgz", - "integrity": "sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==", - "dependencies": { - "gopd": "^1.0.1", - "typedarray.prototype.slice": "^1.0.3", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ts-api-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18.12" }, @@ -19127,13 +17015,15 @@ "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" }, "node_modules/ts-poet": { "version": "6.9.0", "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.9.0.tgz", "integrity": "sha512-roe6W6MeZmCjRmppyfOURklO5tQFQ6Sg7swURKkwYJvV7dbGCrK28um5+51iW3twdPRKtwarqFAVMU6G1mvnuQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "dprint-node": "^1.0.8" } @@ -19143,6 +17033,7 @@ "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.181.1.tgz", "integrity": "sha512-lNmd/KEgqWtwDG9mIM3EpcxBx+URRVHkDP/EEJBgQJaQwmZFTk6VjHg56HNQswd114yXGfF+8pKQvJ2iH9KfWw==", "dev": true, + "license": "ISC", "dependencies": { "case-anything": "^2.1.13", "protobufjs": "^7.2.4", @@ -19158,6 +17049,7 @@ "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.16.0.tgz", "integrity": "sha512-3yKuzMLpltdpcyQji1PJZRfoo4OJjNieKTYkQY8pF7xGKsYz/RHe3aEe4KiRxcinoBmnEhmuI+yJTxLb922ULA==", "dev": true, + "license": "ISC", "dependencies": { "long": "^5.2.3", "protobufjs": "^7.2.4" @@ -19168,6 +17060,7 @@ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -19180,6 +17073,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -19192,6 +17086,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -19199,18 +17094,21 @@ "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/turbo-stream": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==" + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -19222,6 +17120,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "license": "MIT", "engines": { "node": ">=4" } @@ -19230,6 +17129,7 @@ "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -19241,6 +17141,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -19254,6 +17156,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -19272,6 +17176,8 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -19292,6 +17198,8 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -19307,25 +17215,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typedarray.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz", - "integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-errors": "^1.3.0", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-offset": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typescript": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", @@ -19341,9 +17230,9 @@ } }, "node_modules/ua-parser-js": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz", - "integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==", + "version": "1.0.40", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz", + "integrity": "sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==", "funding": [ { "type": "opencollective", @@ -19358,6 +17247,7 @@ "url": "https://github.com/sponsors/faisalman" } ], + "license": "MIT", "bin": { "ua-parser-js": "script/cli.js" }, @@ -19369,6 +17259,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -19383,22 +17275,25 @@ } }, "node_modules/undici": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.0.tgz", - "integrity": "sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==", + "version": "6.21.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz", + "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==", + "license": "MIT", "engines": { "node": ">=18.17" } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -19407,6 +17302,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -19419,6 +17315,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -19427,6 +17324,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "license": "MIT", "engines": { "node": ">=4" } @@ -19435,6 +17333,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "license": "ISC", "dependencies": { "unique-slug": "^4.0.0" }, @@ -19446,6 +17345,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" }, @@ -19457,6 +17357,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "license": "MIT", "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -19468,6 +17369,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -19476,14 +17378,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "funding": [ { "type": "opencollective", @@ -19498,9 +17401,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -19514,20 +17418,17 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/url-join": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", - "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==" - }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, + "license": "MIT", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -19537,22 +17438,25 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.3.tgz", "integrity": "sha512-7vI3fBuyRcP91pazVboc4qu+6ZqM8izPWX9k7cRnT8hbD5svslcknsh3S9BUhaK11OmgTV4oWZZVSeQAiV53SQ==", + "license": "MIT", "peerDependencies": { "react": ">=16.8" } }, "node_modules/use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "license": "MIT", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -19564,26 +17468,29 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", + "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/v8-to-istanbul": { @@ -19591,6 +17498,7 @@ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -19600,23 +17508,20 @@ "node": ">=10.12.0" } }, - "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" - }, "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dependencies": { - "builtins": "^1.0.3" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -19624,13 +17529,15 @@ "node_modules/vlq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", - "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", + "license": "MIT" }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "dev": true, + "license": "MIT", "dependencies": { "xml-name-validator": "^4.0.0" }, @@ -19642,6 +17549,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } @@ -19649,13 +17557,15 @@ "node_modules/warn-once": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz", - "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==" + "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==", + "license": "MIT" }, "node_modules/watchpack": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -19669,6 +17579,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } @@ -19677,6 +17588,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", + "license": "MIT", "dependencies": { "util": "^0.12.3" }, @@ -19688,6 +17600,7 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -19697,6 +17610,7 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } @@ -19706,6 +17620,7 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", @@ -19753,6 +17668,7 @@ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=10.13.0" @@ -19763,6 +17679,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "esrecurse": "^4.3.0", @@ -19777,6 +17694,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "engines": { "node": ">=4.0" @@ -19787,6 +17705,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -19806,6 +17725,7 @@ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, + "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, @@ -19816,13 +17736,15 @@ "node_modules/whatwg-fetch": { "version": "3.6.20", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" }, "node_modules/whatwg-mimetype": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } @@ -19832,6 +17754,7 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -19844,6 +17767,7 @@ "version": "8.0.0-3", "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz", "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==", + "license": "MIT", "dependencies": { "buffer": "^5.4.3", "punycode": "^2.1.1", @@ -19857,6 +17781,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "license": "BSD-2-Clause", "engines": { "node": ">=8" } @@ -19865,6 +17790,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -19879,6 +17805,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -19897,6 +17825,8 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -19923,6 +17853,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -19936,15 +17868,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" - }, "node_modules/which-typed-array": { "version": "1.1.18", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -19961,15 +17889,17 @@ } }, "node_modules/wonka": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", - "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==" + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.4.tgz", + "integrity": "sha512-CjpbqNtBGNAeyNS/9W6q3kSkKE52+FjIj7AkFlLr11s/VWGUu6a2CdYSdGxocIhIVjaW/zchesBQUKPVU69Cqg==", + "license": "MIT" }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -19978,6 +17908,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -19995,6 +17926,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -20010,20 +17942,14 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -20033,23 +17959,29 @@ "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { "node": ">=8" } }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, "node_modules/wrap-ansi/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -20059,15 +17991,29 @@ "node": ">=8" } }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "license": "ISC", "dependencies": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -20077,12 +18023,14 @@ "node_modules/write-file-atomic/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -20103,6 +18051,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "license": "Apache-2.0", "dependencies": { "simple-plist": "^1.1.0", "uuid": "^7.0.3" @@ -20115,6 +18064,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -20124,6 +18074,7 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12" } @@ -20132,6 +18083,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz", "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==", + "license": "MIT", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -20144,6 +18096,7 @@ "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", "engines": { "node": ">=4.0" } @@ -20152,6 +18105,7 @@ "version": "14.0.0", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==", + "license": "MIT", "engines": { "node": ">=8.0" } @@ -20160,12 +18114,14 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", "engines": { "node": ">=0.4" } @@ -20174,6 +18130,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } @@ -20181,23 +18138,14 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yaml": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", - "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -20215,6 +18163,7 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -20222,20 +18171,14 @@ "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -20245,35 +18188,29 @@ "node": ">=8" } }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zod-validation-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-2.1.0.tgz", - "integrity": "sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "zod": "^3.18.0" - } } } } diff --git a/src/react-native-app/package.json b/src/react-native-app/package.json index 8312bc7ced..8911527b0e 100644 --- a/src/react-native-app/package.json +++ b/src/react-native-app/package.json @@ -15,52 +15,52 @@ "preset": "jest-expo" }, "dependencies": { - "@expo/metro-config": "^0.19.4", + "@expo/metro-config": "^0.19.9", "@expo/vector-icons": "^14.0.0", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/core": "^1.28.0", - "@opentelemetry/exporter-trace-otlp-http": "^0.52.0", - "@opentelemetry/instrumentation": "^0.55.0", - "@opentelemetry/instrumentation-fetch": "^0.55.0", - "@opentelemetry/instrumentation-xml-http-request": "^0.55.0", - "@opentelemetry/resources": "^1.28.0", - "@opentelemetry/sdk-trace-base": "^1.28.0", - "@opentelemetry/sdk-trace-web": "^1.28.0", + "@opentelemetry/core": "^1.30.1", + "@opentelemetry/exporter-trace-otlp-http": "^0.57.1", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/instrumentation-fetch": "^0.57.1", + "@opentelemetry/instrumentation-xml-http-request": "^0.57.1", + "@opentelemetry/resources": "^1.30.1", + "@opentelemetry/sdk-trace-base": "^1.30.1", + "@opentelemetry/sdk-trace-web": "^1.30.1", "@opentelemetry/semantic-conventions": "^1.28.0", "@react-native-async-storage/async-storage": "^2.0.0", - "@react-navigation/native": "^6.0.2", - "@tanstack/react-query": "4.36.1", + "@react-navigation/native": "^7.0.14", + "@tanstack/react-query": "5.64.1", "@types/react-native-get-random-values": "^1.8.2", "@types/uuid": "^10.0.0", - "expo": "~51.0.14", - "expo-constants": "~16.0.2", - "expo-font": "~12.0.7", - "expo-linking": "~6.3.1", - "expo-router": "~3.5.16", - "expo-splash-screen": "~0.27.5", - "expo-status-bar": "~1.12.1", - "expo-system-ui": "~3.0.6", - "expo-web-browser": "~13.0.3", - "react": "18.2.0", - "react-dom": "18.2.0", - "react-hook-form": "^7.53.2", - "react-native": "0.74.2", - "react-native-device-info": "^11.1.0", - "react-native-gesture-handler": "~2.16.1", + "expo": "~52.0.25", + "expo-constants": "~17.0.4", + "expo-font": "~13.0.3", + "expo-linking": "~7.0.4", + "expo-router": "~4.0.16", + "expo-splash-screen": "~0.29.20", + "expo-status-bar": "~2.0.1", + "expo-system-ui": "~4.0.7", + "expo-web-browser": "~14.0.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-hook-form": "^7.54.2", + "react-native": "0.76.6", + "react-native-device-info": "^14.0.2", + "react-native-gesture-handler": "~2.22.0", "react-native-get-random-values": "^1.11.0", - "react-native-reanimated": "~3.10.1", + "react-native-reanimated": "~3.16.7", "react-native-root-toast": "^3.6.0", - "react-native-safe-area-context": "4.10.1", - "react-native-screens": "3.31.1", + "react-native-safe-area-context": "5.1.0", + "react-native-screens": "4.5.0", "react-native-toast-message": "^2.2.1", "react-native-web": "~0.19.10", - "uuid": "^10.0.0" + "uuid": "^11.0.5" }, "devDependencies": { "@babel/core": "^7.20.0", "@types/jest": "^29.5.12", - "@types/react": "~18.2.45", - "@types/react-test-renderer": "^19.0.0", + "@types/react": "^18.2.0", + "@types/react-test-renderer": "^18.2.0", "eslint": "^9.18.0", "eslint-config-expo": "~8.0.1", "eslint-config-prettier": "^10.0.1", @@ -68,7 +68,7 @@ "jest": "^29.2.1", "jest-expo": "~52.0.3", "prettier": "^3.4.2", - "react-test-renderer": "19.0.0", + "react-test-renderer": "^18.2.0", "ts-proto": "1.181.1", "typescript": "~5.7.3" }, From a2285cd21ade03ea0ec9edd6552e120d8ee00b02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 09:13:17 +0100 Subject: [PATCH 078/178] build(deps): bump the go-production-dependencies group across 2 directories with 3 updates (#1956) * build(deps): bump the go-production-dependencies group across 2 directories with 3 updates Bumps the go-production-dependencies group with 3 updates in the /src/checkout directory: [github.com/open-feature/go-sdk](https://github.com/open-feature/go-sdk), [google.golang.org/grpc](https://github.com/grpc/grpc-go) and google.golang.org/protobuf. Bumps the go-production-dependencies group with 3 updates in the /src/product-catalog directory: [github.com/open-feature/go-sdk](https://github.com/open-feature/go-sdk), [google.golang.org/grpc](https://github.com/grpc/grpc-go) and google.golang.org/protobuf. Updates `github.com/open-feature/go-sdk` from 1.14.0 to 1.14.1 - [Release notes](https://github.com/open-feature/go-sdk/releases) - [Changelog](https://github.com/open-feature/go-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/go-sdk/compare/v1.14.0...v1.14.1) Updates `google.golang.org/grpc` from 1.69.4 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.69.4...v1.70.0) Updates `google.golang.org/protobuf` from 1.36.3 to 1.36.4 Updates `github.com/open-feature/go-sdk` from 1.14.0 to 1.14.1 - [Release notes](https://github.com/open-feature/go-sdk/releases) - [Changelog](https://github.com/open-feature/go-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/go-sdk/compare/v1.14.0...v1.14.1) Updates `google.golang.org/grpc` from 1.69.4 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.69.4...v1.70.0) Updates `google.golang.org/protobuf` from 1.36.3 to 1.36.4 --- updated-dependencies: - dependency-name: github.com/open-feature/go-sdk dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: github.com/open-feature/go-sdk dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] * chore: update protobuf Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/checkout/genproto/oteldemo/demo.pb.go | 14 +++++++------- src/checkout/go.mod | 6 +++--- src/checkout/go.sum | 12 ++++++------ src/product-catalog/genproto/oteldemo/demo.pb.go | 14 +++++++------- src/product-catalog/go.mod | 6 +++--- src/product-catalog/go.sum | 12 ++++++------ 6 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/checkout/genproto/oteldemo/demo.pb.go b/src/checkout/genproto/oteldemo/demo.pb.go index 2079a889aa..2fce7ef1bf 100644 --- a/src/checkout/genproto/oteldemo/demo.pb.go +++ b/src/checkout/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.3 +// protoc-gen-go v1.36.4 // protoc v4.24.4 // source: demo.proto @@ -25,6 +25,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -2217,7 +2218,7 @@ func (*DeleteFlagResponse) Descriptor() ([]byte, []int) { var File_demo_proto protoreflect.FileDescriptor -var file_demo_proto_rawDesc = []byte{ +var file_demo_proto_rawDesc = string([]byte{ 0x0a, 0x0a, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x22, 0x45, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, @@ -2540,16 +2541,16 @@ var file_demo_proto_rawDesc = []byte{ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +}) var ( file_demo_proto_rawDescOnce sync.Once - file_demo_proto_rawDescData = file_demo_proto_rawDesc + file_demo_proto_rawDescData []byte ) func file_demo_proto_rawDescGZIP() []byte { file_demo_proto_rawDescOnce.Do(func() { - file_demo_proto_rawDescData = protoimpl.X.CompressGZIP(file_demo_proto_rawDescData) + file_demo_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_demo_proto_rawDesc), len(file_demo_proto_rawDesc))) }) return file_demo_proto_rawDescData } @@ -2683,7 +2684,7 @@ func file_demo_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_demo_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_demo_proto_rawDesc), len(file_demo_proto_rawDesc)), NumEnums: 0, NumMessages: 43, NumExtensions: 0, @@ -2694,7 +2695,6 @@ func file_demo_proto_init() { MessageInfos: file_demo_proto_msgTypes, }.Build() File_demo_proto = out.File - file_demo_proto_rawDesc = nil file_demo_proto_goTypes = nil file_demo_proto_depIdxs = nil } diff --git a/src/checkout/go.mod b/src/checkout/go.mod index 87ff40fb0e..4b6f849766 100644 --- a/src/checkout/go.mod +++ b/src/checkout/go.mod @@ -7,7 +7,7 @@ toolchain go1.22.9 require ( github.com/IBM/sarama v1.45.0 github.com/google/uuid v1.6.0 - github.com/open-feature/go-sdk v1.14.0 + github.com/open-feature/go-sdk v1.14.1 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 @@ -20,9 +20,9 @@ require ( go.opentelemetry.io/otel/sdk v1.34.0 go.opentelemetry.io/otel/sdk/metric v1.34.0 go.opentelemetry.io/otel/trace v1.34.0 - google.golang.org/grpc v1.69.4 + google.golang.org/grpc v1.70.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.36.3 + google.golang.org/protobuf v1.36.4 ) require ( diff --git a/src/checkout/go.sum b/src/checkout/go.sum index 281350c701..4b16198be1 100644 --- a/src/checkout/go.sum +++ b/src/checkout/go.sum @@ -112,8 +112,8 @@ github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 h1:5z github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= github.com/open-feature/flagd/core v0.10.4 h1:3MVpDG7KigvKG9HzrK2yYKwAY2VeUbaghPWmh1MNmKg= github.com/open-feature/flagd/core v0.10.4/go.mod h1:adkYaazGgCUg6z023rKBzSN8cN3Yamuh8h+3qxK7Yk8= -github.com/open-feature/go-sdk v1.14.0 h1:+B+Z94QS4HXPAn6OnaWWjMNAJkHlh6pIqW2Y1194yF8= -github.com/open-feature/go-sdk v1.14.0/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= +github.com/open-feature/go-sdk v1.14.1 h1:jcxjCIG5Up3XkgYwWN5Y/WWfc6XobOhqrIwjyDBsoQo= +github.com/open-feature/go-sdk v1.14.1/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 h1:Kzt0WkUtrLeFgJn2wkGhBVJZTOBVFGwXGuGs27uM9KQ= @@ -261,12 +261,12 @@ google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f h1: google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:Ic02D47M+zbarjYYUlK57y316f2MoN0gjAwI3f2S95o= google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI= google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50= -google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= -google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ= +google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU= -google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM= +google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/src/product-catalog/genproto/oteldemo/demo.pb.go b/src/product-catalog/genproto/oteldemo/demo.pb.go index 2079a889aa..2fce7ef1bf 100644 --- a/src/product-catalog/genproto/oteldemo/demo.pb.go +++ b/src/product-catalog/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.3 +// protoc-gen-go v1.36.4 // protoc v4.24.4 // source: demo.proto @@ -25,6 +25,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -2217,7 +2218,7 @@ func (*DeleteFlagResponse) Descriptor() ([]byte, []int) { var File_demo_proto protoreflect.FileDescriptor -var file_demo_proto_rawDesc = []byte{ +var file_demo_proto_rawDesc = string([]byte{ 0x0a, 0x0a, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x22, 0x45, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, @@ -2540,16 +2541,16 @@ var file_demo_proto_rawDesc = []byte{ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6f, 0x74, 0x65, 0x6c, 0x64, 0x65, 0x6d, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +}) var ( file_demo_proto_rawDescOnce sync.Once - file_demo_proto_rawDescData = file_demo_proto_rawDesc + file_demo_proto_rawDescData []byte ) func file_demo_proto_rawDescGZIP() []byte { file_demo_proto_rawDescOnce.Do(func() { - file_demo_proto_rawDescData = protoimpl.X.CompressGZIP(file_demo_proto_rawDescData) + file_demo_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_demo_proto_rawDesc), len(file_demo_proto_rawDesc))) }) return file_demo_proto_rawDescData } @@ -2683,7 +2684,7 @@ func file_demo_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_demo_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_demo_proto_rawDesc), len(file_demo_proto_rawDesc)), NumEnums: 0, NumMessages: 43, NumExtensions: 0, @@ -2694,7 +2695,6 @@ func file_demo_proto_init() { MessageInfos: file_demo_proto_msgTypes, }.Build() File_demo_proto = out.File - file_demo_proto_rawDesc = nil file_demo_proto_goTypes = nil file_demo_proto_depIdxs = nil } diff --git a/src/product-catalog/go.mod b/src/product-catalog/go.mod index 3f04e915bf..9df73a2330 100644 --- a/src/product-catalog/go.mod +++ b/src/product-catalog/go.mod @@ -5,7 +5,7 @@ go 1.22.7 toolchain go1.22.9 require ( - github.com/open-feature/go-sdk v1.14.0 + github.com/open-feature/go-sdk v1.14.1 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 github.com/sirupsen/logrus v1.9.3 @@ -17,9 +17,9 @@ require ( go.opentelemetry.io/otel/sdk v1.34.0 go.opentelemetry.io/otel/sdk/metric v1.34.0 go.opentelemetry.io/otel/trace v1.34.0 - google.golang.org/grpc v1.69.4 + google.golang.org/grpc v1.70.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.36.3 + google.golang.org/protobuf v1.36.4 ) require ( diff --git a/src/product-catalog/go.sum b/src/product-catalog/go.sum index 2324ed6b0a..1ba7ca1229 100644 --- a/src/product-catalog/go.sum +++ b/src/product-catalog/go.sum @@ -74,8 +74,8 @@ github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 h1:5z github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= github.com/open-feature/flagd/core v0.10.4 h1:3MVpDG7KigvKG9HzrK2yYKwAY2VeUbaghPWmh1MNmKg= github.com/open-feature/flagd/core v0.10.4/go.mod h1:adkYaazGgCUg6z023rKBzSN8cN3Yamuh8h+3qxK7Yk8= -github.com/open-feature/go-sdk v1.14.0 h1:+B+Z94QS4HXPAn6OnaWWjMNAJkHlh6pIqW2Y1194yF8= -github.com/open-feature/go-sdk v1.14.0/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= +github.com/open-feature/go-sdk v1.14.1 h1:jcxjCIG5Up3XkgYwWN5Y/WWfc6XobOhqrIwjyDBsoQo= +github.com/open-feature/go-sdk v1.14.1/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 h1:Kzt0WkUtrLeFgJn2wkGhBVJZTOBVFGwXGuGs27uM9KQ= @@ -189,12 +189,12 @@ google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f h1: google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:Ic02D47M+zbarjYYUlK57y316f2MoN0gjAwI3f2S95o= google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI= google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50= -google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= -google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ= +google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU= -google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM= +google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 8809349d40fb9d9512c008b6c575bf8bf62c9c3a Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Tue, 28 Jan 2025 10:46:09 +0100 Subject: [PATCH 079/178] [chore] Remove docker from dependabot (#1962) --- .github/dependabot.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f3028b33ff..8adf1226fa 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -10,14 +10,6 @@ updates: dependency-type: "production" schedule: interval: "daily" - - package-ecosystem: "docker" - directories: - - "/src/**/*" - groups: - docker-production-dependencies: - dependency-type: "production" - schedule: - interval: "daily" - package-ecosystem: "gomod" directories: - "/src/**/*" From 75cfdc097f937d7bd4197bc9b0754b7b0e1d6057 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 10:51:21 +0100 Subject: [PATCH 080/178] build(deps): bump docker/build-push-action (#1950) Bumps the actions-production-dependencies group with 1 update in the / directory: [docker/build-push-action](https://github.com/docker/build-push-action). Updates `docker/build-push-action` from 6.12.0 to 6.13.0 - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v6.12.0...v6.13.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/component-build-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index cf9ad7eb28..798ce13024 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -189,7 +189,7 @@ jobs: max-parallelism = 2 - name: Matrix Build and push demo images if: steps.check_changes.outputs.skip == 'false' - uses: docker/build-push-action@v6.12.0 + uses: docker/build-push-action@v6.13.0 with: context: ${{ matrix.file_tag.context }} file: ${{ matrix.file_tag.file }} From 880f79c9c13bbeb4ba64ee877b70a677c49945b2 Mon Sep 17 00:00:00 2001 From: Sozhan Natarajan Date: Tue, 28 Jan 2025 20:21:50 +0530 Subject: [PATCH 081/178] Generate protobuf code for TypeScript service - Frontend (#1954) * Generate protobuf code for Typescript service - Frontend * additional changes for generating protobuf #1787 * Included generated files #1787 * Ignore copyright license for generated proto #1787 * Update MakeFile to clean working directory #1787 * Update Generated proto #1787 * chore: update CHANGELOG.md --- .gitignore | 2 - .licenserc.json | 1 + CHANGELOG.md | 2 + Makefile | 1 + docker-gen-proto.sh | 15 +- src/frontend/.prettierignore | 1 + src/frontend/Dockerfile | 7 +- src/frontend/genproto/Dockerfile | 14 + src/frontend/package.json | 4 +- src/frontend/protos/demo.ts | 4025 ++++++++++++++++++++++++++++++ src/frontend/tsconfig.json | 2 +- 11 files changed, 4063 insertions(+), 11 deletions(-) create mode 100644 src/frontend/genproto/Dockerfile create mode 100644 src/frontend/protos/demo.ts diff --git a/.gitignore b/.gitignore index 4a6df8a42e..efc40c8a1f 100644 --- a/.gitignore +++ b/.gitignore @@ -44,8 +44,6 @@ test/tracetesting/tracetesting-vars.yaml /src/accounting/src/protos/ /src/cart/src/protos/ /src/fraud-detection/src/main/proto -/src/frontend/pb/ -/src/frontend/protos/ /src/payment/demo.proto /src/shipping/proto/ /src/currency/proto diff --git a/.licenserc.json b/.licenserc.json index 5e9a7eaac5..7d8374c46b 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -52,6 +52,7 @@ "src/react-native-app/expo-env.d.ts", "src/recommendation/demo_pb2.py", "src/recommendation/demo_pb2_grpc.py", + "src/frontend/protos/demo.ts", "internal/tools/" ] } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index b9f65ad21b..7cdc4945da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -76,6 +76,8 @@ the release. ([#1923](https://github.com/open-telemetry/opentelemetry-demo/pull/1923)) * [chore] Add memory for frontend-proxy, kafka, grafana, opensearch ([#1931](https://github.com/open-telemetry/opentelemetry-demo/pull/1931)) +* [chore] Generate protobuf code for Typescript service - Frontend + ([#1954](https://github.com/open-telemetry/opentelemetry-demo/pull/1954)) ## 1.12.0 diff --git a/Makefile b/Makefile index 3f0eb3fd91..72e2bae46c 100644 --- a/Makefile +++ b/Makefile @@ -150,6 +150,7 @@ docker-generate-protobuf: clean: rm -rf ./src/{checkout,product-catalog}/genproto/oteldemo/ rm -rf ./src/recommendation/{demo_pb2,demo_pb2_grpc}.py + rm -rf ./src/frontend/protos/demo.ts .PHONY: check-clean-work-tree check-clean-work-tree: diff --git a/docker-gen-proto.sh b/docker-gen-proto.sh index 6b08921a6d..ed2e3032c5 100755 --- a/docker-gen-proto.sh +++ b/docker-gen-proto.sh @@ -30,6 +30,19 @@ gen_proto_python() { python -m grpc_tools.protoc -I /build/pb/ --python_out="./src/$1/" --grpc_python_out="./src/$1/" /build/pb/demo.proto } +gen_proto_ts() { + echo "Generating Typescript protobuf files for $1" + docker build -f "src/$1/genproto/Dockerfile" -t "$1-genproto" . + docker run --rm -e SERVICE=$1 -v $(pwd):/build "$1-genproto" /bin/sh -c ' + mkdir -p /build/src/$SERVICE/protos && \ + protoc -I /build/pb \ + --plugin=protoc-gen-ts_proto=/app/node_modules/.bin/protoc-gen-ts_proto \ + --ts_proto_opt=esModuleInterop=true \ + --ts_proto_out="/build/src/$SERVICE/protos" \ + --ts_proto_opt=outputServices=grpc-js \ + /build/pb/demo.proto' +} + if [ -z "$1" ]; then #gen_proto_dotnet accounting #gen_proto_java ad @@ -37,7 +50,7 @@ if [ -z "$1" ]; then gen_proto_go checkout gen_proto_cpp currency #gen_proto_ruby email - #gen_proto_ts frontend + gen_proto_ts frontend #gen_proto_js payment gen_proto_go product-catalog #gen_proto_php quote diff --git a/src/frontend/.prettierignore b/src/frontend/.prettierignore index 77b86ccf84..8eca8b360a 100644 --- a/src/frontend/.prettierignore +++ b/src/frontend/.prettierignore @@ -4,3 +4,4 @@ build dist .husky node_modules +protos/ diff --git a/src/frontend/Dockerfile b/src/frontend/Dockerfile index ae27d932b9..36f07f84aa 100644 --- a/src/frontend/Dockerfile +++ b/src/frontend/Dockerfile @@ -1,7 +1,6 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 - FROM node:20-alpine AS deps RUN apk add --no-cache libc6-compat @@ -11,18 +10,16 @@ COPY ./src/frontend/package*.json ./ RUN npm ci FROM node:20-alpine AS builder -RUN apk add --no-cache libc6-compat protobuf-dev protoc +RUN apk add --no-cache libc6-compat WORKDIR /app COPY --from=deps /app/node_modules ./node_modules -COPY ./pb ./pb +COPY ./src/frontend/protos ./protos COPY ./src/frontend . -RUN npm run grpc:generate RUN npm run build FROM node:20-alpine AS runner WORKDIR /app -RUN apk add --no-cache protobuf-dev protoc ENV NODE_ENV=production diff --git a/src/frontend/genproto/Dockerfile b/src/frontend/genproto/Dockerfile new file mode 100644 index 0000000000..0cf657ad77 --- /dev/null +++ b/src/frontend/genproto/Dockerfile @@ -0,0 +1,14 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +FROM node:20-alpine + +WORKDIR /app + +RUN apk add --no-cache libc6-compat protobuf-dev protoc + +COPY ./src/frontend/package*.json ./ + +RUN npm ci + +COPY ./pb /build/pb diff --git a/src/frontend/package.json b/src/frontend/package.json index b13a0b5451..e7753f3962 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "dev": "npm run grpc:generate && NODE_OPTIONS='-r ./utils/telemetry/Instrumentation.js' next dev", + "dev": "NODE_OPTIONS='-r ./utils/telemetry/Instrumentation.js' next dev", "build": "next build", "start": "node --require ./Instrumentation.js server.js", "lint": "next lint", @@ -44,7 +44,6 @@ "react-dom": "19.0.0", "sharp": "0.33.5", "styled-components": "6.1.14", - "ts-proto": "1.181.1", "uuid": "11.0.5" }, "devDependencies": { @@ -61,6 +60,7 @@ "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", "openapi-typescript": "7.5.2", + "ts-proto": "1.181.1", "typescript": "5.7.3" } } diff --git a/src/frontend/protos/demo.ts b/src/frontend/protos/demo.ts new file mode 100644 index 0000000000..9ebce369be --- /dev/null +++ b/src/frontend/protos/demo.ts @@ -0,0 +1,4025 @@ +// Code generated by protoc-gen-ts_proto. DO NOT EDIT. +// versions: +// protoc-gen-ts_proto v1.181.1 +// protoc v4.24.4 +// source: demo.proto + +/* eslint-disable */ +import { + type CallOptions, + ChannelCredentials, + Client, + type ClientOptions, + type ClientUnaryCall, + type handleUnaryCall, + makeGenericClientConstructor, + Metadata, + type ServiceError, + type UntypedServiceImplementation, +} from "@grpc/grpc-js"; +import Long from "long"; +import _m0 from "protobufjs/minimal"; + +export const protobufPackage = "oteldemo"; + +export interface CartItem { + productId: string; + quantity: number; +} + +export interface AddItemRequest { + userId: string; + item: CartItem | undefined; +} + +export interface EmptyCartRequest { + userId: string; +} + +export interface GetCartRequest { + userId: string; +} + +export interface Cart { + userId: string; + items: CartItem[]; +} + +export interface Empty { +} + +export interface ListRecommendationsRequest { + userId: string; + productIds: string[]; +} + +export interface ListRecommendationsResponse { + productIds: string[]; +} + +export interface Product { + id: string; + name: string; + description: string; + picture: string; + priceUsd: + | Money + | undefined; + /** + * Categories such as "clothing" or "kitchen" that can be used to look up + * other related products. + */ + categories: string[]; +} + +export interface ListProductsResponse { + products: Product[]; +} + +export interface GetProductRequest { + id: string; +} + +export interface SearchProductsRequest { + query: string; +} + +export interface SearchProductsResponse { + results: Product[]; +} + +export interface GetQuoteRequest { + address: Address | undefined; + items: CartItem[]; +} + +export interface GetQuoteResponse { + costUsd: Money | undefined; +} + +export interface ShipOrderRequest { + address: Address | undefined; + items: CartItem[]; +} + +export interface ShipOrderResponse { + trackingId: string; +} + +export interface Address { + streetAddress: string; + city: string; + state: string; + country: string; + zipCode: string; +} + +/** Represents an amount of money with its currency type. */ +export interface Money { + /** The 3-letter currency code defined in ISO 4217. */ + currencyCode: string; + /** + * The whole units of the amount. + * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. + */ + units: number; + /** + * Number of nano (10^-9) units of the amount. + * The value must be between -999,999,999 and +999,999,999 inclusive. + * If `units` is positive, `nanos` must be positive or zero. + * If `units` is zero, `nanos` can be positive, zero, or negative. + * If `units` is negative, `nanos` must be negative or zero. + * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. + */ + nanos: number; +} + +export interface GetSupportedCurrenciesResponse { + /** The 3-letter currency code defined in ISO 4217. */ + currencyCodes: string[]; +} + +export interface CurrencyConversionRequest { + from: + | Money + | undefined; + /** The 3-letter currency code defined in ISO 4217. */ + toCode: string; +} + +export interface CreditCardInfo { + creditCardNumber: string; + creditCardCvv: number; + creditCardExpirationYear: number; + creditCardExpirationMonth: number; +} + +export interface ChargeRequest { + amount: Money | undefined; + creditCard: CreditCardInfo | undefined; +} + +export interface ChargeResponse { + transactionId: string; +} + +export interface OrderItem { + item: CartItem | undefined; + cost: Money | undefined; +} + +export interface OrderResult { + orderId: string; + shippingTrackingId: string; + shippingCost: Money | undefined; + shippingAddress: Address | undefined; + items: OrderItem[]; +} + +export interface SendOrderConfirmationRequest { + email: string; + order: OrderResult | undefined; +} + +export interface PlaceOrderRequest { + userId: string; + userCurrency: string; + address: Address | undefined; + email: string; + creditCard: CreditCardInfo | undefined; +} + +export interface PlaceOrderResponse { + order: OrderResult | undefined; +} + +export interface AdRequest { + /** List of important key words from the current page describing the context. */ + contextKeys: string[]; +} + +export interface AdResponse { + ads: Ad[]; +} + +export interface Ad { + /** url to redirect to when an ad is clicked. */ + redirectUrl: string; + /** short advertisement text to display. */ + text: string; +} + +export interface Flag { + name: string; + description: string; + enabled: boolean; +} + +export interface GetFlagRequest { + name: string; +} + +export interface GetFlagResponse { + flag: Flag | undefined; +} + +export interface CreateFlagRequest { + name: string; + description: string; + enabled: boolean; +} + +export interface CreateFlagResponse { + flag: Flag | undefined; +} + +export interface UpdateFlagRequest { + name: string; + enabled: boolean; +} + +export interface UpdateFlagResponse { +} + +export interface ListFlagsRequest { +} + +export interface ListFlagsResponse { + flag: Flag[]; +} + +export interface DeleteFlagRequest { + name: string; +} + +export interface DeleteFlagResponse { +} + +function createBaseCartItem(): CartItem { + return { productId: "", quantity: 0 }; +} + +export const CartItem = { + encode(message: CartItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.productId !== "") { + writer.uint32(10).string(message.productId); + } + if (message.quantity !== 0) { + writer.uint32(16).int32(message.quantity); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CartItem { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCartItem(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.productId = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.quantity = reader.int32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): CartItem { + return { + productId: isSet(object.productId) ? globalThis.String(object.productId) : "", + quantity: isSet(object.quantity) ? globalThis.Number(object.quantity) : 0, + }; + }, + + toJSON(message: CartItem): unknown { + const obj: any = {}; + if (message.productId !== "") { + obj.productId = message.productId; + } + if (message.quantity !== 0) { + obj.quantity = Math.round(message.quantity); + } + return obj; + }, + + create, I>>(base?: I): CartItem { + return CartItem.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): CartItem { + const message = createBaseCartItem(); + message.productId = object.productId ?? ""; + message.quantity = object.quantity ?? 0; + return message; + }, +}; + +function createBaseAddItemRequest(): AddItemRequest { + return { userId: "", item: undefined }; +} + +export const AddItemRequest = { + encode(message: AddItemRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + if (message.item !== undefined) { + CartItem.encode(message.item, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AddItemRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAddItemRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.item = CartItem.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): AddItemRequest { + return { + userId: isSet(object.userId) ? globalThis.String(object.userId) : "", + item: isSet(object.item) ? CartItem.fromJSON(object.item) : undefined, + }; + }, + + toJSON(message: AddItemRequest): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + if (message.item !== undefined) { + obj.item = CartItem.toJSON(message.item); + } + return obj; + }, + + create, I>>(base?: I): AddItemRequest { + return AddItemRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): AddItemRequest { + const message = createBaseAddItemRequest(); + message.userId = object.userId ?? ""; + message.item = (object.item !== undefined && object.item !== null) ? CartItem.fromPartial(object.item) : undefined; + return message; + }, +}; + +function createBaseEmptyCartRequest(): EmptyCartRequest { + return { userId: "" }; +} + +export const EmptyCartRequest = { + encode(message: EmptyCartRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): EmptyCartRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEmptyCartRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): EmptyCartRequest { + return { userId: isSet(object.userId) ? globalThis.String(object.userId) : "" }; + }, + + toJSON(message: EmptyCartRequest): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + return obj; + }, + + create, I>>(base?: I): EmptyCartRequest { + return EmptyCartRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): EmptyCartRequest { + const message = createBaseEmptyCartRequest(); + message.userId = object.userId ?? ""; + return message; + }, +}; + +function createBaseGetCartRequest(): GetCartRequest { + return { userId: "" }; +} + +export const GetCartRequest = { + encode(message: GetCartRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetCartRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetCartRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetCartRequest { + return { userId: isSet(object.userId) ? globalThis.String(object.userId) : "" }; + }, + + toJSON(message: GetCartRequest): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + return obj; + }, + + create, I>>(base?: I): GetCartRequest { + return GetCartRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetCartRequest { + const message = createBaseGetCartRequest(); + message.userId = object.userId ?? ""; + return message; + }, +}; + +function createBaseCart(): Cart { + return { userId: "", items: [] }; +} + +export const Cart = { + encode(message: Cart, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + for (const v of message.items) { + CartItem.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Cart { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCart(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.items.push(CartItem.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Cart { + return { + userId: isSet(object.userId) ? globalThis.String(object.userId) : "", + items: globalThis.Array.isArray(object?.items) ? object.items.map((e: any) => CartItem.fromJSON(e)) : [], + }; + }, + + toJSON(message: Cart): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + if (message.items?.length) { + obj.items = message.items.map((e) => CartItem.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): Cart { + return Cart.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Cart { + const message = createBaseCart(); + message.userId = object.userId ?? ""; + message.items = object.items?.map((e) => CartItem.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseEmpty(): Empty { + return {}; +} + +export const Empty = { + encode(_: Empty, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Empty { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEmpty(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(_: any): Empty { + return {}; + }, + + toJSON(_: Empty): unknown { + const obj: any = {}; + return obj; + }, + + create, I>>(base?: I): Empty { + return Empty.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(_: I): Empty { + const message = createBaseEmpty(); + return message; + }, +}; + +function createBaseListRecommendationsRequest(): ListRecommendationsRequest { + return { userId: "", productIds: [] }; +} + +export const ListRecommendationsRequest = { + encode(message: ListRecommendationsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + for (const v of message.productIds) { + writer.uint32(18).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ListRecommendationsRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseListRecommendationsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.productIds.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ListRecommendationsRequest { + return { + userId: isSet(object.userId) ? globalThis.String(object.userId) : "", + productIds: globalThis.Array.isArray(object?.productIds) + ? object.productIds.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: ListRecommendationsRequest): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + if (message.productIds?.length) { + obj.productIds = message.productIds; + } + return obj; + }, + + create, I>>(base?: I): ListRecommendationsRequest { + return ListRecommendationsRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ListRecommendationsRequest { + const message = createBaseListRecommendationsRequest(); + message.userId = object.userId ?? ""; + message.productIds = object.productIds?.map((e) => e) || []; + return message; + }, +}; + +function createBaseListRecommendationsResponse(): ListRecommendationsResponse { + return { productIds: [] }; +} + +export const ListRecommendationsResponse = { + encode(message: ListRecommendationsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.productIds) { + writer.uint32(10).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ListRecommendationsResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseListRecommendationsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.productIds.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ListRecommendationsResponse { + return { + productIds: globalThis.Array.isArray(object?.productIds) + ? object.productIds.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: ListRecommendationsResponse): unknown { + const obj: any = {}; + if (message.productIds?.length) { + obj.productIds = message.productIds; + } + return obj; + }, + + create, I>>(base?: I): ListRecommendationsResponse { + return ListRecommendationsResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ListRecommendationsResponse { + const message = createBaseListRecommendationsResponse(); + message.productIds = object.productIds?.map((e) => e) || []; + return message; + }, +}; + +function createBaseProduct(): Product { + return { id: "", name: "", description: "", picture: "", priceUsd: undefined, categories: [] }; +} + +export const Product = { + encode(message: Product, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.id !== "") { + writer.uint32(10).string(message.id); + } + if (message.name !== "") { + writer.uint32(18).string(message.name); + } + if (message.description !== "") { + writer.uint32(26).string(message.description); + } + if (message.picture !== "") { + writer.uint32(34).string(message.picture); + } + if (message.priceUsd !== undefined) { + Money.encode(message.priceUsd, writer.uint32(42).fork()).ldelim(); + } + for (const v of message.categories) { + writer.uint32(50).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Product { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProduct(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.id = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.name = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.description = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.picture = reader.string(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.priceUsd = Money.decode(reader, reader.uint32()); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.categories.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Product { + return { + id: isSet(object.id) ? globalThis.String(object.id) : "", + name: isSet(object.name) ? globalThis.String(object.name) : "", + description: isSet(object.description) ? globalThis.String(object.description) : "", + picture: isSet(object.picture) ? globalThis.String(object.picture) : "", + priceUsd: isSet(object.priceUsd) ? Money.fromJSON(object.priceUsd) : undefined, + categories: globalThis.Array.isArray(object?.categories) + ? object.categories.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: Product): unknown { + const obj: any = {}; + if (message.id !== "") { + obj.id = message.id; + } + if (message.name !== "") { + obj.name = message.name; + } + if (message.description !== "") { + obj.description = message.description; + } + if (message.picture !== "") { + obj.picture = message.picture; + } + if (message.priceUsd !== undefined) { + obj.priceUsd = Money.toJSON(message.priceUsd); + } + if (message.categories?.length) { + obj.categories = message.categories; + } + return obj; + }, + + create, I>>(base?: I): Product { + return Product.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Product { + const message = createBaseProduct(); + message.id = object.id ?? ""; + message.name = object.name ?? ""; + message.description = object.description ?? ""; + message.picture = object.picture ?? ""; + message.priceUsd = (object.priceUsd !== undefined && object.priceUsd !== null) + ? Money.fromPartial(object.priceUsd) + : undefined; + message.categories = object.categories?.map((e) => e) || []; + return message; + }, +}; + +function createBaseListProductsResponse(): ListProductsResponse { + return { products: [] }; +} + +export const ListProductsResponse = { + encode(message: ListProductsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.products) { + Product.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ListProductsResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseListProductsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.products.push(Product.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ListProductsResponse { + return { + products: globalThis.Array.isArray(object?.products) ? object.products.map((e: any) => Product.fromJSON(e)) : [], + }; + }, + + toJSON(message: ListProductsResponse): unknown { + const obj: any = {}; + if (message.products?.length) { + obj.products = message.products.map((e) => Product.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): ListProductsResponse { + return ListProductsResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ListProductsResponse { + const message = createBaseListProductsResponse(); + message.products = object.products?.map((e) => Product.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetProductRequest(): GetProductRequest { + return { id: "" }; +} + +export const GetProductRequest = { + encode(message: GetProductRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.id !== "") { + writer.uint32(10).string(message.id); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetProductRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetProductRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.id = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetProductRequest { + return { id: isSet(object.id) ? globalThis.String(object.id) : "" }; + }, + + toJSON(message: GetProductRequest): unknown { + const obj: any = {}; + if (message.id !== "") { + obj.id = message.id; + } + return obj; + }, + + create, I>>(base?: I): GetProductRequest { + return GetProductRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetProductRequest { + const message = createBaseGetProductRequest(); + message.id = object.id ?? ""; + return message; + }, +}; + +function createBaseSearchProductsRequest(): SearchProductsRequest { + return { query: "" }; +} + +export const SearchProductsRequest = { + encode(message: SearchProductsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.query !== "") { + writer.uint32(10).string(message.query); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SearchProductsRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSearchProductsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.query = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): SearchProductsRequest { + return { query: isSet(object.query) ? globalThis.String(object.query) : "" }; + }, + + toJSON(message: SearchProductsRequest): unknown { + const obj: any = {}; + if (message.query !== "") { + obj.query = message.query; + } + return obj; + }, + + create, I>>(base?: I): SearchProductsRequest { + return SearchProductsRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): SearchProductsRequest { + const message = createBaseSearchProductsRequest(); + message.query = object.query ?? ""; + return message; + }, +}; + +function createBaseSearchProductsResponse(): SearchProductsResponse { + return { results: [] }; +} + +export const SearchProductsResponse = { + encode(message: SearchProductsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.results) { + Product.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SearchProductsResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSearchProductsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.results.push(Product.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): SearchProductsResponse { + return { + results: globalThis.Array.isArray(object?.results) ? object.results.map((e: any) => Product.fromJSON(e)) : [], + }; + }, + + toJSON(message: SearchProductsResponse): unknown { + const obj: any = {}; + if (message.results?.length) { + obj.results = message.results.map((e) => Product.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): SearchProductsResponse { + return SearchProductsResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): SearchProductsResponse { + const message = createBaseSearchProductsResponse(); + message.results = object.results?.map((e) => Product.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetQuoteRequest(): GetQuoteRequest { + return { address: undefined, items: [] }; +} + +export const GetQuoteRequest = { + encode(message: GetQuoteRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined) { + Address.encode(message.address, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.items) { + CartItem.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetQuoteRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetQuoteRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = Address.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.items.push(CartItem.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetQuoteRequest { + return { + address: isSet(object.address) ? Address.fromJSON(object.address) : undefined, + items: globalThis.Array.isArray(object?.items) ? object.items.map((e: any) => CartItem.fromJSON(e)) : [], + }; + }, + + toJSON(message: GetQuoteRequest): unknown { + const obj: any = {}; + if (message.address !== undefined) { + obj.address = Address.toJSON(message.address); + } + if (message.items?.length) { + obj.items = message.items.map((e) => CartItem.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): GetQuoteRequest { + return GetQuoteRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetQuoteRequest { + const message = createBaseGetQuoteRequest(); + message.address = (object.address !== undefined && object.address !== null) + ? Address.fromPartial(object.address) + : undefined; + message.items = object.items?.map((e) => CartItem.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetQuoteResponse(): GetQuoteResponse { + return { costUsd: undefined }; +} + +export const GetQuoteResponse = { + encode(message: GetQuoteResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.costUsd !== undefined) { + Money.encode(message.costUsd, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetQuoteResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetQuoteResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.costUsd = Money.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetQuoteResponse { + return { costUsd: isSet(object.costUsd) ? Money.fromJSON(object.costUsd) : undefined }; + }, + + toJSON(message: GetQuoteResponse): unknown { + const obj: any = {}; + if (message.costUsd !== undefined) { + obj.costUsd = Money.toJSON(message.costUsd); + } + return obj; + }, + + create, I>>(base?: I): GetQuoteResponse { + return GetQuoteResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetQuoteResponse { + const message = createBaseGetQuoteResponse(); + message.costUsd = (object.costUsd !== undefined && object.costUsd !== null) + ? Money.fromPartial(object.costUsd) + : undefined; + return message; + }, +}; + +function createBaseShipOrderRequest(): ShipOrderRequest { + return { address: undefined, items: [] }; +} + +export const ShipOrderRequest = { + encode(message: ShipOrderRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined) { + Address.encode(message.address, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.items) { + CartItem.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ShipOrderRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseShipOrderRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = Address.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.items.push(CartItem.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ShipOrderRequest { + return { + address: isSet(object.address) ? Address.fromJSON(object.address) : undefined, + items: globalThis.Array.isArray(object?.items) ? object.items.map((e: any) => CartItem.fromJSON(e)) : [], + }; + }, + + toJSON(message: ShipOrderRequest): unknown { + const obj: any = {}; + if (message.address !== undefined) { + obj.address = Address.toJSON(message.address); + } + if (message.items?.length) { + obj.items = message.items.map((e) => CartItem.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): ShipOrderRequest { + return ShipOrderRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ShipOrderRequest { + const message = createBaseShipOrderRequest(); + message.address = (object.address !== undefined && object.address !== null) + ? Address.fromPartial(object.address) + : undefined; + message.items = object.items?.map((e) => CartItem.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseShipOrderResponse(): ShipOrderResponse { + return { trackingId: "" }; +} + +export const ShipOrderResponse = { + encode(message: ShipOrderResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.trackingId !== "") { + writer.uint32(10).string(message.trackingId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ShipOrderResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseShipOrderResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.trackingId = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ShipOrderResponse { + return { trackingId: isSet(object.trackingId) ? globalThis.String(object.trackingId) : "" }; + }, + + toJSON(message: ShipOrderResponse): unknown { + const obj: any = {}; + if (message.trackingId !== "") { + obj.trackingId = message.trackingId; + } + return obj; + }, + + create, I>>(base?: I): ShipOrderResponse { + return ShipOrderResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ShipOrderResponse { + const message = createBaseShipOrderResponse(); + message.trackingId = object.trackingId ?? ""; + return message; + }, +}; + +function createBaseAddress(): Address { + return { streetAddress: "", city: "", state: "", country: "", zipCode: "" }; +} + +export const Address = { + encode(message: Address, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.streetAddress !== "") { + writer.uint32(10).string(message.streetAddress); + } + if (message.city !== "") { + writer.uint32(18).string(message.city); + } + if (message.state !== "") { + writer.uint32(26).string(message.state); + } + if (message.country !== "") { + writer.uint32(34).string(message.country); + } + if (message.zipCode !== "") { + writer.uint32(42).string(message.zipCode); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Address { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAddress(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.streetAddress = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.city = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.state = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.country = reader.string(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.zipCode = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Address { + return { + streetAddress: isSet(object.streetAddress) ? globalThis.String(object.streetAddress) : "", + city: isSet(object.city) ? globalThis.String(object.city) : "", + state: isSet(object.state) ? globalThis.String(object.state) : "", + country: isSet(object.country) ? globalThis.String(object.country) : "", + zipCode: isSet(object.zipCode) ? globalThis.String(object.zipCode) : "", + }; + }, + + toJSON(message: Address): unknown { + const obj: any = {}; + if (message.streetAddress !== "") { + obj.streetAddress = message.streetAddress; + } + if (message.city !== "") { + obj.city = message.city; + } + if (message.state !== "") { + obj.state = message.state; + } + if (message.country !== "") { + obj.country = message.country; + } + if (message.zipCode !== "") { + obj.zipCode = message.zipCode; + } + return obj; + }, + + create, I>>(base?: I): Address { + return Address.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Address { + const message = createBaseAddress(); + message.streetAddress = object.streetAddress ?? ""; + message.city = object.city ?? ""; + message.state = object.state ?? ""; + message.country = object.country ?? ""; + message.zipCode = object.zipCode ?? ""; + return message; + }, +}; + +function createBaseMoney(): Money { + return { currencyCode: "", units: 0, nanos: 0 }; +} + +export const Money = { + encode(message: Money, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.currencyCode !== "") { + writer.uint32(10).string(message.currencyCode); + } + if (message.units !== 0) { + writer.uint32(16).int64(message.units); + } + if (message.nanos !== 0) { + writer.uint32(24).int32(message.nanos); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Money { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoney(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.currencyCode = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.units = longToNumber(reader.int64() as Long); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.nanos = reader.int32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Money { + return { + currencyCode: isSet(object.currencyCode) ? globalThis.String(object.currencyCode) : "", + units: isSet(object.units) ? globalThis.Number(object.units) : 0, + nanos: isSet(object.nanos) ? globalThis.Number(object.nanos) : 0, + }; + }, + + toJSON(message: Money): unknown { + const obj: any = {}; + if (message.currencyCode !== "") { + obj.currencyCode = message.currencyCode; + } + if (message.units !== 0) { + obj.units = Math.round(message.units); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } + return obj; + }, + + create, I>>(base?: I): Money { + return Money.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Money { + const message = createBaseMoney(); + message.currencyCode = object.currencyCode ?? ""; + message.units = object.units ?? 0; + message.nanos = object.nanos ?? 0; + return message; + }, +}; + +function createBaseGetSupportedCurrenciesResponse(): GetSupportedCurrenciesResponse { + return { currencyCodes: [] }; +} + +export const GetSupportedCurrenciesResponse = { + encode(message: GetSupportedCurrenciesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.currencyCodes) { + writer.uint32(10).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetSupportedCurrenciesResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetSupportedCurrenciesResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.currencyCodes.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetSupportedCurrenciesResponse { + return { + currencyCodes: globalThis.Array.isArray(object?.currencyCodes) + ? object.currencyCodes.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: GetSupportedCurrenciesResponse): unknown { + const obj: any = {}; + if (message.currencyCodes?.length) { + obj.currencyCodes = message.currencyCodes; + } + return obj; + }, + + create, I>>(base?: I): GetSupportedCurrenciesResponse { + return GetSupportedCurrenciesResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>( + object: I, + ): GetSupportedCurrenciesResponse { + const message = createBaseGetSupportedCurrenciesResponse(); + message.currencyCodes = object.currencyCodes?.map((e) => e) || []; + return message; + }, +}; + +function createBaseCurrencyConversionRequest(): CurrencyConversionRequest { + return { from: undefined, toCode: "" }; +} + +export const CurrencyConversionRequest = { + encode(message: CurrencyConversionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.from !== undefined) { + Money.encode(message.from, writer.uint32(10).fork()).ldelim(); + } + if (message.toCode !== "") { + writer.uint32(18).string(message.toCode); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CurrencyConversionRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCurrencyConversionRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.from = Money.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.toCode = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): CurrencyConversionRequest { + return { + from: isSet(object.from) ? Money.fromJSON(object.from) : undefined, + toCode: isSet(object.toCode) ? globalThis.String(object.toCode) : "", + }; + }, + + toJSON(message: CurrencyConversionRequest): unknown { + const obj: any = {}; + if (message.from !== undefined) { + obj.from = Money.toJSON(message.from); + } + if (message.toCode !== "") { + obj.toCode = message.toCode; + } + return obj; + }, + + create, I>>(base?: I): CurrencyConversionRequest { + return CurrencyConversionRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): CurrencyConversionRequest { + const message = createBaseCurrencyConversionRequest(); + message.from = (object.from !== undefined && object.from !== null) ? Money.fromPartial(object.from) : undefined; + message.toCode = object.toCode ?? ""; + return message; + }, +}; + +function createBaseCreditCardInfo(): CreditCardInfo { + return { creditCardNumber: "", creditCardCvv: 0, creditCardExpirationYear: 0, creditCardExpirationMonth: 0 }; +} + +export const CreditCardInfo = { + encode(message: CreditCardInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.creditCardNumber !== "") { + writer.uint32(10).string(message.creditCardNumber); + } + if (message.creditCardCvv !== 0) { + writer.uint32(16).int32(message.creditCardCvv); + } + if (message.creditCardExpirationYear !== 0) { + writer.uint32(24).int32(message.creditCardExpirationYear); + } + if (message.creditCardExpirationMonth !== 0) { + writer.uint32(32).int32(message.creditCardExpirationMonth); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreditCardInfo { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreditCardInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.creditCardNumber = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.creditCardCvv = reader.int32(); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.creditCardExpirationYear = reader.int32(); + continue; + case 4: + if (tag !== 32) { + break; + } + + message.creditCardExpirationMonth = reader.int32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): CreditCardInfo { + return { + creditCardNumber: isSet(object.creditCardNumber) ? globalThis.String(object.creditCardNumber) : "", + creditCardCvv: isSet(object.creditCardCvv) ? globalThis.Number(object.creditCardCvv) : 0, + creditCardExpirationYear: isSet(object.creditCardExpirationYear) + ? globalThis.Number(object.creditCardExpirationYear) + : 0, + creditCardExpirationMonth: isSet(object.creditCardExpirationMonth) + ? globalThis.Number(object.creditCardExpirationMonth) + : 0, + }; + }, + + toJSON(message: CreditCardInfo): unknown { + const obj: any = {}; + if (message.creditCardNumber !== "") { + obj.creditCardNumber = message.creditCardNumber; + } + if (message.creditCardCvv !== 0) { + obj.creditCardCvv = Math.round(message.creditCardCvv); + } + if (message.creditCardExpirationYear !== 0) { + obj.creditCardExpirationYear = Math.round(message.creditCardExpirationYear); + } + if (message.creditCardExpirationMonth !== 0) { + obj.creditCardExpirationMonth = Math.round(message.creditCardExpirationMonth); + } + return obj; + }, + + create, I>>(base?: I): CreditCardInfo { + return CreditCardInfo.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): CreditCardInfo { + const message = createBaseCreditCardInfo(); + message.creditCardNumber = object.creditCardNumber ?? ""; + message.creditCardCvv = object.creditCardCvv ?? 0; + message.creditCardExpirationYear = object.creditCardExpirationYear ?? 0; + message.creditCardExpirationMonth = object.creditCardExpirationMonth ?? 0; + return message; + }, +}; + +function createBaseChargeRequest(): ChargeRequest { + return { amount: undefined, creditCard: undefined }; +} + +export const ChargeRequest = { + encode(message: ChargeRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.amount !== undefined) { + Money.encode(message.amount, writer.uint32(10).fork()).ldelim(); + } + if (message.creditCard !== undefined) { + CreditCardInfo.encode(message.creditCard, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ChargeRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseChargeRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.amount = Money.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.creditCard = CreditCardInfo.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ChargeRequest { + return { + amount: isSet(object.amount) ? Money.fromJSON(object.amount) : undefined, + creditCard: isSet(object.creditCard) ? CreditCardInfo.fromJSON(object.creditCard) : undefined, + }; + }, + + toJSON(message: ChargeRequest): unknown { + const obj: any = {}; + if (message.amount !== undefined) { + obj.amount = Money.toJSON(message.amount); + } + if (message.creditCard !== undefined) { + obj.creditCard = CreditCardInfo.toJSON(message.creditCard); + } + return obj; + }, + + create, I>>(base?: I): ChargeRequest { + return ChargeRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ChargeRequest { + const message = createBaseChargeRequest(); + message.amount = (object.amount !== undefined && object.amount !== null) + ? Money.fromPartial(object.amount) + : undefined; + message.creditCard = (object.creditCard !== undefined && object.creditCard !== null) + ? CreditCardInfo.fromPartial(object.creditCard) + : undefined; + return message; + }, +}; + +function createBaseChargeResponse(): ChargeResponse { + return { transactionId: "" }; +} + +export const ChargeResponse = { + encode(message: ChargeResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.transactionId !== "") { + writer.uint32(10).string(message.transactionId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ChargeResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseChargeResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.transactionId = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ChargeResponse { + return { transactionId: isSet(object.transactionId) ? globalThis.String(object.transactionId) : "" }; + }, + + toJSON(message: ChargeResponse): unknown { + const obj: any = {}; + if (message.transactionId !== "") { + obj.transactionId = message.transactionId; + } + return obj; + }, + + create, I>>(base?: I): ChargeResponse { + return ChargeResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ChargeResponse { + const message = createBaseChargeResponse(); + message.transactionId = object.transactionId ?? ""; + return message; + }, +}; + +function createBaseOrderItem(): OrderItem { + return { item: undefined, cost: undefined }; +} + +export const OrderItem = { + encode(message: OrderItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.item !== undefined) { + CartItem.encode(message.item, writer.uint32(10).fork()).ldelim(); + } + if (message.cost !== undefined) { + Money.encode(message.cost, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): OrderItem { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseOrderItem(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.item = CartItem.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.cost = Money.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): OrderItem { + return { + item: isSet(object.item) ? CartItem.fromJSON(object.item) : undefined, + cost: isSet(object.cost) ? Money.fromJSON(object.cost) : undefined, + }; + }, + + toJSON(message: OrderItem): unknown { + const obj: any = {}; + if (message.item !== undefined) { + obj.item = CartItem.toJSON(message.item); + } + if (message.cost !== undefined) { + obj.cost = Money.toJSON(message.cost); + } + return obj; + }, + + create, I>>(base?: I): OrderItem { + return OrderItem.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): OrderItem { + const message = createBaseOrderItem(); + message.item = (object.item !== undefined && object.item !== null) ? CartItem.fromPartial(object.item) : undefined; + message.cost = (object.cost !== undefined && object.cost !== null) ? Money.fromPartial(object.cost) : undefined; + return message; + }, +}; + +function createBaseOrderResult(): OrderResult { + return { orderId: "", shippingTrackingId: "", shippingCost: undefined, shippingAddress: undefined, items: [] }; +} + +export const OrderResult = { + encode(message: OrderResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.orderId !== "") { + writer.uint32(10).string(message.orderId); + } + if (message.shippingTrackingId !== "") { + writer.uint32(18).string(message.shippingTrackingId); + } + if (message.shippingCost !== undefined) { + Money.encode(message.shippingCost, writer.uint32(26).fork()).ldelim(); + } + if (message.shippingAddress !== undefined) { + Address.encode(message.shippingAddress, writer.uint32(34).fork()).ldelim(); + } + for (const v of message.items) { + OrderItem.encode(v!, writer.uint32(42).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): OrderResult { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseOrderResult(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.orderId = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.shippingTrackingId = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.shippingCost = Money.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.shippingAddress = Address.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.items.push(OrderItem.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): OrderResult { + return { + orderId: isSet(object.orderId) ? globalThis.String(object.orderId) : "", + shippingTrackingId: isSet(object.shippingTrackingId) ? globalThis.String(object.shippingTrackingId) : "", + shippingCost: isSet(object.shippingCost) ? Money.fromJSON(object.shippingCost) : undefined, + shippingAddress: isSet(object.shippingAddress) ? Address.fromJSON(object.shippingAddress) : undefined, + items: globalThis.Array.isArray(object?.items) ? object.items.map((e: any) => OrderItem.fromJSON(e)) : [], + }; + }, + + toJSON(message: OrderResult): unknown { + const obj: any = {}; + if (message.orderId !== "") { + obj.orderId = message.orderId; + } + if (message.shippingTrackingId !== "") { + obj.shippingTrackingId = message.shippingTrackingId; + } + if (message.shippingCost !== undefined) { + obj.shippingCost = Money.toJSON(message.shippingCost); + } + if (message.shippingAddress !== undefined) { + obj.shippingAddress = Address.toJSON(message.shippingAddress); + } + if (message.items?.length) { + obj.items = message.items.map((e) => OrderItem.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): OrderResult { + return OrderResult.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): OrderResult { + const message = createBaseOrderResult(); + message.orderId = object.orderId ?? ""; + message.shippingTrackingId = object.shippingTrackingId ?? ""; + message.shippingCost = (object.shippingCost !== undefined && object.shippingCost !== null) + ? Money.fromPartial(object.shippingCost) + : undefined; + message.shippingAddress = (object.shippingAddress !== undefined && object.shippingAddress !== null) + ? Address.fromPartial(object.shippingAddress) + : undefined; + message.items = object.items?.map((e) => OrderItem.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseSendOrderConfirmationRequest(): SendOrderConfirmationRequest { + return { email: "", order: undefined }; +} + +export const SendOrderConfirmationRequest = { + encode(message: SendOrderConfirmationRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.email !== "") { + writer.uint32(10).string(message.email); + } + if (message.order !== undefined) { + OrderResult.encode(message.order, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SendOrderConfirmationRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSendOrderConfirmationRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.email = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.order = OrderResult.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): SendOrderConfirmationRequest { + return { + email: isSet(object.email) ? globalThis.String(object.email) : "", + order: isSet(object.order) ? OrderResult.fromJSON(object.order) : undefined, + }; + }, + + toJSON(message: SendOrderConfirmationRequest): unknown { + const obj: any = {}; + if (message.email !== "") { + obj.email = message.email; + } + if (message.order !== undefined) { + obj.order = OrderResult.toJSON(message.order); + } + return obj; + }, + + create, I>>(base?: I): SendOrderConfirmationRequest { + return SendOrderConfirmationRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): SendOrderConfirmationRequest { + const message = createBaseSendOrderConfirmationRequest(); + message.email = object.email ?? ""; + message.order = (object.order !== undefined && object.order !== null) + ? OrderResult.fromPartial(object.order) + : undefined; + return message; + }, +}; + +function createBasePlaceOrderRequest(): PlaceOrderRequest { + return { userId: "", userCurrency: "", address: undefined, email: "", creditCard: undefined }; +} + +export const PlaceOrderRequest = { + encode(message: PlaceOrderRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== "") { + writer.uint32(10).string(message.userId); + } + if (message.userCurrency !== "") { + writer.uint32(18).string(message.userCurrency); + } + if (message.address !== undefined) { + Address.encode(message.address, writer.uint32(26).fork()).ldelim(); + } + if (message.email !== "") { + writer.uint32(42).string(message.email); + } + if (message.creditCard !== undefined) { + CreditCardInfo.encode(message.creditCard, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): PlaceOrderRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePlaceOrderRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.userId = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.userCurrency = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.address = Address.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.email = reader.string(); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.creditCard = CreditCardInfo.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): PlaceOrderRequest { + return { + userId: isSet(object.userId) ? globalThis.String(object.userId) : "", + userCurrency: isSet(object.userCurrency) ? globalThis.String(object.userCurrency) : "", + address: isSet(object.address) ? Address.fromJSON(object.address) : undefined, + email: isSet(object.email) ? globalThis.String(object.email) : "", + creditCard: isSet(object.creditCard) ? CreditCardInfo.fromJSON(object.creditCard) : undefined, + }; + }, + + toJSON(message: PlaceOrderRequest): unknown { + const obj: any = {}; + if (message.userId !== "") { + obj.userId = message.userId; + } + if (message.userCurrency !== "") { + obj.userCurrency = message.userCurrency; + } + if (message.address !== undefined) { + obj.address = Address.toJSON(message.address); + } + if (message.email !== "") { + obj.email = message.email; + } + if (message.creditCard !== undefined) { + obj.creditCard = CreditCardInfo.toJSON(message.creditCard); + } + return obj; + }, + + create, I>>(base?: I): PlaceOrderRequest { + return PlaceOrderRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): PlaceOrderRequest { + const message = createBasePlaceOrderRequest(); + message.userId = object.userId ?? ""; + message.userCurrency = object.userCurrency ?? ""; + message.address = (object.address !== undefined && object.address !== null) + ? Address.fromPartial(object.address) + : undefined; + message.email = object.email ?? ""; + message.creditCard = (object.creditCard !== undefined && object.creditCard !== null) + ? CreditCardInfo.fromPartial(object.creditCard) + : undefined; + return message; + }, +}; + +function createBasePlaceOrderResponse(): PlaceOrderResponse { + return { order: undefined }; +} + +export const PlaceOrderResponse = { + encode(message: PlaceOrderResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.order !== undefined) { + OrderResult.encode(message.order, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): PlaceOrderResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePlaceOrderResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.order = OrderResult.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): PlaceOrderResponse { + return { order: isSet(object.order) ? OrderResult.fromJSON(object.order) : undefined }; + }, + + toJSON(message: PlaceOrderResponse): unknown { + const obj: any = {}; + if (message.order !== undefined) { + obj.order = OrderResult.toJSON(message.order); + } + return obj; + }, + + create, I>>(base?: I): PlaceOrderResponse { + return PlaceOrderResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): PlaceOrderResponse { + const message = createBasePlaceOrderResponse(); + message.order = (object.order !== undefined && object.order !== null) + ? OrderResult.fromPartial(object.order) + : undefined; + return message; + }, +}; + +function createBaseAdRequest(): AdRequest { + return { contextKeys: [] }; +} + +export const AdRequest = { + encode(message: AdRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.contextKeys) { + writer.uint32(10).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AdRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAdRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.contextKeys.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): AdRequest { + return { + contextKeys: globalThis.Array.isArray(object?.contextKeys) + ? object.contextKeys.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: AdRequest): unknown { + const obj: any = {}; + if (message.contextKeys?.length) { + obj.contextKeys = message.contextKeys; + } + return obj; + }, + + create, I>>(base?: I): AdRequest { + return AdRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): AdRequest { + const message = createBaseAdRequest(); + message.contextKeys = object.contextKeys?.map((e) => e) || []; + return message; + }, +}; + +function createBaseAdResponse(): AdResponse { + return { ads: [] }; +} + +export const AdResponse = { + encode(message: AdResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.ads) { + Ad.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AdResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAdResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.ads.push(Ad.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): AdResponse { + return { ads: globalThis.Array.isArray(object?.ads) ? object.ads.map((e: any) => Ad.fromJSON(e)) : [] }; + }, + + toJSON(message: AdResponse): unknown { + const obj: any = {}; + if (message.ads?.length) { + obj.ads = message.ads.map((e) => Ad.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): AdResponse { + return AdResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): AdResponse { + const message = createBaseAdResponse(); + message.ads = object.ads?.map((e) => Ad.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseAd(): Ad { + return { redirectUrl: "", text: "" }; +} + +export const Ad = { + encode(message: Ad, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.redirectUrl !== "") { + writer.uint32(10).string(message.redirectUrl); + } + if (message.text !== "") { + writer.uint32(18).string(message.text); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Ad { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAd(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.redirectUrl = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.text = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Ad { + return { + redirectUrl: isSet(object.redirectUrl) ? globalThis.String(object.redirectUrl) : "", + text: isSet(object.text) ? globalThis.String(object.text) : "", + }; + }, + + toJSON(message: Ad): unknown { + const obj: any = {}; + if (message.redirectUrl !== "") { + obj.redirectUrl = message.redirectUrl; + } + if (message.text !== "") { + obj.text = message.text; + } + return obj; + }, + + create, I>>(base?: I): Ad { + return Ad.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Ad { + const message = createBaseAd(); + message.redirectUrl = object.redirectUrl ?? ""; + message.text = object.text ?? ""; + return message; + }, +}; + +function createBaseFlag(): Flag { + return { name: "", description: "", enabled: false }; +} + +export const Flag = { + encode(message: Flag, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.description !== "") { + writer.uint32(18).string(message.description); + } + if (message.enabled !== false) { + writer.uint32(24).bool(message.enabled); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Flag { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseFlag(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.description = reader.string(); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.enabled = reader.bool(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): Flag { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + description: isSet(object.description) ? globalThis.String(object.description) : "", + enabled: isSet(object.enabled) ? globalThis.Boolean(object.enabled) : false, + }; + }, + + toJSON(message: Flag): unknown { + const obj: any = {}; + if (message.name !== "") { + obj.name = message.name; + } + if (message.description !== "") { + obj.description = message.description; + } + if (message.enabled !== false) { + obj.enabled = message.enabled; + } + return obj; + }, + + create, I>>(base?: I): Flag { + return Flag.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Flag { + const message = createBaseFlag(); + message.name = object.name ?? ""; + message.description = object.description ?? ""; + message.enabled = object.enabled ?? false; + return message; + }, +}; + +function createBaseGetFlagRequest(): GetFlagRequest { + return { name: "" }; +} + +export const GetFlagRequest = { + encode(message: GetFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetFlagRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetFlagRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetFlagRequest { + return { name: isSet(object.name) ? globalThis.String(object.name) : "" }; + }, + + toJSON(message: GetFlagRequest): unknown { + const obj: any = {}; + if (message.name !== "") { + obj.name = message.name; + } + return obj; + }, + + create, I>>(base?: I): GetFlagRequest { + return GetFlagRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetFlagRequest { + const message = createBaseGetFlagRequest(); + message.name = object.name ?? ""; + return message; + }, +}; + +function createBaseGetFlagResponse(): GetFlagResponse { + return { flag: undefined }; +} + +export const GetFlagResponse = { + encode(message: GetFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.flag !== undefined) { + Flag.encode(message.flag, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetFlagResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetFlagResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.flag = Flag.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): GetFlagResponse { + return { flag: isSet(object.flag) ? Flag.fromJSON(object.flag) : undefined }; + }, + + toJSON(message: GetFlagResponse): unknown { + const obj: any = {}; + if (message.flag !== undefined) { + obj.flag = Flag.toJSON(message.flag); + } + return obj; + }, + + create, I>>(base?: I): GetFlagResponse { + return GetFlagResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): GetFlagResponse { + const message = createBaseGetFlagResponse(); + message.flag = (object.flag !== undefined && object.flag !== null) ? Flag.fromPartial(object.flag) : undefined; + return message; + }, +}; + +function createBaseCreateFlagRequest(): CreateFlagRequest { + return { name: "", description: "", enabled: false }; +} + +export const CreateFlagRequest = { + encode(message: CreateFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.description !== "") { + writer.uint32(18).string(message.description); + } + if (message.enabled !== false) { + writer.uint32(24).bool(message.enabled); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateFlagRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateFlagRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.description = reader.string(); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.enabled = reader.bool(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): CreateFlagRequest { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + description: isSet(object.description) ? globalThis.String(object.description) : "", + enabled: isSet(object.enabled) ? globalThis.Boolean(object.enabled) : false, + }; + }, + + toJSON(message: CreateFlagRequest): unknown { + const obj: any = {}; + if (message.name !== "") { + obj.name = message.name; + } + if (message.description !== "") { + obj.description = message.description; + } + if (message.enabled !== false) { + obj.enabled = message.enabled; + } + return obj; + }, + + create, I>>(base?: I): CreateFlagRequest { + return CreateFlagRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): CreateFlagRequest { + const message = createBaseCreateFlagRequest(); + message.name = object.name ?? ""; + message.description = object.description ?? ""; + message.enabled = object.enabled ?? false; + return message; + }, +}; + +function createBaseCreateFlagResponse(): CreateFlagResponse { + return { flag: undefined }; +} + +export const CreateFlagResponse = { + encode(message: CreateFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.flag !== undefined) { + Flag.encode(message.flag, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateFlagResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateFlagResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.flag = Flag.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): CreateFlagResponse { + return { flag: isSet(object.flag) ? Flag.fromJSON(object.flag) : undefined }; + }, + + toJSON(message: CreateFlagResponse): unknown { + const obj: any = {}; + if (message.flag !== undefined) { + obj.flag = Flag.toJSON(message.flag); + } + return obj; + }, + + create, I>>(base?: I): CreateFlagResponse { + return CreateFlagResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): CreateFlagResponse { + const message = createBaseCreateFlagResponse(); + message.flag = (object.flag !== undefined && object.flag !== null) ? Flag.fromPartial(object.flag) : undefined; + return message; + }, +}; + +function createBaseUpdateFlagRequest(): UpdateFlagRequest { + return { name: "", enabled: false }; +} + +export const UpdateFlagRequest = { + encode(message: UpdateFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.enabled !== false) { + writer.uint32(16).bool(message.enabled); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateFlagRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateFlagRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.enabled = reader.bool(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): UpdateFlagRequest { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + enabled: isSet(object.enabled) ? globalThis.Boolean(object.enabled) : false, + }; + }, + + toJSON(message: UpdateFlagRequest): unknown { + const obj: any = {}; + if (message.name !== "") { + obj.name = message.name; + } + if (message.enabled !== false) { + obj.enabled = message.enabled; + } + return obj; + }, + + create, I>>(base?: I): UpdateFlagRequest { + return UpdateFlagRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): UpdateFlagRequest { + const message = createBaseUpdateFlagRequest(); + message.name = object.name ?? ""; + message.enabled = object.enabled ?? false; + return message; + }, +}; + +function createBaseUpdateFlagResponse(): UpdateFlagResponse { + return {}; +} + +export const UpdateFlagResponse = { + encode(_: UpdateFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateFlagResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateFlagResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(_: any): UpdateFlagResponse { + return {}; + }, + + toJSON(_: UpdateFlagResponse): unknown { + const obj: any = {}; + return obj; + }, + + create, I>>(base?: I): UpdateFlagResponse { + return UpdateFlagResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(_: I): UpdateFlagResponse { + const message = createBaseUpdateFlagResponse(); + return message; + }, +}; + +function createBaseListFlagsRequest(): ListFlagsRequest { + return {}; +} + +export const ListFlagsRequest = { + encode(_: ListFlagsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ListFlagsRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseListFlagsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(_: any): ListFlagsRequest { + return {}; + }, + + toJSON(_: ListFlagsRequest): unknown { + const obj: any = {}; + return obj; + }, + + create, I>>(base?: I): ListFlagsRequest { + return ListFlagsRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(_: I): ListFlagsRequest { + const message = createBaseListFlagsRequest(); + return message; + }, +}; + +function createBaseListFlagsResponse(): ListFlagsResponse { + return { flag: [] }; +} + +export const ListFlagsResponse = { + encode(message: ListFlagsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.flag) { + Flag.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ListFlagsResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseListFlagsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.flag.push(Flag.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): ListFlagsResponse { + return { flag: globalThis.Array.isArray(object?.flag) ? object.flag.map((e: any) => Flag.fromJSON(e)) : [] }; + }, + + toJSON(message: ListFlagsResponse): unknown { + const obj: any = {}; + if (message.flag?.length) { + obj.flag = message.flag.map((e) => Flag.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): ListFlagsResponse { + return ListFlagsResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ListFlagsResponse { + const message = createBaseListFlagsResponse(); + message.flag = object.flag?.map((e) => Flag.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseDeleteFlagRequest(): DeleteFlagRequest { + return { name: "" }; +} + +export const DeleteFlagRequest = { + encode(message: DeleteFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFlagRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteFlagRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(object: any): DeleteFlagRequest { + return { name: isSet(object.name) ? globalThis.String(object.name) : "" }; + }, + + toJSON(message: DeleteFlagRequest): unknown { + const obj: any = {}; + if (message.name !== "") { + obj.name = message.name; + } + return obj; + }, + + create, I>>(base?: I): DeleteFlagRequest { + return DeleteFlagRequest.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): DeleteFlagRequest { + const message = createBaseDeleteFlagRequest(); + message.name = object.name ?? ""; + return message; + }, +}; + +function createBaseDeleteFlagResponse(): DeleteFlagResponse { + return {}; +} + +export const DeleteFlagResponse = { + encode(_: DeleteFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFlagResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteFlagResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + fromJSON(_: any): DeleteFlagResponse { + return {}; + }, + + toJSON(_: DeleteFlagResponse): unknown { + const obj: any = {}; + return obj; + }, + + create, I>>(base?: I): DeleteFlagResponse { + return DeleteFlagResponse.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(_: I): DeleteFlagResponse { + const message = createBaseDeleteFlagResponse(); + return message; + }, +}; + +export type CartServiceService = typeof CartServiceService; +export const CartServiceService = { + addItem: { + path: "/oteldemo.CartService/AddItem", + requestStream: false, + responseStream: false, + requestSerialize: (value: AddItemRequest) => Buffer.from(AddItemRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => AddItemRequest.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + getCart: { + path: "/oteldemo.CartService/GetCart", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetCartRequest) => Buffer.from(GetCartRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetCartRequest.decode(value), + responseSerialize: (value: Cart) => Buffer.from(Cart.encode(value).finish()), + responseDeserialize: (value: Buffer) => Cart.decode(value), + }, + emptyCart: { + path: "/oteldemo.CartService/EmptyCart", + requestStream: false, + responseStream: false, + requestSerialize: (value: EmptyCartRequest) => Buffer.from(EmptyCartRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => EmptyCartRequest.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface CartServiceServer extends UntypedServiceImplementation { + addItem: handleUnaryCall; + getCart: handleUnaryCall; + emptyCart: handleUnaryCall; +} + +export interface CartServiceClient extends Client { + addItem(request: AddItemRequest, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall; + addItem( + request: AddItemRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + addItem( + request: AddItemRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + getCart(request: GetCartRequest, callback: (error: ServiceError | null, response: Cart) => void): ClientUnaryCall; + getCart( + request: GetCartRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Cart) => void, + ): ClientUnaryCall; + getCart( + request: GetCartRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Cart) => void, + ): ClientUnaryCall; + emptyCart( + request: EmptyCartRequest, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + emptyCart( + request: EmptyCartRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + emptyCart( + request: EmptyCartRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; +} + +export const CartServiceClient = makeGenericClientConstructor( + CartServiceService, + "oteldemo.CartService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): CartServiceClient; + service: typeof CartServiceService; + serviceName: string; +}; + +export type RecommendationServiceService = typeof RecommendationServiceService; +export const RecommendationServiceService = { + listRecommendations: { + path: "/oteldemo.RecommendationService/ListRecommendations", + requestStream: false, + responseStream: false, + requestSerialize: (value: ListRecommendationsRequest) => + Buffer.from(ListRecommendationsRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => ListRecommendationsRequest.decode(value), + responseSerialize: (value: ListRecommendationsResponse) => + Buffer.from(ListRecommendationsResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => ListRecommendationsResponse.decode(value), + }, +} as const; + +export interface RecommendationServiceServer extends UntypedServiceImplementation { + listRecommendations: handleUnaryCall; +} + +export interface RecommendationServiceClient extends Client { + listRecommendations( + request: ListRecommendationsRequest, + callback: (error: ServiceError | null, response: ListRecommendationsResponse) => void, + ): ClientUnaryCall; + listRecommendations( + request: ListRecommendationsRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: ListRecommendationsResponse) => void, + ): ClientUnaryCall; + listRecommendations( + request: ListRecommendationsRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: ListRecommendationsResponse) => void, + ): ClientUnaryCall; +} + +export const RecommendationServiceClient = makeGenericClientConstructor( + RecommendationServiceService, + "oteldemo.RecommendationService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): RecommendationServiceClient; + service: typeof RecommendationServiceService; + serviceName: string; +}; + +export type ProductCatalogServiceService = typeof ProductCatalogServiceService; +export const ProductCatalogServiceService = { + listProducts: { + path: "/oteldemo.ProductCatalogService/ListProducts", + requestStream: false, + responseStream: false, + requestSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + requestDeserialize: (value: Buffer) => Empty.decode(value), + responseSerialize: (value: ListProductsResponse) => Buffer.from(ListProductsResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => ListProductsResponse.decode(value), + }, + getProduct: { + path: "/oteldemo.ProductCatalogService/GetProduct", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetProductRequest) => Buffer.from(GetProductRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetProductRequest.decode(value), + responseSerialize: (value: Product) => Buffer.from(Product.encode(value).finish()), + responseDeserialize: (value: Buffer) => Product.decode(value), + }, + searchProducts: { + path: "/oteldemo.ProductCatalogService/SearchProducts", + requestStream: false, + responseStream: false, + requestSerialize: (value: SearchProductsRequest) => Buffer.from(SearchProductsRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => SearchProductsRequest.decode(value), + responseSerialize: (value: SearchProductsResponse) => Buffer.from(SearchProductsResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => SearchProductsResponse.decode(value), + }, +} as const; + +export interface ProductCatalogServiceServer extends UntypedServiceImplementation { + listProducts: handleUnaryCall; + getProduct: handleUnaryCall; + searchProducts: handleUnaryCall; +} + +export interface ProductCatalogServiceClient extends Client { + listProducts( + request: Empty, + callback: (error: ServiceError | null, response: ListProductsResponse) => void, + ): ClientUnaryCall; + listProducts( + request: Empty, + metadata: Metadata, + callback: (error: ServiceError | null, response: ListProductsResponse) => void, + ): ClientUnaryCall; + listProducts( + request: Empty, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: ListProductsResponse) => void, + ): ClientUnaryCall; + getProduct( + request: GetProductRequest, + callback: (error: ServiceError | null, response: Product) => void, + ): ClientUnaryCall; + getProduct( + request: GetProductRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Product) => void, + ): ClientUnaryCall; + getProduct( + request: GetProductRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Product) => void, + ): ClientUnaryCall; + searchProducts( + request: SearchProductsRequest, + callback: (error: ServiceError | null, response: SearchProductsResponse) => void, + ): ClientUnaryCall; + searchProducts( + request: SearchProductsRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: SearchProductsResponse) => void, + ): ClientUnaryCall; + searchProducts( + request: SearchProductsRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: SearchProductsResponse) => void, + ): ClientUnaryCall; +} + +export const ProductCatalogServiceClient = makeGenericClientConstructor( + ProductCatalogServiceService, + "oteldemo.ProductCatalogService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): ProductCatalogServiceClient; + service: typeof ProductCatalogServiceService; + serviceName: string; +}; + +export type ShippingServiceService = typeof ShippingServiceService; +export const ShippingServiceService = { + getQuote: { + path: "/oteldemo.ShippingService/GetQuote", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetQuoteRequest) => Buffer.from(GetQuoteRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetQuoteRequest.decode(value), + responseSerialize: (value: GetQuoteResponse) => Buffer.from(GetQuoteResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => GetQuoteResponse.decode(value), + }, + shipOrder: { + path: "/oteldemo.ShippingService/ShipOrder", + requestStream: false, + responseStream: false, + requestSerialize: (value: ShipOrderRequest) => Buffer.from(ShipOrderRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => ShipOrderRequest.decode(value), + responseSerialize: (value: ShipOrderResponse) => Buffer.from(ShipOrderResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => ShipOrderResponse.decode(value), + }, +} as const; + +export interface ShippingServiceServer extends UntypedServiceImplementation { + getQuote: handleUnaryCall; + shipOrder: handleUnaryCall; +} + +export interface ShippingServiceClient extends Client { + getQuote( + request: GetQuoteRequest, + callback: (error: ServiceError | null, response: GetQuoteResponse) => void, + ): ClientUnaryCall; + getQuote( + request: GetQuoteRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: GetQuoteResponse) => void, + ): ClientUnaryCall; + getQuote( + request: GetQuoteRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: GetQuoteResponse) => void, + ): ClientUnaryCall; + shipOrder( + request: ShipOrderRequest, + callback: (error: ServiceError | null, response: ShipOrderResponse) => void, + ): ClientUnaryCall; + shipOrder( + request: ShipOrderRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: ShipOrderResponse) => void, + ): ClientUnaryCall; + shipOrder( + request: ShipOrderRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: ShipOrderResponse) => void, + ): ClientUnaryCall; +} + +export const ShippingServiceClient = makeGenericClientConstructor( + ShippingServiceService, + "oteldemo.ShippingService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): ShippingServiceClient; + service: typeof ShippingServiceService; + serviceName: string; +}; + +export type CurrencyServiceService = typeof CurrencyServiceService; +export const CurrencyServiceService = { + getSupportedCurrencies: { + path: "/oteldemo.CurrencyService/GetSupportedCurrencies", + requestStream: false, + responseStream: false, + requestSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + requestDeserialize: (value: Buffer) => Empty.decode(value), + responseSerialize: (value: GetSupportedCurrenciesResponse) => + Buffer.from(GetSupportedCurrenciesResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => GetSupportedCurrenciesResponse.decode(value), + }, + convert: { + path: "/oteldemo.CurrencyService/Convert", + requestStream: false, + responseStream: false, + requestSerialize: (value: CurrencyConversionRequest) => + Buffer.from(CurrencyConversionRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => CurrencyConversionRequest.decode(value), + responseSerialize: (value: Money) => Buffer.from(Money.encode(value).finish()), + responseDeserialize: (value: Buffer) => Money.decode(value), + }, +} as const; + +export interface CurrencyServiceServer extends UntypedServiceImplementation { + getSupportedCurrencies: handleUnaryCall; + convert: handleUnaryCall; +} + +export interface CurrencyServiceClient extends Client { + getSupportedCurrencies( + request: Empty, + callback: (error: ServiceError | null, response: GetSupportedCurrenciesResponse) => void, + ): ClientUnaryCall; + getSupportedCurrencies( + request: Empty, + metadata: Metadata, + callback: (error: ServiceError | null, response: GetSupportedCurrenciesResponse) => void, + ): ClientUnaryCall; + getSupportedCurrencies( + request: Empty, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: GetSupportedCurrenciesResponse) => void, + ): ClientUnaryCall; + convert( + request: CurrencyConversionRequest, + callback: (error: ServiceError | null, response: Money) => void, + ): ClientUnaryCall; + convert( + request: CurrencyConversionRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Money) => void, + ): ClientUnaryCall; + convert( + request: CurrencyConversionRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Money) => void, + ): ClientUnaryCall; +} + +export const CurrencyServiceClient = makeGenericClientConstructor( + CurrencyServiceService, + "oteldemo.CurrencyService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): CurrencyServiceClient; + service: typeof CurrencyServiceService; + serviceName: string; +}; + +export type PaymentServiceService = typeof PaymentServiceService; +export const PaymentServiceService = { + charge: { + path: "/oteldemo.PaymentService/Charge", + requestStream: false, + responseStream: false, + requestSerialize: (value: ChargeRequest) => Buffer.from(ChargeRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => ChargeRequest.decode(value), + responseSerialize: (value: ChargeResponse) => Buffer.from(ChargeResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => ChargeResponse.decode(value), + }, +} as const; + +export interface PaymentServiceServer extends UntypedServiceImplementation { + charge: handleUnaryCall; +} + +export interface PaymentServiceClient extends Client { + charge( + request: ChargeRequest, + callback: (error: ServiceError | null, response: ChargeResponse) => void, + ): ClientUnaryCall; + charge( + request: ChargeRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: ChargeResponse) => void, + ): ClientUnaryCall; + charge( + request: ChargeRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: ChargeResponse) => void, + ): ClientUnaryCall; +} + +export const PaymentServiceClient = makeGenericClientConstructor( + PaymentServiceService, + "oteldemo.PaymentService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): PaymentServiceClient; + service: typeof PaymentServiceService; + serviceName: string; +}; + +export type EmailServiceService = typeof EmailServiceService; +export const EmailServiceService = { + sendOrderConfirmation: { + path: "/oteldemo.EmailService/SendOrderConfirmation", + requestStream: false, + responseStream: false, + requestSerialize: (value: SendOrderConfirmationRequest) => + Buffer.from(SendOrderConfirmationRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => SendOrderConfirmationRequest.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface EmailServiceServer extends UntypedServiceImplementation { + sendOrderConfirmation: handleUnaryCall; +} + +export interface EmailServiceClient extends Client { + sendOrderConfirmation( + request: SendOrderConfirmationRequest, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + sendOrderConfirmation( + request: SendOrderConfirmationRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + sendOrderConfirmation( + request: SendOrderConfirmationRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; +} + +export const EmailServiceClient = makeGenericClientConstructor( + EmailServiceService, + "oteldemo.EmailService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): EmailServiceClient; + service: typeof EmailServiceService; + serviceName: string; +}; + +export type CheckoutServiceService = typeof CheckoutServiceService; +export const CheckoutServiceService = { + placeOrder: { + path: "/oteldemo.CheckoutService/PlaceOrder", + requestStream: false, + responseStream: false, + requestSerialize: (value: PlaceOrderRequest) => Buffer.from(PlaceOrderRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => PlaceOrderRequest.decode(value), + responseSerialize: (value: PlaceOrderResponse) => Buffer.from(PlaceOrderResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => PlaceOrderResponse.decode(value), + }, +} as const; + +export interface CheckoutServiceServer extends UntypedServiceImplementation { + placeOrder: handleUnaryCall; +} + +export interface CheckoutServiceClient extends Client { + placeOrder( + request: PlaceOrderRequest, + callback: (error: ServiceError | null, response: PlaceOrderResponse) => void, + ): ClientUnaryCall; + placeOrder( + request: PlaceOrderRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: PlaceOrderResponse) => void, + ): ClientUnaryCall; + placeOrder( + request: PlaceOrderRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: PlaceOrderResponse) => void, + ): ClientUnaryCall; +} + +export const CheckoutServiceClient = makeGenericClientConstructor( + CheckoutServiceService, + "oteldemo.CheckoutService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): CheckoutServiceClient; + service: typeof CheckoutServiceService; + serviceName: string; +}; + +export type AdServiceService = typeof AdServiceService; +export const AdServiceService = { + getAds: { + path: "/oteldemo.AdService/GetAds", + requestStream: false, + responseStream: false, + requestSerialize: (value: AdRequest) => Buffer.from(AdRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => AdRequest.decode(value), + responseSerialize: (value: AdResponse) => Buffer.from(AdResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => AdResponse.decode(value), + }, +} as const; + +export interface AdServiceServer extends UntypedServiceImplementation { + getAds: handleUnaryCall; +} + +export interface AdServiceClient extends Client { + getAds(request: AdRequest, callback: (error: ServiceError | null, response: AdResponse) => void): ClientUnaryCall; + getAds( + request: AdRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: AdResponse) => void, + ): ClientUnaryCall; + getAds( + request: AdRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: AdResponse) => void, + ): ClientUnaryCall; +} + +export const AdServiceClient = makeGenericClientConstructor(AdServiceService, "oteldemo.AdService") as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): AdServiceClient; + service: typeof AdServiceService; + serviceName: string; +}; + +export type FeatureFlagServiceService = typeof FeatureFlagServiceService; +export const FeatureFlagServiceService = { + getFlag: { + path: "/oteldemo.FeatureFlagService/GetFlag", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetFlagRequest) => Buffer.from(GetFlagRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetFlagRequest.decode(value), + responseSerialize: (value: GetFlagResponse) => Buffer.from(GetFlagResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => GetFlagResponse.decode(value), + }, + createFlag: { + path: "/oteldemo.FeatureFlagService/CreateFlag", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreateFlagRequest) => Buffer.from(CreateFlagRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreateFlagRequest.decode(value), + responseSerialize: (value: CreateFlagResponse) => Buffer.from(CreateFlagResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateFlagResponse.decode(value), + }, + updateFlag: { + path: "/oteldemo.FeatureFlagService/UpdateFlag", + requestStream: false, + responseStream: false, + requestSerialize: (value: UpdateFlagRequest) => Buffer.from(UpdateFlagRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => UpdateFlagRequest.decode(value), + responseSerialize: (value: UpdateFlagResponse) => Buffer.from(UpdateFlagResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => UpdateFlagResponse.decode(value), + }, + listFlags: { + path: "/oteldemo.FeatureFlagService/ListFlags", + requestStream: false, + responseStream: false, + requestSerialize: (value: ListFlagsRequest) => Buffer.from(ListFlagsRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => ListFlagsRequest.decode(value), + responseSerialize: (value: ListFlagsResponse) => Buffer.from(ListFlagsResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => ListFlagsResponse.decode(value), + }, + deleteFlag: { + path: "/oteldemo.FeatureFlagService/DeleteFlag", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeleteFlagRequest) => Buffer.from(DeleteFlagRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeleteFlagRequest.decode(value), + responseSerialize: (value: DeleteFlagResponse) => Buffer.from(DeleteFlagResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => DeleteFlagResponse.decode(value), + }, +} as const; + +export interface FeatureFlagServiceServer extends UntypedServiceImplementation { + getFlag: handleUnaryCall; + createFlag: handleUnaryCall; + updateFlag: handleUnaryCall; + listFlags: handleUnaryCall; + deleteFlag: handleUnaryCall; +} + +export interface FeatureFlagServiceClient extends Client { + getFlag( + request: GetFlagRequest, + callback: (error: ServiceError | null, response: GetFlagResponse) => void, + ): ClientUnaryCall; + getFlag( + request: GetFlagRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: GetFlagResponse) => void, + ): ClientUnaryCall; + getFlag( + request: GetFlagRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: GetFlagResponse) => void, + ): ClientUnaryCall; + createFlag( + request: CreateFlagRequest, + callback: (error: ServiceError | null, response: CreateFlagResponse) => void, + ): ClientUnaryCall; + createFlag( + request: CreateFlagRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: CreateFlagResponse) => void, + ): ClientUnaryCall; + createFlag( + request: CreateFlagRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: CreateFlagResponse) => void, + ): ClientUnaryCall; + updateFlag( + request: UpdateFlagRequest, + callback: (error: ServiceError | null, response: UpdateFlagResponse) => void, + ): ClientUnaryCall; + updateFlag( + request: UpdateFlagRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: UpdateFlagResponse) => void, + ): ClientUnaryCall; + updateFlag( + request: UpdateFlagRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: UpdateFlagResponse) => void, + ): ClientUnaryCall; + listFlags( + request: ListFlagsRequest, + callback: (error: ServiceError | null, response: ListFlagsResponse) => void, + ): ClientUnaryCall; + listFlags( + request: ListFlagsRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: ListFlagsResponse) => void, + ): ClientUnaryCall; + listFlags( + request: ListFlagsRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: ListFlagsResponse) => void, + ): ClientUnaryCall; + deleteFlag( + request: DeleteFlagRequest, + callback: (error: ServiceError | null, response: DeleteFlagResponse) => void, + ): ClientUnaryCall; + deleteFlag( + request: DeleteFlagRequest, + metadata: Metadata, + callback: (error: ServiceError | null, response: DeleteFlagResponse) => void, + ): ClientUnaryCall; + deleteFlag( + request: DeleteFlagRequest, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: DeleteFlagResponse) => void, + ): ClientUnaryCall; +} + +export const FeatureFlagServiceClient = makeGenericClientConstructor( + FeatureFlagServiceService, + "oteldemo.FeatureFlagService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): FeatureFlagServiceClient; + service: typeof FeatureFlagServiceService; + serviceName: string; +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; + +export type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; +export type Exact = P extends Builtin ? P + : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; + +function longToNumber(long: Long): number { + if (long.gt(globalThis.Number.MAX_SAFE_INTEGER)) { + throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER"); + } + if (long.lt(globalThis.Number.MIN_SAFE_INTEGER)) { + throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER"); + } + return long.toNumber(); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/src/frontend/tsconfig.json b/src/frontend/tsconfig.json index 434562d893..2b46d8aacc 100755 --- a/src/frontend/tsconfig.json +++ b/src/frontend/tsconfig.json @@ -15,6 +15,6 @@ "jsx": "preserve", "incremental": true }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "protos/**/*.ts"], "exclude": ["node_modules"] } From d2a1c7f3034944b1bdb407f602bcfb38e0a4f910 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Tue, 28 Jan 2025 10:27:54 -0500 Subject: [PATCH 082/178] load product catalog periodically (#1919) * load product catalog periodically * load product catalog periodically * revert changed product name * fix indent * add products.json mount * remove COPY products.json --------- Co-authored-by: Juliano Costa --- .env | 1 + CHANGELOG.md | 2 ++ Makefile | 2 +- docker-compose.minimal.yml | 3 +++ docker-compose.yml | 3 +++ src/product-catalog/Dockerfile | 1 - src/product-catalog/main.go | 48 +++++++++++++++++++++++++++++----- 7 files changed, 52 insertions(+), 8 deletions(-) diff --git a/.env b/.env index fc20a17aaa..8ea47eeb19 100644 --- a/.env +++ b/.env @@ -107,6 +107,7 @@ PAYMENT_ADDR=payment:${PAYMENT_PORT} PAYMENT_DOCKERFILE=./src/payment/Dockerfile # Product Catalog Service +PRODUCT_CATALOG_RELOAD_INTERVAL=10 PRODUCT_CATALOG_PORT=3550 PRODUCT_CATALOG_ADDR=product-catalog:${PRODUCT_CATALOG_PORT} PRODUCT_CATALOG_DOCKERFILE=./src/product-catalog/Dockerfile diff --git a/CHANGELOG.md b/CHANGELOG.md index 7cdc4945da..072809fe81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -72,6 +72,8 @@ the release. ([#1897](https://github.com/open-telemetry/opentelemetry-demo/pull/1897)) * [frontend-proxy] rename frontendproxy to frontend-proxy ([#1910](https://github.com/open-telemetry/opentelemetry-demo/pull/1910)) +* [product-catalog] load product list on a periodic timer + ([#1919](https://github.com/open-telemetry/opentelemetry-demo/pull/1919)) * [flagd-ui] fixed eslint ignore comment with useCallback ([#1923](https://github.com/open-telemetry/opentelemetry-demo/pull/1923)) * [chore] Add memory for frontend-proxy, kafka, grafana, opensearch diff --git a/Makefile b/Makefile index 72e2bae46c..68b1b745ae 100644 --- a/Makefile +++ b/Makefile @@ -171,7 +171,7 @@ start: @echo "Go to http://localhost:8080/jaeger/ui for the Jaeger UI." @echo "Go to http://localhost:8080/grafana/ for the Grafana UI." @echo "Go to http://localhost:8080/loadgen/ for the Load Generator UI." - @echo "Go to http://localhost:8080/feature/ to to change feature flags." + @echo "Go to http://localhost:8080/feature/ to change feature flags." .PHONY: start-minimal start-minimal: diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index c05c266f6c..41aa68af20 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -399,10 +399,13 @@ services: environment: - FLAGD_HOST - PRODUCT_CATALOG_PORT + - PRODUCT_CATALOG_RELOAD_INTERVAL - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=product-catalog + volumes: + - ./src/product-catalog/products:/usr/src/app/products depends_on: otel-collector: condition: service_started diff --git a/docker-compose.yml b/docker-compose.yml index 8e965910a6..d6afa02a8c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -477,12 +477,15 @@ services: - "${PRODUCT_CATALOG_PORT}" environment: - PRODUCT_CATALOG_PORT + - PRODUCT_CATALOG_RELOAD_INTERVAL - FLAGD_HOST - FLAGD_PORT - OTEL_EXPORTER_OTLP_ENDPOINT - OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - OTEL_RESOURCE_ATTRIBUTES - OTEL_SERVICE_NAME=product-catalog + volumes: + - ./src/product-catalog/products:/usr/src/app/products depends_on: otel-collector: condition: service_started diff --git a/src/product-catalog/Dockerfile b/src/product-catalog/Dockerfile index 66fb63f0da..a13aafb9bb 100644 --- a/src/product-catalog/Dockerfile +++ b/src/product-catalog/Dockerfile @@ -20,7 +20,6 @@ FROM alpine AS release WORKDIR /usr/src/app/ -COPY ./src/product-catalog/products/ ./products/ COPY --from=builder /go/bin/product-catalog/ ./ EXPOSE ${PRODUCT_CATALOG_PORT} diff --git a/src/product-catalog/main.go b/src/product-catalog/main.go index ae6393d994..fbdfd4718e 100644 --- a/src/product-catalog/main.go +++ b/src/product-catalog/main.go @@ -13,6 +13,7 @@ import ( "net" "os" "os/signal" + "strconv" "strings" "sync" "syscall" @@ -53,14 +54,12 @@ var ( initResourcesOnce sync.Once ) +const DEFAULT_RELOAD_INTERVAL = 10 + func init() { log = logrus.New() - var err error - catalog, err = readProductFiles() - if err != nil { - log.Fatalf("Reading Product Files: %v", err) - os.Exit(1) - } + + loadProductCatalog() } func initResource() *sdkresource.Resource { @@ -178,6 +177,43 @@ type productCatalog struct { pb.UnimplementedProductCatalogServiceServer } +func loadProductCatalog() { + log.Info("Loading Product Catalog...") + var err error + catalog, err = readProductFiles() + if err != nil { + log.Fatalf("Error reading product files: %v\n", err) + os.Exit(1) + } + + // Default reload interval is 10 seconds + interval := DEFAULT_RELOAD_INTERVAL + si := os.Getenv("PRODUCT_CATALOG_RELOAD_INTERVAL") + if si != "" { + interval, _ = strconv.Atoi(si) + if interval <= 0 { + interval = DEFAULT_RELOAD_INTERVAL + } + } + log.Infof("Product Catalog reload interval: %d", interval) + + ticker := time.NewTicker(time.Duration(interval) * time.Second) + + go func() { + for { + select { + case <-ticker.C: + log.Info("Reloading Product Catalog...") + catalog, err = readProductFiles() + if err != nil { + log.Errorf("Error reading product files: %v", err) + continue + } + } + } + }() +} + func readProductFiles() ([]*pb.Product, error) { // find all .json files in the products directory From cd4fe72c16e8996eb0ceb8d3d70f64744d621ad2 Mon Sep 17 00:00:00 2001 From: Roger Coll Date: Tue, 28 Jan 2025 17:18:21 +0100 Subject: [PATCH 083/178] fix: do not use host DNS search domains for frontend-proxy Docker container (#1936) * fix: do not use host DNS search domains for frontend-proxy Docker container * chore: add changelog --------- Co-authored-by: Juliano Costa --- CHANGELOG.md | 2 ++ docker-compose.minimal.yml | 1 + docker-compose.yml | 1 + 3 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 072809fe81..1d73481afe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -78,6 +78,8 @@ the release. ([#1923](https://github.com/open-telemetry/opentelemetry-demo/pull/1923)) * [chore] Add memory for frontend-proxy, kafka, grafana, opensearch ([#1931](https://github.com/open-telemetry/opentelemetry-demo/pull/1931)) +* [frontendproxy] fix Docker compose DNS resolver with envoy 1.32 + ([#1936](https://github.com/open-telemetry/opentelemetry-demo/pull/1936)) * [chore] Generate protobuf code for Typescript service - Frontend ([#1954](https://github.com/open-telemetry/opentelemetry-demo/pull/1954)) diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 41aa68af20..0b50e6a490 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -286,6 +286,7 @@ services: condition: service_started grafana: condition: service_started + dns_search: "" # image-provider image-provider: diff --git a/docker-compose.yml b/docker-compose.yml index d6afa02a8c..5bb59ac14f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -362,6 +362,7 @@ services: condition: service_started flagd-ui: condition: service_started + dns_search: "" # image-provider image-provider: From c141feda97ec52cbb43eb3c2e3c07f23d39cf67f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:34:07 +0100 Subject: [PATCH 084/178] build(deps): bump the nuget-production-dependencies group across 2 directories with 5 updates (#1960) Bumps the nuget-production-dependencies group with 5 updates in the /src/cart/src directory: | Package | From | To | | --- | --- | --- | | [OpenTelemetry.Exporter.OpenTelemetryProtocol](https://github.com/open-telemetry/opentelemetry-dotnet) | `1.11.0` | `1.11.1` | | [OpenTelemetry.Extensions.Hosting](https://github.com/open-telemetry/opentelemetry-dotnet) | `1.11.0` | `1.11.1` | | [OpenTelemetry.Instrumentation.AspNetCore](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) | `1.10.1` | `1.11.0` | | [OpenTelemetry.Instrumentation.Http](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) | `1.10.0` | `1.11.0` | | [OpenTelemetry.Instrumentation.Runtime](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) | `1.10.0` | `1.11.0` | Bumps the nuget-production-dependencies group with 5 updates in the /src/cart/tests directory: | Package | From | To | | --- | --- | --- | | [OpenTelemetry.Exporter.OpenTelemetryProtocol](https://github.com/open-telemetry/opentelemetry-dotnet) | `1.11.0` | `1.11.1` | | [OpenTelemetry.Extensions.Hosting](https://github.com/open-telemetry/opentelemetry-dotnet) | `1.11.0` | `1.11.1` | | [OpenTelemetry.Instrumentation.AspNetCore](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) | `1.10.1` | `1.11.0` | | [OpenTelemetry.Instrumentation.Http](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) | `1.10.0` | `1.11.0` | | [OpenTelemetry.Instrumentation.Runtime](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) | `1.10.0` | `1.11.0` | Updates `OpenTelemetry.Exporter.OpenTelemetryProtocol` from 1.11.0 to 1.11.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet/compare/core-1.11.0...core-1.11.1) Updates `OpenTelemetry.Extensions.Hosting` from 1.11.0 to 1.11.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet/compare/core-1.11.0...core-1.11.1) Updates `OpenTelemetry.Instrumentation.AspNetCore` from 1.10.1 to 1.11.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/releases) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/compare/Instrumentation.AspNetCore-1.10.1...Instrumentation.Http-1.11.0) Updates `OpenTelemetry.Instrumentation.Http` from 1.10.0 to 1.11.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/releases) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/compare/Exporter.Geneva-1.10.0...Instrumentation.Http-1.11.0) Updates `OpenTelemetry.Instrumentation.Runtime` from 1.10.0 to 1.11.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/releases) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/compare/Exporter.Geneva-1.10.0...Instrumentation.Http-1.11.0) Updates `OpenTelemetry.Exporter.OpenTelemetryProtocol` from 1.11.0 to 1.11.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet/compare/core-1.11.0...core-1.11.1) Updates `OpenTelemetry.Extensions.Hosting` from 1.11.0 to 1.11.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet/compare/core-1.11.0...core-1.11.1) Updates `OpenTelemetry.Instrumentation.AspNetCore` from 1.10.1 to 1.11.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/releases) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/compare/Instrumentation.AspNetCore-1.10.1...Instrumentation.Http-1.11.0) Updates `OpenTelemetry.Instrumentation.Http` from 1.10.0 to 1.11.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/releases) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/compare/Exporter.Geneva-1.10.0...Instrumentation.Http-1.11.0) Updates `OpenTelemetry.Instrumentation.Runtime` from 1.10.0 to 1.11.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/releases) - [Commits](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/compare/Exporter.Geneva-1.10.0...Instrumentation.Http-1.11.0) --- updated-dependencies: - dependency-name: OpenTelemetry.Exporter.OpenTelemetryProtocol dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: OpenTelemetry.Extensions.Hosting dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: OpenTelemetry.Instrumentation.AspNetCore dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: OpenTelemetry.Instrumentation.Http dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: OpenTelemetry.Instrumentation.Runtime dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: OpenTelemetry.Exporter.OpenTelemetryProtocol dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: OpenTelemetry.Extensions.Hosting dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: OpenTelemetry.Instrumentation.AspNetCore dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: OpenTelemetry.Instrumentation.Http dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: OpenTelemetry.Instrumentation.Runtime dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/cart/src/cart.csproj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cart/src/cart.csproj b/src/cart/src/cart.csproj index 7b761e71c8..fbdab6c588 100644 --- a/src/cart/src/cart.csproj +++ b/src/cart/src/cart.csproj @@ -17,14 +17,14 @@ - - - + + + - + - + From da1251f16ce81de61600b5d3b121f32f13469fd8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:45:00 +0100 Subject: [PATCH 085/178] build(deps): bump the composer-production-dependencies group across 1 directory with 2 updates (#1963) Updates the requirements on [open-telemetry/api](https://github.com/opentelemetry-php/api) and [open-telemetry/sdk](https://github.com/opentelemetry-php/sdk) to permit the latest version. Updates `open-telemetry/api` to 1.2.1 - [Release notes](https://github.com/opentelemetry-php/api/releases) - [Commits](https://github.com/opentelemetry-php/api/compare/1.2.0...1.2.1) Updates `open-telemetry/sdk` to 1.2.1 - [Release notes](https://github.com/opentelemetry-php/sdk/releases) - [Commits](https://github.com/opentelemetry-php/sdk/compare/1.2.0...1.2.1) --- updated-dependencies: - dependency-name: open-telemetry/api dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: open-telemetry/sdk dependency-type: direct:production dependency-group: composer-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/quote/composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/quote/composer.json b/src/quote/composer.json index 8e19ee3753..5487c302c3 100644 --- a/src/quote/composer.json +++ b/src/quote/composer.json @@ -7,8 +7,8 @@ "ext-json": "*", "ext-pcntl": "*", "monolog/monolog": "3.8.1", - "open-telemetry/api": "1.2.0", - "open-telemetry/sdk": "1.2.0", + "open-telemetry/api": "1.2.1", + "open-telemetry/sdk": "1.2.1", "open-telemetry/exporter-otlp": "1.2.0", "open-telemetry/opentelemetry-auto-slim": "1.0.7", "open-telemetry/detector-container": "1.0.0", From d40e39f447f2cc9c6bf9554a9fc7147c2e9cab7b Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Tue, 28 Jan 2025 14:29:47 -0500 Subject: [PATCH 086/178] use Grpc.Tools version 2.68.1 (#1969) --- src/accounting/Accounting.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/accounting/Accounting.csproj b/src/accounting/Accounting.csproj index 91356fa873..a95098ad49 100644 --- a/src/accounting/Accounting.csproj +++ b/src/accounting/Accounting.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive From ab6e4370505c8357f801786660d4a1f1186ff65a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 22:30:43 +0100 Subject: [PATCH 087/178] build(deps-dev): bump the npm-development-dependencies group across 2 directories with 9 updates (#1968) * build(deps-dev): bump the npm-development-dependencies group across 2 directories with 9 updates Bumps the npm-development-dependencies group with 7 updates in the /src/flagd-ui directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.10.7` | `22.12.0` | | [eslint](https://github.com/eslint/eslint) | `9.18.0` | `9.19.0` | | [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.1.5` | `15.1.6` | | [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) | `0.6.10` | `0.6.11` | | [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `3.4.17` | `4.0.0` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.21.0` | `8.22.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.21.0` | `8.22.0` | Bumps the npm-development-dependencies group with 7 updates in the /src/frontend directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.10.7` | `22.12.0` | | [eslint](https://github.com/eslint/eslint) | `9.18.0` | `9.19.0` | | [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.1.5` | `15.1.6` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.21.0` | `8.22.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.21.0` | `8.22.0` | | [openapi-typescript](https://github.com/openapi-ts/openapi-typescript/tree/HEAD/packages/openapi-typescript) | `7.5.2` | `7.6.0` | | [ts-proto](https://github.com/stephenh/ts-proto) | `1.181.1` | `2.6.1` | Updates `@types/node` from 22.10.7 to 22.12.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 9.18.0 to 9.19.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.18.0...v9.19.0) Updates `eslint-config-next` from 15.1.5 to 15.1.6 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.1.6/packages/eslint-config-next) Updates `prettier-plugin-tailwindcss` from 0.6.10 to 0.6.11 - [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.10...v0.6.11) Updates `tailwindcss` from 3.4.17 to 4.0.0 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/next/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.0.0/packages/tailwindcss) Updates `@typescript-eslint/eslint-plugin` from 8.21.0 to 8.22.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.21.0 to 8.22.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/parser) Updates `@types/node` from 22.10.7 to 22.12.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 9.18.0 to 9.19.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.18.0...v9.19.0) Updates `eslint-config-next` from 15.1.5 to 15.1.6 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.1.6/packages/eslint-config-next) Updates `@typescript-eslint/eslint-plugin` from 8.21.0 to 8.22.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.21.0 to 8.22.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/parser) Updates `openapi-typescript` from 7.5.2 to 7.6.0 - [Release notes](https://github.com/openapi-ts/openapi-typescript/releases) - [Changelog](https://github.com/openapi-ts/openapi-typescript/blob/main/packages/openapi-typescript/CHANGELOG.md) - [Commits](https://github.com/openapi-ts/openapi-typescript/commits/openapi-typescript@7.6.0/packages/openapi-typescript) Updates `ts-proto` from 1.181.1 to 2.6.1 - [Release notes](https://github.com/stephenh/ts-proto/releases) - [Changelog](https://github.com/stephenh/ts-proto/blob/main/CHANGELOG.md) - [Commits](https://github.com/stephenh/ts-proto/compare/v1.181.1...v2.6.1) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: prettier-plugin-tailwindcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: tailwindcss dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: openapi-typescript dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: ts-proto dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] * chore: update protobuf Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add required changes to bump to work --------- Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa --- src/flagd-ui/next.config.mjs | 3 - src/flagd-ui/package-lock.json | 1603 ++++++----------- src/flagd-ui/package.json | 7 +- src/flagd-ui/postcss.config.mjs | 2 +- src/flagd-ui/src/app/globals.css | 2 + .../components/CartDropdown/CartDropdown.tsx | 2 +- src/frontend/next.config.js | 1 - src/frontend/package-lock.json | 216 +-- src/frontend/package.json | 15 +- src/frontend/protos/demo.ts | 743 ++++---- 10 files changed, 1140 insertions(+), 1454 deletions(-) diff --git a/src/flagd-ui/next.config.mjs b/src/flagd-ui/next.config.mjs index 85f1012825..f51a491f06 100644 --- a/src/flagd-ui/next.config.mjs +++ b/src/flagd-ui/next.config.mjs @@ -1,8 +1,5 @@ /** @type {import('next').NextConfig} */ const nextConfig = { - experimental: { - instrumentationHook: true, - }, basePath: "/feature", }; diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 8a0e4648b5..7c65d38708 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -8,6 +8,7 @@ "name": "flagd-ui", "version": "0.1.0", "dependencies": { + "@tailwindcss/postcss": "^4.0.0", "@vercel/otel": "^1.10.0", "ajv": "^8.17.1", "next": "15.1.4", @@ -21,11 +22,11 @@ "@types/react-dom": "^19.0.3", "autoprefixer": "^10.4.20", "eslint": "^9", - "eslint-config-next": "15.1.5", + "eslint-config-next": "15.1.6", "postcss": "^8.5.1", "prettier": "^3.4.2", - "prettier-plugin-tailwindcss": "^0.6.10", - "tailwindcss": "^3.4.17", + "prettier-plugin-tailwindcss": "^0.6.11", + "tailwindcss": "^4.0.0", "typescript": "^5" } }, @@ -33,7 +34,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -147,9 +148,9 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", - "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", + "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", "dev": true, "license": "MIT", "engines": { @@ -582,107 +583,15 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, "node_modules/@next/env": { "version": "15.1.4", "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.4.tgz", "integrity": "sha512-2fZ5YZjedi5AGaeoaC0B20zGntEHRhi2SdWcu61i48BllODcAmmtj8n7YarSPt4DaTsJaBFdxQAVEVzgmx2Zpw==" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.1.5", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.5.tgz", - "integrity": "sha512-3cCrXBybsqe94UxD6DBQCYCCiP9YohBMgZ5IzzPYHmPzj8oqNlhBii5b6o1HDDaRHdz2pVnSsAROCtrczy8O0g==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.6.tgz", + "integrity": "sha512-+slMxhTgILUntZDGNgsKEYHUvpn72WP1YTlkmEhS51vnVd7S9jEEy0n9YAMcI21vUG4akTw9voWH02lrClt/yw==", "dev": true, "license": "MIT", "dependencies": { @@ -1112,16 +1021,6 @@ "node": ">=14" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -1147,6 +1046,229 @@ "tslib": "^2.8.0" } }, + "node_modules/@tailwindcss/node": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.0.tgz", + "integrity": "sha512-tfG2uBvo6j6kDIPmntxwXggCOZAt7SkpAXJ6pTIYirNdk5FBqh/CZZ9BZPpgcl/tNFLs6zc4yghM76sqiELG9g==", + "license": "MIT", + "dependencies": { + "enhanced-resolve": "^5.18.0", + "jiti": "^2.4.2", + "tailwindcss": "4.0.0" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.0.tgz", + "integrity": "sha512-W3FjpJgy4VV1JiL7iBYDf2n/WkeDg1Il+0Q7eWnqPyvkPPCo/Mbwc5BiaT7dfBNV6tQKAhVE34rU5xl8pSl50w==", + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.0.0", + "@tailwindcss/oxide-darwin-arm64": "4.0.0", + "@tailwindcss/oxide-darwin-x64": "4.0.0", + "@tailwindcss/oxide-freebsd-x64": "4.0.0", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.0", + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.0", + "@tailwindcss/oxide-linux-arm64-musl": "4.0.0", + "@tailwindcss/oxide-linux-x64-gnu": "4.0.0", + "@tailwindcss/oxide-linux-x64-musl": "4.0.0", + "@tailwindcss/oxide-win32-arm64-msvc": "4.0.0", + "@tailwindcss/oxide-win32-x64-msvc": "4.0.0" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.0.tgz", + "integrity": "sha512-EAhjU0+FIdyGPR+7MbBWubLLPtmOu+p7c2egTTFBRk/n//zYjNvVK0WhcBK5Y7oUB5mo4EjA2mCbY7dcEMWSRw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.0.tgz", + "integrity": "sha512-hdz4xnSWS11cIp+7ye+3dGHqs0X33z+BXXTtgPOguDWVa+TdXUzwxonklSzf5wlJFuot3dv5eWzhlNai0oYYQg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.0.tgz", + "integrity": "sha512-+dOUUaXTkPKKhtUI9QtVaYg+MpmLh2CN0dHohiYXaBirEyPMkjaT0zbRgzQlNnQWjCVVXPQluIEb0OMEjSTH+Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.0.tgz", + "integrity": "sha512-CJhGDhxnrmu4SwyC62fA+wP24MhA/TZlIhRHqg1kRuIHoGoVR2uSSm1qxTxU37tSSZj8Up0q6jsBJCAP4k7rgQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.0.tgz", + "integrity": "sha512-Wy7Av0xzXfY2ujZBcYy4+7GQm25/J1iHvlQU2CfwdDCuPWfIjYzR6kggz+uVdSJyKV2s64znchBxRE8kV4uXSA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.0.tgz", + "integrity": "sha512-srwBo2l6pvM0swBntc1ucuhGsfFOLkqPRFQ3dWARRTfSkL1U9nAsob2MKc/n47Eva/W9pZZgMOuf7rDw8pK1Ew==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.0.tgz", + "integrity": "sha512-abhusswkduYWuezkBmgo0K0/erGq3M4Se5xP0fhc/0dKs0X/rJUYYCFWntHb3IGh3aVzdQ0SXJs93P76DbUqtw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.0.tgz", + "integrity": "sha512-hGtRYIUEx377/HlU49+jvVKKwU1MDSKYSMMs0JFO2Wp7LGxk5+0j5+RBk9NFnmp/lbp32yPTgIOO5m1BmDq36A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.0.tgz", + "integrity": "sha512-7xgQgSAThs0I14VAgmxpJnK6XFSZBxHMGoDXkLyYkEnu+8WRQMbCP93dkCUn2PIv+Q+JulRgc00PJ09uORSLXQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.0.tgz", + "integrity": "sha512-qEcgTIPcWY5ZE7f6VxQ/JPrSFMcehzVIlZj7sGE3mVd5YWreAT+Fl1vSP8q2pjnWXn0avZG3Iw7a2hJQAm+fTQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.0.tgz", + "integrity": "sha512-bqT0AY8RXb8GMDy28JtngvqaOSB2YixbLPLvUo6I6lkvvUwA6Eqh2Tj60e2Lh7O/k083f8tYiB0WEK4wmTI7Jg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.0.tgz", + "integrity": "sha512-lI2bPk4TvwavHdehjr5WiC6HnZ59hacM6ySEo4RM/H7tsjWd8JpqiNW9ThH7rO/yKtrn4mGBoXshpvn8clXjPg==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "^4.0.0", + "@tailwindcss/oxide": "^4.0.0", + "lightningcss": "^1.29.1", + "postcss": "^8.4.41", + "tailwindcss": "4.0.0" + } + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -1172,9 +1294,9 @@ } }, "node_modules/@types/node": { - "version": "22.10.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", - "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", + "version": "22.12.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", + "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", "dev": true, "license": "MIT", "dependencies": { @@ -1207,17 +1329,17 @@ "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz", - "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.22.0.tgz", + "integrity": "sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/type-utils": "8.21.0", - "@typescript-eslint/utils": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/type-utils": "8.22.0", + "@typescript-eslint/utils": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1237,16 +1359,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz", - "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.22.0.tgz", + "integrity": "sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/typescript-estree": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/typescript-estree": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", "debug": "^4.3.4" }, "engines": { @@ -1262,14 +1384,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz", - "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.22.0.tgz", + "integrity": "sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0" + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1280,14 +1402,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz", - "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.22.0.tgz", + "integrity": "sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.21.0", - "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/typescript-estree": "8.22.0", + "@typescript-eslint/utils": "8.22.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.0" }, @@ -1304,9 +1426,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz", - "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.22.0.tgz", + "integrity": "sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==", "dev": true, "license": "MIT", "engines": { @@ -1318,14 +1440,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz", - "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.22.0.tgz", + "integrity": "sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -1371,16 +1493,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz", - "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.22.0.tgz", + "integrity": "sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/typescript-estree": "8.21.0" + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/typescript-estree": "8.22.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1395,13 +1517,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz", - "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.22.0.tgz", + "integrity": "sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/types": "8.22.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -1488,15 +1610,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1512,31 +1625,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1784,18 +1872,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1918,15 +1994,6 @@ "node": ">=6" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001651", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", @@ -1962,48 +2029,12 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz", - "integrity": "sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g==", - "license": "MIT", - "peer": true + "node_modules/cjs-module-lexer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz", + "integrity": "sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g==", + "license": "MIT", + "peer": true }, "node_modules/client-only": { "version": "0.0.1", @@ -2051,15 +2082,6 @@ "simple-swizzle": "^0.2.2" } }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2080,18 +2102,6 @@ "node": ">= 8" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -2220,18 +2230,6 @@ "node": ">=8" } }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -2258,12 +2256,6 @@ "node": ">= 0.4" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, "node_modules/electron-to-chromium": { "version": "1.5.13", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", @@ -2281,7 +2273,6 @@ "version": "5.18.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -2476,9 +2467,9 @@ } }, "node_modules/eslint": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", - "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", + "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", "dev": true, "license": "MIT", "dependencies": { @@ -2487,7 +2478,7 @@ "@eslint/config-array": "^0.19.0", "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.18.0", + "@eslint/js": "9.19.0", "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -2536,13 +2527,13 @@ } }, "node_modules/eslint-config-next": { - "version": "15.1.5", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.5.tgz", - "integrity": "sha512-Awm7iUJY8toOR+fU8yTxZnA7/LyOGUGOd6cENCuDfJ3gucHOSmLdOSGJ4u+nlrs8p5qXemua42bZmq+uOzxl6Q==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.6.tgz", + "integrity": "sha512-Wd1uy6y7nBbXUSg9QAuQ+xYEKli5CgUhLjz1QHW11jLDis5vK5XB3PemL6jEmy7HrdhaRFDz+GTZ/3FoH+EUjg==", "dev": true, "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.1.5", + "@next/eslint-plugin-next": "15.1.6", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -3078,22 +3069,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -3108,20 +3083,6 @@ "url": "https://github.com/sponsors/rawify" } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -3225,28 +3186,6 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -3259,30 +3198,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/globals": { "version": "14.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", @@ -3326,8 +3241,7 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graphemer": { "version": "1.4.0", @@ -3538,18 +3452,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-boolean-object": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", @@ -3658,15 +3560,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-generator-function": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", @@ -3899,31 +3792,13 @@ "node": ">= 0.4" } }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "dev": true, + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "license": "MIT", "bin": { - "jiti": "bin/jiti.js" + "jiti": "lib/jiti-cli.mjs" } }, "node_modules/js-tokens": { @@ -4028,104 +3903,320 @@ "node": ">= 0.8.0" } }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, + "node_modules/lightningcss": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.1.tgz", + "integrity": "sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^1.0.3" + }, "engines": { - "node": ">=14" + "node": ">= 12.0.0" }, "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" + "type": "opencollective", + "url": "https://opencollective.com/parcel" }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.29.1", + "lightningcss-darwin-x64": "1.29.1", + "lightningcss-freebsd-x64": "1.29.1", + "lightningcss-linux-arm-gnueabihf": "1.29.1", + "lightningcss-linux-arm64-gnu": "1.29.1", + "lightningcss-linux-arm64-musl": "1.29.1", + "lightningcss-linux-x64-gnu": "1.29.1", + "lightningcss-linux-x64-musl": "1.29.1", + "lightningcss-win32-arm64-msvc": "1.29.1", + "lightningcss-win32-x64-msvc": "1.29.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.1.tgz", + "integrity": "sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10" + "node": ">= 12.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "node_modules/lightningcss-darwin-x64": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.1.tgz", + "integrity": "sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" }, - "bin": { - "loose-envify": "cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.1.tgz", + "integrity": "sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">= 0.4" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.1.tgz", + "integrity": "sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 8" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.1.tgz", + "integrity": "sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8.6" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.1.tgz", + "integrity": "sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "*" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.1.tgz", + "integrity": "sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.1.tgz", + "integrity": "sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.1.tgz", + "integrity": "sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.1.tgz", + "integrity": "sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, "node_modules/minimist": { @@ -4137,15 +4228,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/module-details-from-path": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", @@ -4158,17 +4240,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "node_modules/nanoid": { "version": "3.3.8", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", @@ -4280,15 +4351,6 @@ "dev": true, "license": "MIT" }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", @@ -4308,15 +4370,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", @@ -4521,22 +4574,6 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -4554,24 +4591,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -4585,7 +4604,6 @@ "version": "8.5.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4610,115 +4628,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -4750,9 +4659,9 @@ } }, "node_modules/prettier-plugin-tailwindcss": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.10.tgz", - "integrity": "sha512-ndj2WLDaMzACnr1gAYZiZZLs5ZdOeBYgOsbBmHj3nvW/6q8h8PymsXiEnKvj/9qgCCAoHyvLOisoQdIcsDvIgw==", + "version": "0.6.11", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.11.tgz", + "integrity": "sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==", "dev": true, "license": "MIT", "engines": { @@ -4893,27 +4802,6 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -5299,18 +5187,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -5342,71 +5218,6 @@ "node": ">=10.0.0" } }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/string.prototype.includes": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", @@ -5514,31 +5325,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -5582,28 +5368,6 @@ } } }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5628,72 +5392,19 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", - "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.6", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.0.tgz", + "integrity": "sha512-ULRPI3A+e39T7pSaf1xoi58AqqJxVCLg8F/uM5A3FadUbnyDTgltVnXJvdkTjwCOGA6NazqHVcwPJC5h2vRYVQ==", + "license": "MIT" }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, "engines": { "node": ">=6" } }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5718,12 +5429,6 @@ "typescript": ">=4.8.4" } }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -5911,12 +5616,6 @@ "punycode": "^2.1.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -6025,112 +5724,6 @@ "node": ">=0.10.0" } }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/yaml": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", - "dev": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 1a1820d34c..86b1f284ba 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -9,6 +9,7 @@ "lint": "next lint" }, "dependencies": { + "@tailwindcss/postcss": "^4.0.0", "@vercel/otel": "^1.10.0", "ajv": "^8.17.1", "next": "15.1.4", @@ -22,11 +23,11 @@ "@types/react-dom": "^19.0.3", "autoprefixer": "^10.4.20", "eslint": "^9", - "eslint-config-next": "15.1.5", + "eslint-config-next": "15.1.6", "postcss": "^8.5.1", "prettier": "^3.4.2", - "prettier-plugin-tailwindcss": "^0.6.10", - "tailwindcss": "^3.4.17", + "prettier-plugin-tailwindcss": "^0.6.11", + "tailwindcss": "^4.0.0", "typescript": "^5" } } diff --git a/src/flagd-ui/postcss.config.mjs b/src/flagd-ui/postcss.config.mjs index 1a69fd2a45..79bcf135dc 100644 --- a/src/flagd-ui/postcss.config.mjs +++ b/src/flagd-ui/postcss.config.mjs @@ -1,7 +1,7 @@ /** @type {import('postcss-load-config').Config} */ const config = { plugins: { - tailwindcss: {}, + "@tailwindcss/postcss": {}, }, }; diff --git a/src/flagd-ui/src/app/globals.css b/src/flagd-ui/src/app/globals.css index b5c61c9567..599ab3da1f 100644 --- a/src/flagd-ui/src/app/globals.css +++ b/src/flagd-ui/src/app/globals.css @@ -1,3 +1,5 @@ +@import "tailwindcss"; + @tailwind base; @tailwind components; @tailwind utilities; diff --git a/src/frontend/components/CartDropdown/CartDropdown.tsx b/src/frontend/components/CartDropdown/CartDropdown.tsx index 09b7d4407c..318fd5b07d 100644 --- a/src/frontend/components/CartDropdown/CartDropdown.tsx +++ b/src/frontend/components/CartDropdown/CartDropdown.tsx @@ -30,7 +30,7 @@ const CartDropdown = ({ productList, isOpen, onClose }: IProps) => { // Unbind the event listener on clean up document.removeEventListener('mousedown', handleClickOutside); }; - }, [ref]); + }, [ref, onClose]); return isOpen ? ( diff --git a/src/frontend/next.config.js b/src/frontend/next.config.js index ce28af82e0..49de52a68c 100755 --- a/src/frontend/next.config.js +++ b/src/frontend/next.config.js @@ -29,7 +29,6 @@ const { const nextConfig = { reactStrictMode: true, output: 'standalone', - swcMinify: true, compiler: { styledComponents: true, }, diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index a4b9eab4be..7e6bb6e075 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -8,6 +8,7 @@ "name": "frontend", "version": "0.1.0", "dependencies": { + "@bufbuild/protobuf": "^2.2.3", "@grpc/grpc-js": "1.12.5", "@openfeature/flagd-provider": "0.13.2", "@openfeature/flagd-web-provider": "0.7.2", @@ -41,23 +42,23 @@ "react-dom": "19.0.0", "sharp": "0.33.5", "styled-components": "6.1.14", - "ts-proto": "1.181.1", "uuid": "11.0.5" }, "devDependencies": { - "@types/node": "22.10.7", + "@types/node": "22.12.0", "@types/react": "19.0.7", "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.21.0", - "@typescript-eslint/parser": "8.21.0", + "@typescript-eslint/eslint-plugin": "8.22.0", + "@typescript-eslint/parser": "8.22.0", "cypress": "14.0.0", - "eslint": "9.18.0", - "eslint-config-next": "15.1.5", + "eslint": "9.19.0", + "eslint-config-next": "15.1.6", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", - "openapi-typescript": "7.5.2", + "openapi-typescript": "7.6.0", + "ts-proto": "2.6.1", "typescript": "5.7.3" } }, @@ -87,9 +88,9 @@ } }, "node_modules/@bufbuild/protobuf": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.0.tgz", - "integrity": "sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.2.3.tgz", + "integrity": "sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==", "license": "(Apache-2.0 AND BSD-3-Clause)" }, "node_modules/@colors/colors": { @@ -103,25 +104,6 @@ "node": ">=0.1.90" } }, - "node_modules/@connectrpc/connect": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@connectrpc/connect/-/connect-1.4.0.tgz", - "integrity": "sha512-vZeOkKaAjyV4+RH3+rJZIfDFJAfr+7fyYr6sLDKbYX3uuTVszhFe9/YKf5DNqrDb5cKdKVlYkGn6DTDqMitAnA==", - "license": "Apache-2.0", - "peerDependencies": { - "@bufbuild/protobuf": "^1.4.2" - } - }, - "node_modules/@connectrpc/connect-web": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@connectrpc/connect-web/-/connect-web-1.4.0.tgz", - "integrity": "sha512-13aO4psFbbm7rdOFGV0De2Za64DY/acMspgloDlcOKzLPPs0yZkhp1OOzAQeiAIr7BM/VOHIA3p8mF0inxCYTA==", - "license": "Apache-2.0", - "peerDependencies": { - "@bufbuild/protobuf": "^1.4.2", - "@connectrpc/connect": "1.4.0" - } - }, "node_modules/@cypress/request": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.7.tgz", @@ -368,9 +350,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", - "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", + "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", "dev": true, "license": "MIT", "engines": { @@ -876,9 +858,9 @@ "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.1.5", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.5.tgz", - "integrity": "sha512-3cCrXBybsqe94UxD6DBQCYCCiP9YohBMgZ5IzzPYHmPzj8oqNlhBii5b6o1HDDaRHdz2pVnSsAROCtrczy8O0g==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.6.tgz", + "integrity": "sha512-+slMxhTgILUntZDGNgsKEYHUvpn72WP1YTlkmEhS51vnVd7S9jEEy0n9YAMcI21vUG4akTw9voWH02lrClt/yw==", "dev": true, "license": "MIT", "dependencies": { @@ -1142,6 +1124,31 @@ "@openfeature/web-sdk": "^1.0.0" } }, + "node_modules/@openfeature/flagd-web-provider/node_modules/@bufbuild/protobuf": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.0.tgz", + "integrity": "sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==", + "license": "(Apache-2.0 AND BSD-3-Clause)" + }, + "node_modules/@openfeature/flagd-web-provider/node_modules/@connectrpc/connect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@connectrpc/connect/-/connect-1.4.0.tgz", + "integrity": "sha512-vZeOkKaAjyV4+RH3+rJZIfDFJAfr+7fyYr6sLDKbYX3uuTVszhFe9/YKf5DNqrDb5cKdKVlYkGn6DTDqMitAnA==", + "license": "Apache-2.0", + "peerDependencies": { + "@bufbuild/protobuf": "^1.4.2" + } + }, + "node_modules/@openfeature/flagd-web-provider/node_modules/@connectrpc/connect-web": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@connectrpc/connect-web/-/connect-web-1.4.0.tgz", + "integrity": "sha512-13aO4psFbbm7rdOFGV0De2Za64DY/acMspgloDlcOKzLPPs0yZkhp1OOzAQeiAIr7BM/VOHIA3p8mF0inxCYTA==", + "license": "Apache-2.0", + "peerDependencies": { + "@bufbuild/protobuf": "^1.4.2", + "@connectrpc/connect": "1.4.0" + } + }, "node_modules/@openfeature/react-sdk": { "version": "0.4.10", "resolved": "https://registry.npmjs.org/@openfeature/react-sdk/-/react-sdk-0.4.10.tgz", @@ -2905,9 +2912,9 @@ } }, "node_modules/@types/node": { - "version": "22.10.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", - "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", + "version": "22.12.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", + "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -3019,17 +3026,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz", - "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.22.0.tgz", + "integrity": "sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/type-utils": "8.21.0", - "@typescript-eslint/utils": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/type-utils": "8.22.0", + "@typescript-eslint/utils": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3049,16 +3056,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz", - "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.22.0.tgz", + "integrity": "sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/typescript-estree": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/typescript-estree": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", "debug": "^4.3.4" }, "engines": { @@ -3074,14 +3081,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz", - "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.22.0.tgz", + "integrity": "sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0" + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3092,14 +3099,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz", - "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.22.0.tgz", + "integrity": "sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.21.0", - "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/typescript-estree": "8.22.0", + "@typescript-eslint/utils": "8.22.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.0" }, @@ -3116,9 +3123,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz", - "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.22.0.tgz", + "integrity": "sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==", "dev": true, "license": "MIT", "engines": { @@ -3130,14 +3137,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz", - "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.22.0.tgz", + "integrity": "sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3170,16 +3177,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz", - "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.22.0.tgz", + "integrity": "sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/typescript-estree": "8.21.0" + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/typescript-estree": "8.22.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3194,13 +3201,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz", - "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.22.0.tgz", + "integrity": "sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/types": "8.22.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -3896,6 +3903,7 @@ "version": "2.1.13", "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz", "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==", + "dev": true, "license": "MIT", "engines": { "node": ">=12.13" @@ -4483,6 +4491,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.8.tgz", "integrity": "sha512-iVKnUtYfGrYcW1ZAlfR/F59cUVL8QIhWoBJoSjkkdua/dkWIgjZfiLMeTjiB06X0ZLkQ0M2C1VbUj/CxkIf1zg==", + "dev": true, "license": "MIT", "dependencies": { "detect-libc": "^1.0.3" @@ -4492,6 +4501,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, "license": "Apache-2.0", "bin": { "detect-libc": "bin/detect-libc.js" @@ -4765,9 +4775,9 @@ } }, "node_modules/eslint": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", - "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", + "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", "dev": true, "license": "MIT", "dependencies": { @@ -4776,7 +4786,7 @@ "@eslint/config-array": "^0.19.0", "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.18.0", + "@eslint/js": "9.19.0", "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -4825,13 +4835,13 @@ } }, "node_modules/eslint-config-next": { - "version": "15.1.5", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.5.tgz", - "integrity": "sha512-Awm7iUJY8toOR+fU8yTxZnA7/LyOGUGOd6cENCuDfJ3gucHOSmLdOSGJ4u+nlrs8p5qXemua42bZmq+uOzxl6Q==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.6.tgz", + "integrity": "sha512-Wd1uy6y7nBbXUSg9QAuQ+xYEKli5CgUhLjz1QHW11jLDis5vK5XB3PemL6jEmy7HrdhaRFDz+GTZ/3FoH+EUjg==", "dev": true, "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.1.5", + "@next/eslint-plugin-next": "15.1.6", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -7455,13 +7465,13 @@ } }, "node_modules/openapi-typescript": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.5.2.tgz", - "integrity": "sha512-W/QXuQz0Fa3bGY6LKoqTCgrSX+xI/ST+E5RXo2WBmp3WwgXCWKDJPHv5GZmElF4yLCccnqYsakBDOJikHZYGRw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.6.0.tgz", + "integrity": "sha512-p/xxKcWFR7aZDOAdnqYBQ1NdNyWdine+gHKHKvjxGXmlq8JT1G9+SkY8I5csKaktLHMbDDH6ZDeWQpydwBHa+Q==", "dev": true, "license": "MIT", "dependencies": { - "@redocly/openapi-core": "^1.27.0", + "@redocly/openapi-core": "^1.27.2", "ansi-colors": "^4.1.3", "change-case": "^5.4.4", "parse-json": "^8.1.0", @@ -8991,34 +9001,36 @@ "version": "6.9.0", "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.9.0.tgz", "integrity": "sha512-roe6W6MeZmCjRmppyfOURklO5tQFQ6Sg7swURKkwYJvV7dbGCrK28um5+51iW3twdPRKtwarqFAVMU6G1mvnuQ==", + "dev": true, "license": "Apache-2.0", "dependencies": { "dprint-node": "^1.0.8" } }, "node_modules/ts-proto": { - "version": "1.181.1", - "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.181.1.tgz", - "integrity": "sha512-lNmd/KEgqWtwDG9mIM3EpcxBx+URRVHkDP/EEJBgQJaQwmZFTk6VjHg56HNQswd114yXGfF+8pKQvJ2iH9KfWw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-2.6.1.tgz", + "integrity": "sha512-4LTT99MkwkF1+fIA0b2mZu/58Qlpq3Q1g53TwEMZZgR1w/uX00PoVT4Z8aKJxMw0LeKQD4s9NrJYsF27Clckrg==", + "dev": true, "license": "ISC", "dependencies": { + "@bufbuild/protobuf": "^2.0.0", "case-anything": "^2.1.13", - "protobufjs": "^7.2.4", "ts-poet": "^6.7.0", - "ts-proto-descriptors": "1.16.0" + "ts-proto-descriptors": "2.0.0" }, "bin": { "protoc-gen-ts_proto": "protoc-gen-ts_proto" } }, "node_modules/ts-proto-descriptors": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.16.0.tgz", - "integrity": "sha512-3yKuzMLpltdpcyQji1PJZRfoo4OJjNieKTYkQY8pF7xGKsYz/RHe3aEe4KiRxcinoBmnEhmuI+yJTxLb922ULA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-2.0.0.tgz", + "integrity": "sha512-wHcTH3xIv11jxgkX5OyCSFfw27agpInAd6yh89hKG6zqIXnjW9SYqSER2CVQxdPj4czeOhGagNvZBEbJPy7qkw==", + "dev": true, "license": "ISC", "dependencies": { - "long": "^5.2.3", - "protobufjs": "^7.2.4" + "@bufbuild/protobuf": "^2.0.0" } }, "node_modules/tsconfig-paths": { diff --git a/src/frontend/package.json b/src/frontend/package.json index e7753f3962..bc7647a3d1 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -11,6 +11,7 @@ "grpc:generate": "mkdir -p ./protos && protoc -I ./pb --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_opt=esModuleInterop=true --ts_proto_out=./protos --ts_proto_opt=outputServices=grpc-js demo.proto" }, "dependencies": { + "@bufbuild/protobuf": "^2.2.3", "@grpc/grpc-js": "1.12.5", "@openfeature/flagd-provider": "0.13.2", "@openfeature/flagd-web-provider": "0.7.2", @@ -47,20 +48,20 @@ "uuid": "11.0.5" }, "devDependencies": { - "@types/node": "22.10.7", + "@types/node": "22.12.0", "@types/react": "19.0.7", "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.21.0", - "@typescript-eslint/parser": "8.21.0", + "@typescript-eslint/eslint-plugin": "8.22.0", + "@typescript-eslint/parser": "8.22.0", "cypress": "14.0.0", - "eslint": "9.18.0", - "eslint-config-next": "15.1.5", + "eslint": "9.19.0", + "eslint-config-next": "15.1.6", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", - "openapi-typescript": "7.5.2", - "ts-proto": "1.181.1", + "openapi-typescript": "7.6.0", + "ts-proto": "2.6.1", "typescript": "5.7.3" } } diff --git a/src/frontend/protos/demo.ts b/src/frontend/protos/demo.ts index 9ebce369be..17ef7d7404 100644 --- a/src/frontend/protos/demo.ts +++ b/src/frontend/protos/demo.ts @@ -1,10 +1,11 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: -// protoc-gen-ts_proto v1.181.1 +// protoc-gen-ts_proto v2.6.1 // protoc v4.24.4 // source: demo.proto /* eslint-disable */ +import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import { type CallOptions, ChannelCredentials, @@ -17,8 +18,6 @@ import { type ServiceError, type UntypedServiceImplementation, } from "@grpc/grpc-js"; -import Long from "long"; -import _m0 from "protobufjs/minimal"; export const protobufPackage = "oteldemo"; @@ -259,8 +258,8 @@ function createBaseCartItem(): CartItem { return { productId: "", quantity: 0 }; } -export const CartItem = { - encode(message: CartItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const CartItem: MessageFns = { + encode(message: CartItem, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.productId !== "") { writer.uint32(10).string(message.productId); } @@ -270,32 +269,34 @@ export const CartItem = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): CartItem { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): CartItem { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCartItem(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.productId = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 16) { break; } message.quantity = reader.int32(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -333,43 +334,45 @@ function createBaseAddItemRequest(): AddItemRequest { return { userId: "", item: undefined }; } -export const AddItemRequest = { - encode(message: AddItemRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const AddItemRequest: MessageFns = { + encode(message: AddItemRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.userId !== "") { writer.uint32(10).string(message.userId); } if (message.item !== undefined) { - CartItem.encode(message.item, writer.uint32(18).fork()).ldelim(); + CartItem.encode(message.item, writer.uint32(18).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): AddItemRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): AddItemRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseAddItemRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.userId = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.item = CartItem.decode(reader, reader.uint32()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -407,33 +410,34 @@ function createBaseEmptyCartRequest(): EmptyCartRequest { return { userId: "" }; } -export const EmptyCartRequest = { - encode(message: EmptyCartRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const EmptyCartRequest: MessageFns = { + encode(message: EmptyCartRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.userId !== "") { writer.uint32(10).string(message.userId); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): EmptyCartRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): EmptyCartRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseEmptyCartRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.userId = reader.string(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -464,33 +468,34 @@ function createBaseGetCartRequest(): GetCartRequest { return { userId: "" }; } -export const GetCartRequest = { - encode(message: GetCartRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const GetCartRequest: MessageFns = { + encode(message: GetCartRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.userId !== "") { writer.uint32(10).string(message.userId); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): GetCartRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): GetCartRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetCartRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.userId = reader.string(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -521,43 +526,45 @@ function createBaseCart(): Cart { return { userId: "", items: [] }; } -export const Cart = { - encode(message: Cart, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const Cart: MessageFns = { + encode(message: Cart, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.userId !== "") { writer.uint32(10).string(message.userId); } for (const v of message.items) { - CartItem.encode(v!, writer.uint32(18).fork()).ldelim(); + CartItem.encode(v!, writer.uint32(18).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): Cart { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): Cart { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCart(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.userId = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.items.push(CartItem.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -595,13 +602,13 @@ function createBaseEmpty(): Empty { return {}; } -export const Empty = { - encode(_: Empty, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const Empty: MessageFns = { + encode(_: Empty, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): Empty { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): Empty { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseEmpty(); while (reader.pos < end) { @@ -611,7 +618,7 @@ export const Empty = { if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -638,8 +645,8 @@ function createBaseListRecommendationsRequest(): ListRecommendationsRequest { return { userId: "", productIds: [] }; } -export const ListRecommendationsRequest = { - encode(message: ListRecommendationsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const ListRecommendationsRequest: MessageFns = { + encode(message: ListRecommendationsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.userId !== "") { writer.uint32(10).string(message.userId); } @@ -649,32 +656,34 @@ export const ListRecommendationsRequest = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): ListRecommendationsRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): ListRecommendationsRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListRecommendationsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.userId = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.productIds.push(reader.string()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -714,33 +723,34 @@ function createBaseListRecommendationsResponse(): ListRecommendationsResponse { return { productIds: [] }; } -export const ListRecommendationsResponse = { - encode(message: ListRecommendationsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const ListRecommendationsResponse: MessageFns = { + encode(message: ListRecommendationsResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { for (const v of message.productIds) { writer.uint32(10).string(v!); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): ListRecommendationsResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): ListRecommendationsResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListRecommendationsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.productIds.push(reader.string()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -775,8 +785,8 @@ function createBaseProduct(): Product { return { id: "", name: "", description: "", picture: "", priceUsd: undefined, categories: [] }; } -export const Product = { - encode(message: Product, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const Product: MessageFns = { + encode(message: Product, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.id !== "") { writer.uint32(10).string(message.id); } @@ -790,7 +800,7 @@ export const Product = { writer.uint32(34).string(message.picture); } if (message.priceUsd !== undefined) { - Money.encode(message.priceUsd, writer.uint32(42).fork()).ldelim(); + Money.encode(message.priceUsd, writer.uint32(42).fork()).join(); } for (const v of message.categories) { writer.uint32(50).string(v!); @@ -798,60 +808,66 @@ export const Product = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): Product { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): Product { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseProduct(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.id = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.name = reader.string(); continue; - case 3: + } + case 3: { if (tag !== 26) { break; } message.description = reader.string(); continue; - case 4: + } + case 4: { if (tag !== 34) { break; } message.picture = reader.string(); continue; - case 5: + } + case 5: { if (tag !== 42) { break; } message.priceUsd = Money.decode(reader, reader.uint32()); continue; - case 6: + } + case 6: { if (tag !== 50) { break; } message.categories.push(reader.string()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -913,33 +929,34 @@ function createBaseListProductsResponse(): ListProductsResponse { return { products: [] }; } -export const ListProductsResponse = { - encode(message: ListProductsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const ListProductsResponse: MessageFns = { + encode(message: ListProductsResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { for (const v of message.products) { - Product.encode(v!, writer.uint32(10).fork()).ldelim(); + Product.encode(v!, writer.uint32(10).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): ListProductsResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): ListProductsResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListProductsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.products.push(Product.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -972,33 +989,34 @@ function createBaseGetProductRequest(): GetProductRequest { return { id: "" }; } -export const GetProductRequest = { - encode(message: GetProductRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const GetProductRequest: MessageFns = { + encode(message: GetProductRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.id !== "") { writer.uint32(10).string(message.id); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): GetProductRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): GetProductRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetProductRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.id = reader.string(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1029,33 +1047,34 @@ function createBaseSearchProductsRequest(): SearchProductsRequest { return { query: "" }; } -export const SearchProductsRequest = { - encode(message: SearchProductsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const SearchProductsRequest: MessageFns = { + encode(message: SearchProductsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.query !== "") { writer.uint32(10).string(message.query); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): SearchProductsRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): SearchProductsRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSearchProductsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.query = reader.string(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1086,33 +1105,34 @@ function createBaseSearchProductsResponse(): SearchProductsResponse { return { results: [] }; } -export const SearchProductsResponse = { - encode(message: SearchProductsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const SearchProductsResponse: MessageFns = { + encode(message: SearchProductsResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { for (const v of message.results) { - Product.encode(v!, writer.uint32(10).fork()).ldelim(); + Product.encode(v!, writer.uint32(10).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): SearchProductsResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): SearchProductsResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSearchProductsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.results.push(Product.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1145,43 +1165,45 @@ function createBaseGetQuoteRequest(): GetQuoteRequest { return { address: undefined, items: [] }; } -export const GetQuoteRequest = { - encode(message: GetQuoteRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const GetQuoteRequest: MessageFns = { + encode(message: GetQuoteRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.address !== undefined) { - Address.encode(message.address, writer.uint32(10).fork()).ldelim(); + Address.encode(message.address, writer.uint32(10).fork()).join(); } for (const v of message.items) { - CartItem.encode(v!, writer.uint32(18).fork()).ldelim(); + CartItem.encode(v!, writer.uint32(18).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): GetQuoteRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): GetQuoteRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetQuoteRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.address = Address.decode(reader, reader.uint32()); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.items.push(CartItem.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1221,33 +1243,34 @@ function createBaseGetQuoteResponse(): GetQuoteResponse { return { costUsd: undefined }; } -export const GetQuoteResponse = { - encode(message: GetQuoteResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const GetQuoteResponse: MessageFns = { + encode(message: GetQuoteResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.costUsd !== undefined) { - Money.encode(message.costUsd, writer.uint32(10).fork()).ldelim(); + Money.encode(message.costUsd, writer.uint32(10).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): GetQuoteResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): GetQuoteResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetQuoteResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.costUsd = Money.decode(reader, reader.uint32()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1280,43 +1303,45 @@ function createBaseShipOrderRequest(): ShipOrderRequest { return { address: undefined, items: [] }; } -export const ShipOrderRequest = { - encode(message: ShipOrderRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const ShipOrderRequest: MessageFns = { + encode(message: ShipOrderRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.address !== undefined) { - Address.encode(message.address, writer.uint32(10).fork()).ldelim(); + Address.encode(message.address, writer.uint32(10).fork()).join(); } for (const v of message.items) { - CartItem.encode(v!, writer.uint32(18).fork()).ldelim(); + CartItem.encode(v!, writer.uint32(18).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): ShipOrderRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): ShipOrderRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseShipOrderRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.address = Address.decode(reader, reader.uint32()); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.items.push(CartItem.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1356,33 +1381,34 @@ function createBaseShipOrderResponse(): ShipOrderResponse { return { trackingId: "" }; } -export const ShipOrderResponse = { - encode(message: ShipOrderResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const ShipOrderResponse: MessageFns = { + encode(message: ShipOrderResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.trackingId !== "") { writer.uint32(10).string(message.trackingId); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): ShipOrderResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): ShipOrderResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseShipOrderResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.trackingId = reader.string(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1413,8 +1439,8 @@ function createBaseAddress(): Address { return { streetAddress: "", city: "", state: "", country: "", zipCode: "" }; } -export const Address = { - encode(message: Address, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const Address: MessageFns
= { + encode(message: Address, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.streetAddress !== "") { writer.uint32(10).string(message.streetAddress); } @@ -1433,53 +1459,58 @@ export const Address = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): Address { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): Address { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseAddress(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.streetAddress = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.city = reader.string(); continue; - case 3: + } + case 3: { if (tag !== 26) { break; } message.state = reader.string(); continue; - case 4: + } + case 4: { if (tag !== 34) { break; } message.country = reader.string(); continue; - case 5: + } + case 5: { if (tag !== 42) { break; } message.zipCode = reader.string(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1532,8 +1563,8 @@ function createBaseMoney(): Money { return { currencyCode: "", units: 0, nanos: 0 }; } -export const Money = { - encode(message: Money, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const Money: MessageFns = { + encode(message: Money, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.currencyCode !== "") { writer.uint32(10).string(message.currencyCode); } @@ -1546,39 +1577,42 @@ export const Money = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): Money { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): Money { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMoney(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.currencyCode = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 16) { break; } - message.units = longToNumber(reader.int64() as Long); + message.units = longToNumber(reader.int64()); continue; - case 3: + } + case 3: { if (tag !== 24) { break; } message.nanos = reader.int32(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1621,33 +1655,34 @@ function createBaseGetSupportedCurrenciesResponse(): GetSupportedCurrenciesRespo return { currencyCodes: [] }; } -export const GetSupportedCurrenciesResponse = { - encode(message: GetSupportedCurrenciesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const GetSupportedCurrenciesResponse: MessageFns = { + encode(message: GetSupportedCurrenciesResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { for (const v of message.currencyCodes) { writer.uint32(10).string(v!); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): GetSupportedCurrenciesResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): GetSupportedCurrenciesResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetSupportedCurrenciesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.currencyCodes.push(reader.string()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1684,10 +1719,10 @@ function createBaseCurrencyConversionRequest(): CurrencyConversionRequest { return { from: undefined, toCode: "" }; } -export const CurrencyConversionRequest = { - encode(message: CurrencyConversionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const CurrencyConversionRequest: MessageFns = { + encode(message: CurrencyConversionRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.from !== undefined) { - Money.encode(message.from, writer.uint32(10).fork()).ldelim(); + Money.encode(message.from, writer.uint32(10).fork()).join(); } if (message.toCode !== "") { writer.uint32(18).string(message.toCode); @@ -1695,32 +1730,34 @@ export const CurrencyConversionRequest = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): CurrencyConversionRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): CurrencyConversionRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCurrencyConversionRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.from = Money.decode(reader, reader.uint32()); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.toCode = reader.string(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1758,8 +1795,8 @@ function createBaseCreditCardInfo(): CreditCardInfo { return { creditCardNumber: "", creditCardCvv: 0, creditCardExpirationYear: 0, creditCardExpirationMonth: 0 }; } -export const CreditCardInfo = { - encode(message: CreditCardInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const CreditCardInfo: MessageFns = { + encode(message: CreditCardInfo, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.creditCardNumber !== "") { writer.uint32(10).string(message.creditCardNumber); } @@ -1775,46 +1812,50 @@ export const CreditCardInfo = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): CreditCardInfo { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): CreditCardInfo { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCreditCardInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.creditCardNumber = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 16) { break; } message.creditCardCvv = reader.int32(); continue; - case 3: + } + case 3: { if (tag !== 24) { break; } message.creditCardExpirationYear = reader.int32(); continue; - case 4: + } + case 4: { if (tag !== 32) { break; } message.creditCardExpirationMonth = reader.int32(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1866,43 +1907,45 @@ function createBaseChargeRequest(): ChargeRequest { return { amount: undefined, creditCard: undefined }; } -export const ChargeRequest = { - encode(message: ChargeRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const ChargeRequest: MessageFns = { + encode(message: ChargeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.amount !== undefined) { - Money.encode(message.amount, writer.uint32(10).fork()).ldelim(); + Money.encode(message.amount, writer.uint32(10).fork()).join(); } if (message.creditCard !== undefined) { - CreditCardInfo.encode(message.creditCard, writer.uint32(18).fork()).ldelim(); + CreditCardInfo.encode(message.creditCard, writer.uint32(18).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): ChargeRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): ChargeRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseChargeRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.amount = Money.decode(reader, reader.uint32()); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.creditCard = CreditCardInfo.decode(reader, reader.uint32()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -1944,33 +1987,34 @@ function createBaseChargeResponse(): ChargeResponse { return { transactionId: "" }; } -export const ChargeResponse = { - encode(message: ChargeResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const ChargeResponse: MessageFns = { + encode(message: ChargeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.transactionId !== "") { writer.uint32(10).string(message.transactionId); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): ChargeResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): ChargeResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseChargeResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.transactionId = reader.string(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2001,43 +2045,45 @@ function createBaseOrderItem(): OrderItem { return { item: undefined, cost: undefined }; } -export const OrderItem = { - encode(message: OrderItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const OrderItem: MessageFns = { + encode(message: OrderItem, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.item !== undefined) { - CartItem.encode(message.item, writer.uint32(10).fork()).ldelim(); + CartItem.encode(message.item, writer.uint32(10).fork()).join(); } if (message.cost !== undefined) { - Money.encode(message.cost, writer.uint32(18).fork()).ldelim(); + Money.encode(message.cost, writer.uint32(18).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): OrderItem { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): OrderItem { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOrderItem(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.item = CartItem.decode(reader, reader.uint32()); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.cost = Money.decode(reader, reader.uint32()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2075,8 +2121,8 @@ function createBaseOrderResult(): OrderResult { return { orderId: "", shippingTrackingId: "", shippingCost: undefined, shippingAddress: undefined, items: [] }; } -export const OrderResult = { - encode(message: OrderResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const OrderResult: MessageFns = { + encode(message: OrderResult, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.orderId !== "") { writer.uint32(10).string(message.orderId); } @@ -2084,64 +2130,69 @@ export const OrderResult = { writer.uint32(18).string(message.shippingTrackingId); } if (message.shippingCost !== undefined) { - Money.encode(message.shippingCost, writer.uint32(26).fork()).ldelim(); + Money.encode(message.shippingCost, writer.uint32(26).fork()).join(); } if (message.shippingAddress !== undefined) { - Address.encode(message.shippingAddress, writer.uint32(34).fork()).ldelim(); + Address.encode(message.shippingAddress, writer.uint32(34).fork()).join(); } for (const v of message.items) { - OrderItem.encode(v!, writer.uint32(42).fork()).ldelim(); + OrderItem.encode(v!, writer.uint32(42).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): OrderResult { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): OrderResult { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseOrderResult(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.orderId = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.shippingTrackingId = reader.string(); continue; - case 3: + } + case 3: { if (tag !== 26) { break; } message.shippingCost = Money.decode(reader, reader.uint32()); continue; - case 4: + } + case 4: { if (tag !== 34) { break; } message.shippingAddress = Address.decode(reader, reader.uint32()); continue; - case 5: + } + case 5: { if (tag !== 42) { break; } message.items.push(OrderItem.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2198,43 +2249,45 @@ function createBaseSendOrderConfirmationRequest(): SendOrderConfirmationRequest return { email: "", order: undefined }; } -export const SendOrderConfirmationRequest = { - encode(message: SendOrderConfirmationRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const SendOrderConfirmationRequest: MessageFns = { + encode(message: SendOrderConfirmationRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.email !== "") { writer.uint32(10).string(message.email); } if (message.order !== undefined) { - OrderResult.encode(message.order, writer.uint32(18).fork()).ldelim(); + OrderResult.encode(message.order, writer.uint32(18).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): SendOrderConfirmationRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): SendOrderConfirmationRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSendOrderConfirmationRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.email = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.order = OrderResult.decode(reader, reader.uint32()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2274,8 +2327,8 @@ function createBasePlaceOrderRequest(): PlaceOrderRequest { return { userId: "", userCurrency: "", address: undefined, email: "", creditCard: undefined }; } -export const PlaceOrderRequest = { - encode(message: PlaceOrderRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const PlaceOrderRequest: MessageFns = { + encode(message: PlaceOrderRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.userId !== "") { writer.uint32(10).string(message.userId); } @@ -2283,64 +2336,69 @@ export const PlaceOrderRequest = { writer.uint32(18).string(message.userCurrency); } if (message.address !== undefined) { - Address.encode(message.address, writer.uint32(26).fork()).ldelim(); + Address.encode(message.address, writer.uint32(26).fork()).join(); } if (message.email !== "") { writer.uint32(42).string(message.email); } if (message.creditCard !== undefined) { - CreditCardInfo.encode(message.creditCard, writer.uint32(50).fork()).ldelim(); + CreditCardInfo.encode(message.creditCard, writer.uint32(50).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): PlaceOrderRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): PlaceOrderRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePlaceOrderRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.userId = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.userCurrency = reader.string(); continue; - case 3: + } + case 3: { if (tag !== 26) { break; } message.address = Address.decode(reader, reader.uint32()); continue; - case 5: + } + case 5: { if (tag !== 42) { break; } message.email = reader.string(); continue; - case 6: + } + case 6: { if (tag !== 50) { break; } message.creditCard = CreditCardInfo.decode(reader, reader.uint32()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2397,33 +2455,34 @@ function createBasePlaceOrderResponse(): PlaceOrderResponse { return { order: undefined }; } -export const PlaceOrderResponse = { - encode(message: PlaceOrderResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const PlaceOrderResponse: MessageFns = { + encode(message: PlaceOrderResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.order !== undefined) { - OrderResult.encode(message.order, writer.uint32(10).fork()).ldelim(); + OrderResult.encode(message.order, writer.uint32(10).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): PlaceOrderResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): PlaceOrderResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePlaceOrderResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.order = OrderResult.decode(reader, reader.uint32()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2456,33 +2515,34 @@ function createBaseAdRequest(): AdRequest { return { contextKeys: [] }; } -export const AdRequest = { - encode(message: AdRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const AdRequest: MessageFns = { + encode(message: AdRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { for (const v of message.contextKeys) { writer.uint32(10).string(v!); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): AdRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): AdRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseAdRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.contextKeys.push(reader.string()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2517,33 +2577,34 @@ function createBaseAdResponse(): AdResponse { return { ads: [] }; } -export const AdResponse = { - encode(message: AdResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const AdResponse: MessageFns = { + encode(message: AdResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { for (const v of message.ads) { - Ad.encode(v!, writer.uint32(10).fork()).ldelim(); + Ad.encode(v!, writer.uint32(10).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): AdResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): AdResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseAdResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.ads.push(Ad.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2574,8 +2635,8 @@ function createBaseAd(): Ad { return { redirectUrl: "", text: "" }; } -export const Ad = { - encode(message: Ad, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const Ad: MessageFns = { + encode(message: Ad, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.redirectUrl !== "") { writer.uint32(10).string(message.redirectUrl); } @@ -2585,32 +2646,34 @@ export const Ad = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): Ad { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): Ad { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseAd(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.redirectUrl = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.text = reader.string(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2648,8 +2711,8 @@ function createBaseFlag(): Flag { return { name: "", description: "", enabled: false }; } -export const Flag = { - encode(message: Flag, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const Flag: MessageFns = { + encode(message: Flag, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.name !== "") { writer.uint32(10).string(message.name); } @@ -2662,39 +2725,42 @@ export const Flag = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): Flag { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): Flag { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseFlag(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.name = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.description = reader.string(); continue; - case 3: + } + case 3: { if (tag !== 24) { break; } message.enabled = reader.bool(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2737,33 +2803,34 @@ function createBaseGetFlagRequest(): GetFlagRequest { return { name: "" }; } -export const GetFlagRequest = { - encode(message: GetFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const GetFlagRequest: MessageFns = { + encode(message: GetFlagRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.name !== "") { writer.uint32(10).string(message.name); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): GetFlagRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): GetFlagRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetFlagRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.name = reader.string(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2794,33 +2861,34 @@ function createBaseGetFlagResponse(): GetFlagResponse { return { flag: undefined }; } -export const GetFlagResponse = { - encode(message: GetFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const GetFlagResponse: MessageFns = { + encode(message: GetFlagResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.flag !== undefined) { - Flag.encode(message.flag, writer.uint32(10).fork()).ldelim(); + Flag.encode(message.flag, writer.uint32(10).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): GetFlagResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): GetFlagResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetFlagResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.flag = Flag.decode(reader, reader.uint32()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2851,8 +2919,8 @@ function createBaseCreateFlagRequest(): CreateFlagRequest { return { name: "", description: "", enabled: false }; } -export const CreateFlagRequest = { - encode(message: CreateFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const CreateFlagRequest: MessageFns = { + encode(message: CreateFlagRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.name !== "") { writer.uint32(10).string(message.name); } @@ -2865,39 +2933,42 @@ export const CreateFlagRequest = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): CreateFlagRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): CreateFlagRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCreateFlagRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.name = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.description = reader.string(); continue; - case 3: + } + case 3: { if (tag !== 24) { break; } message.enabled = reader.bool(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2940,33 +3011,34 @@ function createBaseCreateFlagResponse(): CreateFlagResponse { return { flag: undefined }; } -export const CreateFlagResponse = { - encode(message: CreateFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const CreateFlagResponse: MessageFns = { + encode(message: CreateFlagResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.flag !== undefined) { - Flag.encode(message.flag, writer.uint32(10).fork()).ldelim(); + Flag.encode(message.flag, writer.uint32(10).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): CreateFlagResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): CreateFlagResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCreateFlagResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.flag = Flag.decode(reader, reader.uint32()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -2997,8 +3069,8 @@ function createBaseUpdateFlagRequest(): UpdateFlagRequest { return { name: "", enabled: false }; } -export const UpdateFlagRequest = { - encode(message: UpdateFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const UpdateFlagRequest: MessageFns = { + encode(message: UpdateFlagRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.name !== "") { writer.uint32(10).string(message.name); } @@ -3008,32 +3080,34 @@ export const UpdateFlagRequest = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): UpdateFlagRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): UpdateFlagRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUpdateFlagRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.name = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 16) { break; } message.enabled = reader.bool(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -3071,13 +3145,13 @@ function createBaseUpdateFlagResponse(): UpdateFlagResponse { return {}; } -export const UpdateFlagResponse = { - encode(_: UpdateFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const UpdateFlagResponse: MessageFns = { + encode(_: UpdateFlagResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): UpdateFlagResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): UpdateFlagResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUpdateFlagResponse(); while (reader.pos < end) { @@ -3087,7 +3161,7 @@ export const UpdateFlagResponse = { if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -3114,13 +3188,13 @@ function createBaseListFlagsRequest(): ListFlagsRequest { return {}; } -export const ListFlagsRequest = { - encode(_: ListFlagsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const ListFlagsRequest: MessageFns = { + encode(_: ListFlagsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): ListFlagsRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): ListFlagsRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListFlagsRequest(); while (reader.pos < end) { @@ -3130,7 +3204,7 @@ export const ListFlagsRequest = { if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -3157,33 +3231,34 @@ function createBaseListFlagsResponse(): ListFlagsResponse { return { flag: [] }; } -export const ListFlagsResponse = { - encode(message: ListFlagsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const ListFlagsResponse: MessageFns = { + encode(message: ListFlagsResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { for (const v of message.flag) { - Flag.encode(v!, writer.uint32(10).fork()).ldelim(); + Flag.encode(v!, writer.uint32(10).fork()).join(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): ListFlagsResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): ListFlagsResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListFlagsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.flag.push(Flag.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -3214,33 +3289,34 @@ function createBaseDeleteFlagRequest(): DeleteFlagRequest { return { name: "" }; } -export const DeleteFlagRequest = { - encode(message: DeleteFlagRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const DeleteFlagRequest: MessageFns = { + encode(message: DeleteFlagRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.name !== "") { writer.uint32(10).string(message.name); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFlagRequest { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): DeleteFlagRequest { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDeleteFlagRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.name = reader.string(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -3271,13 +3347,13 @@ function createBaseDeleteFlagResponse(): DeleteFlagResponse { return {}; } -export const DeleteFlagResponse = { - encode(_: DeleteFlagResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const DeleteFlagResponse: MessageFns = { + encode(_: DeleteFlagResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFlagResponse { - const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + decode(input: BinaryReader | Uint8Array, length?: number): DeleteFlagResponse { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDeleteFlagResponse(); while (reader.pos < end) { @@ -3287,7 +3363,7 @@ export const DeleteFlagResponse = { if ((tag & 7) === 4 || tag === 0) { break; } - reader.skipType(tag & 7); + reader.skip(tag & 7); } return message; }, @@ -4005,21 +4081,26 @@ type KeysOfUnion = T extends T ? keyof T : never; export type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; -function longToNumber(long: Long): number { - if (long.gt(globalThis.Number.MAX_SAFE_INTEGER)) { +function longToNumber(int64: { toString(): string }): number { + const num = globalThis.Number(int64.toString()); + if (num > globalThis.Number.MAX_SAFE_INTEGER) { throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER"); } - if (long.lt(globalThis.Number.MIN_SAFE_INTEGER)) { + if (num < globalThis.Number.MIN_SAFE_INTEGER) { throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER"); } - return long.toNumber(); -} - -if (_m0.util.Long !== Long) { - _m0.util.Long = Long as any; - _m0.configure(); + return num; } function isSet(value: any): boolean { return value !== null && value !== undefined; } + +export interface MessageFns { + encode(message: T, writer?: BinaryWriter): BinaryWriter; + decode(input: BinaryReader | Uint8Array, length?: number): T; + fromJSON(object: any): T; + toJSON(message: T): unknown; + create, I>>(base?: I): T; + fromPartial, I>>(object: I): T; +} From c72d3ea5157c061ea7ce92a5cb178a27bfd4580c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 23:23:40 +0100 Subject: [PATCH 088/178] build(deps): bump the pip-production-dependencies group across 3 directories with 44 updates (#1959) * build(deps): bump the pip-production-dependencies group across 3 directories with 44 updates Bumps the pip-production-dependencies group with 44 updates in the /src directory: | Package | From | To | | --- | --- | --- | | [certifi](https://github.com/certifi/python-certifi) | `2023.7.22` | `2024.12.14` | | [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.1` | | [click](https://github.com/pallets/click) | `8.1.7` | `8.1.8` | | [deprecated](https://github.com/laurent-laporte-pro/deprecated) | `1.2.14` | `1.2.18` | | [flask](https://github.com/pallets/flask) | `3.0.0` | `3.1.0` | | [flask-cors](https://github.com/corydolphin/flask-cors) | `4.0.0` | `5.0.0` | | [gevent](https://github.com/gevent/gevent) | `23.9.1` | `24.11.1` | | [geventhttpclient](https://github.com/geventhttpclient/geventhttpclient) | `2.0.11` | `2.3.3` | | [googleapis-common-protos](https://github.com/googleapis/python-api-common-protos) | `1.61.0` | `1.66.0` | | [greenlet](https://github.com/python-greenlet/greenlet) | `3.0.1` | `3.1.1` | | [idna](https://github.com/kjd/idna) | `3.4` | `3.10` | | [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` | | [jinja2](https://github.com/pallets/jinja) | `3.1.2` | `3.1.5` | | [locust](https://github.com/locustio/locust) | `2.18.2` | `2.32.6` | | [locust-plugins](https://github.com/SvenskaSpel/locust-plugins) | `3.4.0` | `4.5.3` | | [markupsafe](https://github.com/pallets/markupsafe) | `2.1.3` | `3.0.2` | | [msgpack](https://github.com/msgpack/msgpack-python) | `1.0.7` | `1.1.0` | | [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.25.0` | `1.29.0` | | [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.25.0` | `1.29.0` | | [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.25.0` | `1.29.0` | | [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.25.0` | `1.29.0` | | [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.46b0` | `0.50b0` | | [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [openfeature-sdk](https://github.com/open-feature/python-sdk) | `0.7.0` | `0.7.4` | | [protobuf](https://github.com/protocolbuffers/protobuf) | `4.25.2` | `5.29.3` | | [psutil](https://github.com/giampaolo/psutil) | `5.9.6` | `6.1.1` | | [pyzmq](https://github.com/zeromq/pyzmq) | `25.1.1` | `26.2.0` | | [requests](https://github.com/psf/requests) | `2.31.0` | `2.32.3` | | [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` | | [typing-extensions](https://github.com/python/typing_extensions) | `4.8.0` | `4.12.2` | | [urllib3](https://github.com/urllib3/urllib3) | `2.0.7` | `2.3.0` | | [werkzeug](https://github.com/pallets/werkzeug) | `3.0.1` | `3.1.3` | | [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.16.0` | `1.17.2` | | [zope-interface](https://github.com/zopefoundation/zope.interface) | `6.1` | `7.2` | | [python-json-logger](https://github.com/nhairs/python-json-logger) | `2.0.7` | `3.2.1` | | [grpcio-health-checking](https://grpc.io) | `1.60.0` | `1.70.0` | | [grpcio](https://github.com/grpc/grpc) | `1.60.0` | `1.70.0` | | [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.0` | `1.0.1` | Bumps the pip-production-dependencies group with 40 updates in the /src/load-generator directory: | Package | From | To | | --- | --- | --- | | [certifi](https://github.com/certifi/python-certifi) | `2023.7.22` | `2024.12.14` | | [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.1` | | [click](https://github.com/pallets/click) | `8.1.7` | `8.1.8` | | [deprecated](https://github.com/laurent-laporte-pro/deprecated) | `1.2.14` | `1.2.18` | | [flask](https://github.com/pallets/flask) | `3.0.0` | `3.1.0` | | [flask-cors](https://github.com/corydolphin/flask-cors) | `4.0.0` | `5.0.0` | | [gevent](https://github.com/gevent/gevent) | `23.9.1` | `24.11.1` | | [geventhttpclient](https://github.com/geventhttpclient/geventhttpclient) | `2.0.11` | `2.3.3` | | [googleapis-common-protos](https://github.com/googleapis/python-api-common-protos) | `1.61.0` | `1.66.0` | | [greenlet](https://github.com/python-greenlet/greenlet) | `3.0.1` | `3.1.1` | | [idna](https://github.com/kjd/idna) | `3.4` | `3.10` | | [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` | | [jinja2](https://github.com/pallets/jinja) | `3.1.2` | `3.1.5` | | [locust](https://github.com/locustio/locust) | `2.18.2` | `2.32.6` | | [locust-plugins](https://github.com/SvenskaSpel/locust-plugins) | `3.4.0` | `4.5.3` | | [markupsafe](https://github.com/pallets/markupsafe) | `2.1.3` | `3.0.2` | | [msgpack](https://github.com/msgpack/msgpack-python) | `1.0.7` | `1.1.0` | | [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.25.0` | `1.29.0` | | [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.25.0` | `1.29.0` | | [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.25.0` | `1.29.0` | | [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.25.0` | `1.29.0` | | [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.46b0` | `0.50b0` | | [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [openfeature-sdk](https://github.com/open-feature/python-sdk) | `0.7.0` | `0.7.4` | | [protobuf](https://github.com/protocolbuffers/protobuf) | `4.25.2` | `5.29.3` | | [psutil](https://github.com/giampaolo/psutil) | `5.9.6` | `6.1.1` | | [pyzmq](https://github.com/zeromq/pyzmq) | `25.1.1` | `26.2.0` | | [requests](https://github.com/psf/requests) | `2.31.0` | `2.32.3` | | [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` | | [typing-extensions](https://github.com/python/typing_extensions) | `4.8.0` | `4.12.2` | | [urllib3](https://github.com/urllib3/urllib3) | `2.0.7` | `2.3.0` | | [werkzeug](https://github.com/pallets/werkzeug) | `3.0.1` | `3.1.3` | | [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.16.0` | `1.17.2` | | [zope-interface](https://github.com/zopefoundation/zope.interface) | `6.1` | `7.2` | | [python-json-logger](https://github.com/nhairs/python-json-logger) | `2.0.7` | `3.2.1` | Bumps the pip-production-dependencies group with 8 updates in the /src/recommendation directory: | Package | From | To | | --- | --- | --- | | [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.25.0` | `1.29.0` | | [openfeature-sdk](https://github.com/open-feature/python-sdk) | `0.7.0` | `0.7.4` | | [psutil](https://github.com/giampaolo/psutil) | `5.9.6` | `6.1.1` | | [python-json-logger](https://github.com/nhairs/python-json-logger) | `2.0.7` | `3.2.1` | | [grpcio-health-checking](https://grpc.io) | `1.60.0` | `1.70.0` | | [grpcio](https://github.com/grpc/grpc) | `1.60.0` | `1.70.0` | | [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.50b0` | | [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.0` | `1.0.1` | Updates `certifi` from 2023.7.22 to 2024.12.14 - [Commits](https://github.com/certifi/python-certifi/compare/2023.07.22...2024.12.14) Updates `charset-normalizer` from 3.3.2 to 3.4.1 - [Release notes](https://github.com/jawah/charset_normalizer/releases) - [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md) - [Commits](https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.1) Updates `click` from 8.1.7 to 8.1.8 - [Release notes](https://github.com/pallets/click/releases) - [Changelog](https://github.com/pallets/click/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/click/compare/8.1.7...8.1.8) Updates `deprecated` from 1.2.14 to 1.2.18 - [Release notes](https://github.com/laurent-laporte-pro/deprecated/releases) - [Changelog](https://github.com/laurent-laporte-pro/deprecated/blob/master/CHANGELOG.rst) - [Commits](https://github.com/laurent-laporte-pro/deprecated/compare/v1.2.14...v1.2.18) Updates `flask` from 3.0.0 to 3.1.0 - [Release notes](https://github.com/pallets/flask/releases) - [Changelog](https://github.com/pallets/flask/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/flask/compare/3.0.0...3.1.0) Updates `flask-cors` from 4.0.0 to 5.0.0 - [Release notes](https://github.com/corydolphin/flask-cors/releases) - [Changelog](https://github.com/corydolphin/flask-cors/blob/main/CHANGELOG.md) - [Commits](https://github.com/corydolphin/flask-cors/compare/4.0.0...5.0.0) Updates `gevent` from 23.9.1 to 24.11.1 - [Release notes](https://github.com/gevent/gevent/releases) - [Changelog](https://github.com/gevent/gevent/blob/master/docs/changelog_pre.rst) - [Commits](https://github.com/gevent/gevent/compare/23.9.1...24.11.1) Updates `geventhttpclient` from 2.0.11 to 2.3.3 - [Release notes](https://github.com/geventhttpclient/geventhttpclient/releases) - [Changelog](https://github.com/geventhttpclient/geventhttpclient/blob/master/release.md) - [Commits](https://github.com/geventhttpclient/geventhttpclient/compare/2.0.11...2.3.3) Updates `googleapis-common-protos` from 1.61.0 to 1.66.0 - [Release notes](https://github.com/googleapis/python-api-common-protos/releases) - [Changelog](https://github.com/googleapis/python-api-common-protos/blob/v1.66.0/CHANGELOG.md) - [Commits](https://github.com/googleapis/python-api-common-protos/compare/v1.61.0...v1.66.0) Updates `greenlet` from 3.0.1 to 3.1.1 - [Changelog](https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst) - [Commits](https://github.com/python-greenlet/greenlet/compare/3.0.1...3.1.1) Updates `idna` from 3.4 to 3.10 - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst) - [Commits](https://github.com/kjd/idna/compare/v3.4...v3.10) Updates `itsdangerous` from 2.1.2 to 2.2.0 - [Release notes](https://github.com/pallets/itsdangerous/releases) - [Changelog](https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0) Updates `jinja2` from 3.1.2 to 3.1.5 - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.2...3.1.5) Updates `locust` from 2.18.2 to 2.32.6 - [Release notes](https://github.com/locustio/locust/releases) - [Changelog](https://github.com/locustio/locust/blob/master/docs/changelog.rst) - [Commits](https://github.com/locustio/locust/compare/2.18.2...2.32.6) Updates `locust-plugins` from 3.4.0 to 4.5.3 - [Release notes](https://github.com/SvenskaSpel/locust-plugins/releases) - [Commits](https://github.com/SvenskaSpel/locust-plugins/compare/3.4.0...4.5.3) Updates `markupsafe` from 2.1.3 to 3.0.2 - [Release notes](https://github.com/pallets/markupsafe/releases) - [Changelog](https://github.com/pallets/markupsafe/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/markupsafe/compare/2.1.3...3.0.2) Updates `msgpack` from 1.0.7 to 1.1.0 - [Release notes](https://github.com/msgpack/msgpack-python/releases) - [Changelog](https://github.com/msgpack/msgpack-python/blob/main/ChangeLog.rst) - [Commits](https://github.com/msgpack/msgpack-python/compare/v1.0.7...v1.1.0) Updates `opentelemetry-api` from 1.25.0 to 1.29.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.25.0...v1.29.0) Updates `opentelemetry-exporter-otlp-proto-grpc` from 1.25.0 to 1.29.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.25.0...v1.29.0) Updates `opentelemetry-instrumentation` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-jinja2` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-requests` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-system-metrics` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-urllib3` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-proto` from 1.25.0 to 1.29.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.25.0...v1.29.0) Updates `opentelemetry-sdk` from 1.25.0 to 1.29.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.25.0...v1.29.0) Updates `opentelemetry-semantic-conventions` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/commits) Updates `opentelemetry-util-http` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `openfeature-sdk` from 0.7.0 to 0.7.4 - [Release notes](https://github.com/open-feature/python-sdk/releases) - [Changelog](https://github.com/open-feature/python-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/python-sdk/compare/v0.7.0...v0.7.4) Updates `protobuf` from 4.25.2 to 5.29.3 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/compare/v4.25.2...v5.29.3) Updates `psutil` from 5.9.6 to 6.1.1 - [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst) - [Commits](https://github.com/giampaolo/psutil/compare/release-5.9.6...release-6.1.1) Updates `pyzmq` from 25.1.1 to 26.2.0 - [Release notes](https://github.com/zeromq/pyzmq/releases) - [Commits](https://github.com/zeromq/pyzmq/compare/v25.1.1...v26.2.0) Updates `requests` from 2.31.0 to 2.32.3 - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](https://github.com/psf/requests/compare/v2.31.0...v2.32.3) Updates `six` from 1.16.0 to 1.17.0 - [Changelog](https://github.com/benjaminp/six/blob/main/CHANGES) - [Commits](https://github.com/benjaminp/six/compare/1.16.0...1.17.0) Updates `typing-extensions` from 4.8.0 to 4.12.2 - [Release notes](https://github.com/python/typing_extensions/releases) - [Changelog](https://github.com/python/typing_extensions/blob/main/CHANGELOG.md) - [Commits](https://github.com/python/typing_extensions/compare/4.8.0...4.12.2) Updates `urllib3` from 2.0.7 to 2.3.0 - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.0.7...2.3.0) Updates `werkzeug` from 3.0.1 to 3.1.3 - [Release notes](https://github.com/pallets/werkzeug/releases) - [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/werkzeug/compare/3.0.1...3.1.3) Updates `wrapt` from 1.16.0 to 1.17.2 - [Release notes](https://github.com/GrahamDumpleton/wrapt/releases) - [Changelog](https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst) - [Commits](https://github.com/GrahamDumpleton/wrapt/compare/1.16.0...1.17.2) Updates `zope-interface` from 6.1 to 7.2 - [Changelog](https://github.com/zopefoundation/zope.interface/blob/master/CHANGES.rst) - [Commits](https://github.com/zopefoundation/zope.interface/compare/6.1...7.2) Updates `python-json-logger` from 2.0.7 to 3.2.1 - [Release notes](https://github.com/nhairs/python-json-logger/releases) - [Changelog](https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md) - [Commits](https://github.com/nhairs/python-json-logger/compare/v2.0.7...v3.2.1) Updates `grpcio-health-checking` from 1.60.0 to 1.70.0 Updates `grpcio` from 1.60.0 to 1.70.0 - [Release notes](https://github.com/grpc/grpc/releases) - [Changelog](https://github.com/grpc/grpc/blob/master/doc/grpc_release_schedule.md) - [Commits](https://github.com/grpc/grpc/compare/v1.60.0...v1.70.0) Updates `opentelemetry-distro` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `python-dotenv` from 1.0.0 to 1.0.1 - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](https://github.com/theskumar/python-dotenv/compare/v1.0.0...v1.0.1) Updates `certifi` from 2023.7.22 to 2024.12.14 - [Commits](https://github.com/certifi/python-certifi/compare/2023.07.22...2024.12.14) Updates `charset-normalizer` from 3.3.2 to 3.4.1 - [Release notes](https://github.com/jawah/charset_normalizer/releases) - [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md) - [Commits](https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.1) Updates `click` from 8.1.7 to 8.1.8 - [Release notes](https://github.com/pallets/click/releases) - [Changelog](https://github.com/pallets/click/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/click/compare/8.1.7...8.1.8) Updates `deprecated` from 1.2.14 to 1.2.18 - [Release notes](https://github.com/laurent-laporte-pro/deprecated/releases) - [Changelog](https://github.com/laurent-laporte-pro/deprecated/blob/master/CHANGELOG.rst) - [Commits](https://github.com/laurent-laporte-pro/deprecated/compare/v1.2.14...v1.2.18) Updates `flask` from 3.0.0 to 3.1.0 - [Release notes](https://github.com/pallets/flask/releases) - [Changelog](https://github.com/pallets/flask/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/flask/compare/3.0.0...3.1.0) Updates `flask-cors` from 4.0.0 to 5.0.0 - [Release notes](https://github.com/corydolphin/flask-cors/releases) - [Changelog](https://github.com/corydolphin/flask-cors/blob/main/CHANGELOG.md) - [Commits](https://github.com/corydolphin/flask-cors/compare/4.0.0...5.0.0) Updates `gevent` from 23.9.1 to 24.11.1 - [Release notes](https://github.com/gevent/gevent/releases) - [Changelog](https://github.com/gevent/gevent/blob/master/docs/changelog_pre.rst) - [Commits](https://github.com/gevent/gevent/compare/23.9.1...24.11.1) Updates `geventhttpclient` from 2.0.11 to 2.3.3 - [Release notes](https://github.com/geventhttpclient/geventhttpclient/releases) - [Changelog](https://github.com/geventhttpclient/geventhttpclient/blob/master/release.md) - [Commits](https://github.com/geventhttpclient/geventhttpclient/compare/2.0.11...2.3.3) Updates `googleapis-common-protos` from 1.61.0 to 1.66.0 - [Release notes](https://github.com/googleapis/python-api-common-protos/releases) - [Changelog](https://github.com/googleapis/python-api-common-protos/blob/v1.66.0/CHANGELOG.md) - [Commits](https://github.com/googleapis/python-api-common-protos/compare/v1.61.0...v1.66.0) Updates `greenlet` from 3.0.1 to 3.1.1 - [Changelog](https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst) - [Commits](https://github.com/python-greenlet/greenlet/compare/3.0.1...3.1.1) Updates `idna` from 3.4 to 3.10 - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst) - [Commits](https://github.com/kjd/idna/compare/v3.4...v3.10) Updates `itsdangerous` from 2.1.2 to 2.2.0 - [Release notes](https://github.com/pallets/itsdangerous/releases) - [Changelog](https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/itsdangerous/compare/2.1.2...2.2.0) Updates `jinja2` from 3.1.2 to 3.1.5 - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.2...3.1.5) Updates `locust` from 2.18.2 to 2.32.6 - [Release notes](https://github.com/locustio/locust/releases) - [Changelog](https://github.com/locustio/locust/blob/master/docs/changelog.rst) - [Commits](https://github.com/locustio/locust/compare/2.18.2...2.32.6) Updates `locust-plugins` from 3.4.0 to 4.5.3 - [Release notes](https://github.com/SvenskaSpel/locust-plugins/releases) - [Commits](https://github.com/SvenskaSpel/locust-plugins/compare/3.4.0...4.5.3) Updates `markupsafe` from 2.1.3 to 3.0.2 - [Release notes](https://github.com/pallets/markupsafe/releases) - [Changelog](https://github.com/pallets/markupsafe/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/markupsafe/compare/2.1.3...3.0.2) Updates `msgpack` from 1.0.7 to 1.1.0 - [Release notes](https://github.com/msgpack/msgpack-python/releases) - [Changelog](https://github.com/msgpack/msgpack-python/blob/main/ChangeLog.rst) - [Commits](https://github.com/msgpack/msgpack-python/compare/v1.0.7...v1.1.0) Updates `opentelemetry-api` from 1.25.0 to 1.29.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.25.0...v1.29.0) Updates `opentelemetry-exporter-otlp-proto-grpc` from 1.25.0 to 1.29.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.25.0...v1.29.0) Updates `opentelemetry-instrumentation` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-jinja2` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-requests` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-system-metrics` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-urllib3` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-proto` from 1.25.0 to 1.29.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.25.0...v1.29.0) Updates `opentelemetry-sdk` from 1.25.0 to 1.29.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.25.0...v1.29.0) Updates `opentelemetry-semantic-conventions` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/commits) Updates `opentelemetry-util-http` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `openfeature-sdk` from 0.7.0 to 0.7.4 - [Release notes](https://github.com/open-feature/python-sdk/releases) - [Changelog](https://github.com/open-feature/python-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/python-sdk/compare/v0.7.0...v0.7.4) Updates `protobuf` from 4.25.2 to 5.29.3 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/compare/v4.25.2...v5.29.3) Updates `psutil` from 5.9.6 to 6.1.1 - [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst) - [Commits](https://github.com/giampaolo/psutil/compare/release-5.9.6...release-6.1.1) Updates `pyzmq` from 25.1.1 to 26.2.0 - [Release notes](https://github.com/zeromq/pyzmq/releases) - [Commits](https://github.com/zeromq/pyzmq/compare/v25.1.1...v26.2.0) Updates `requests` from 2.31.0 to 2.32.3 - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](https://github.com/psf/requests/compare/v2.31.0...v2.32.3) Updates `six` from 1.16.0 to 1.17.0 - [Changelog](https://github.com/benjaminp/six/blob/main/CHANGES) - [Commits](https://github.com/benjaminp/six/compare/1.16.0...1.17.0) Updates `typing-extensions` from 4.8.0 to 4.12.2 - [Release notes](https://github.com/python/typing_extensions/releases) - [Changelog](https://github.com/python/typing_extensions/blob/main/CHANGELOG.md) - [Commits](https://github.com/python/typing_extensions/compare/4.8.0...4.12.2) Updates `urllib3` from 2.0.7 to 2.3.0 - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.0.7...2.3.0) Updates `werkzeug` from 3.0.1 to 3.1.3 - [Release notes](https://github.com/pallets/werkzeug/releases) - [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/werkzeug/compare/3.0.1...3.1.3) Updates `wrapt` from 1.16.0 to 1.17.2 - [Release notes](https://github.com/GrahamDumpleton/wrapt/releases) - [Changelog](https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst) - [Commits](https://github.com/GrahamDumpleton/wrapt/compare/1.16.0...1.17.2) Updates `zope-interface` from 6.1 to 7.2 - [Changelog](https://github.com/zopefoundation/zope.interface/blob/master/CHANGES.rst) - [Commits](https://github.com/zopefoundation/zope.interface/compare/6.1...7.2) Updates `python-json-logger` from 2.0.7 to 3.2.1 - [Release notes](https://github.com/nhairs/python-json-logger/releases) - [Changelog](https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md) - [Commits](https://github.com/nhairs/python-json-logger/compare/v2.0.7...v3.2.1) Updates `opentelemetry-exporter-otlp-proto-grpc` from 1.25.0 to 1.29.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.25.0...v1.29.0) Updates `openfeature-sdk` from 0.7.0 to 0.7.4 - [Release notes](https://github.com/open-feature/python-sdk/releases) - [Changelog](https://github.com/open-feature/python-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/python-sdk/compare/v0.7.0...v0.7.4) Updates `psutil` from 5.9.6 to 6.1.1 - [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst) - [Commits](https://github.com/giampaolo/psutil/compare/release-5.9.6...release-6.1.1) Updates `python-json-logger` from 2.0.7 to 3.2.1 - [Release notes](https://github.com/nhairs/python-json-logger/releases) - [Changelog](https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md) - [Commits](https://github.com/nhairs/python-json-logger/compare/v2.0.7...v3.2.1) Updates `grpcio-health-checking` from 1.60.0 to 1.70.0 Updates `grpcio` from 1.60.0 to 1.70.0 - [Release notes](https://github.com/grpc/grpc/releases) - [Changelog](https://github.com/grpc/grpc/blob/master/doc/grpc_release_schedule.md) - [Commits](https://github.com/grpc/grpc/compare/v1.60.0...v1.70.0) Updates `opentelemetry-distro` from 0.46b0 to 0.50b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `python-dotenv` from 1.0.0 to 1.0.1 - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](https://github.com/theskumar/python-dotenv/compare/v1.0.0...v1.0.1) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: charset-normalizer dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: click dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: deprecated dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: flask dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: flask-cors dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: gevent dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: geventhttpclient dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: googleapis-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: greenlet dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: idna dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: itsdangerous dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: jinja2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: locust dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: locust-plugins dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: markupsafe dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: msgpack dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-exporter-otlp-proto-grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-jinja2 dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-requests dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-system-metrics dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-urllib3 dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-proto dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-semantic-conventions dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-util-http dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: openfeature-sdk dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: protobuf dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: psutil dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: pyzmq dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: requests dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: six dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: typing-extensions dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: urllib3 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: werkzeug dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: wrapt dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: zope-interface dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: python-json-logger dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: grpcio-health-checking dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: grpcio dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-distro dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: python-dotenv dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: certifi dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: charset-normalizer dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: click dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: deprecated dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: flask dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: flask-cors dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: gevent dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: geventhttpclient dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: googleapis-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: greenlet dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: idna dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: itsdangerous dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: jinja2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: locust dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: locust-plugins dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: markupsafe dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: msgpack dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-exporter-otlp-proto-grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-jinja2 dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-requests dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-system-metrics dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-urllib3 dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-proto dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-semantic-conventions dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-util-http dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: openfeature-sdk dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: protobuf dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: psutil dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: pyzmq dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: requests dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: six dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: typing-extensions dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: urllib3 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: werkzeug dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: wrapt dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: zope-interface dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: python-json-logger dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: opentelemetry-exporter-otlp-proto-grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: openfeature-sdk dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: psutil dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: python-json-logger dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: grpcio-health-checking dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: grpcio dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-distro dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: python-dotenv dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies ... Signed-off-by: dependabot[bot] * Adjust dependencies to bump to work --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa --- src/load-generator/Dockerfile | 1 - src/load-generator/requirements.txt | 80 ++++++++++++++--------------- src/recommendation/requirements.txt | 16 +++--- 3 files changed, 48 insertions(+), 49 deletions(-) diff --git a/src/load-generator/Dockerfile b/src/load-generator/Dockerfile index 5a7ff9fa70..5a81683a60 100644 --- a/src/load-generator/Dockerfile +++ b/src/load-generator/Dockerfile @@ -17,7 +17,6 @@ WORKDIR /usr/src/app/ COPY --from=builder /reqs /usr/local COPY ./src/load-generator/locustfile.py . COPY ./src/load-generator/people.json . -ENV LOCUST_PLAYWRIGHT=1 ENV PLAYWRIGHT_BROWSERS_PATH=/opt/pw-browsers RUN playwright install --with-deps chromium ENTRYPOINT ["locust", "--skip-log-setup"] diff --git a/src/load-generator/requirements.txt b/src/load-generator/requirements.txt index dd520fee4d..9c0d5be564 100644 --- a/src/load-generator/requirements.txt +++ b/src/load-generator/requirements.txt @@ -1,48 +1,48 @@ backoff==2.2.1 brotli==1.1.0 -certifi==2023.7.22 -charset-normalizer==3.3.2 -click==8.1.7 +certifi==2024.12.14 +charset-normalizer==3.4.1 +click==8.1.8 configargparse==1.7 -deprecated==1.2.14 -flask==3.0.0 +deprecated==1.2.18 +flask==3.1.0 flask-basicauth==0.2.0 -flask-cors==4.0.0 -gevent==23.9.1 -geventhttpclient==2.0.11 -googleapis-common-protos==1.61.0 -greenlet==3.0.1 -idna==3.4 -itsdangerous==2.1.2 -jinja2==3.1.2 -locust==2.18.2 -locust_plugins==3.4.0 -markupsafe==2.1.3 -msgpack==1.0.7 -opentelemetry-api==1.25.0 -opentelemetry-exporter-otlp-proto-grpc==1.25.0 -opentelemetry-instrumentation==0.46b0 -opentelemetry-instrumentation-jinja2==0.46b0 -opentelemetry-instrumentation-requests==0.46b0 -opentelemetry-instrumentation-system-metrics==0.46b0 -opentelemetry-instrumentation-urllib3==0.46b0 -opentelemetry-proto==1.25.0 -opentelemetry-sdk==1.25.0 -opentelemetry-semantic-conventions==0.46b0 -opentelemetry-util-http==0.46b0 -openfeature-sdk==0.7.0 +flask-cors==5.0.0 +gevent==24.11.1 +geventhttpclient==2.3.3 +googleapis-common-protos==1.66.0 +greenlet==3.1.1 +idna==3.10 +itsdangerous==2.2.0 +jinja2==3.1.5 +locust==2.32.6 +locust-plugins[playwright]==4.5.3 +markupsafe==3.0.2 +msgpack==1.1.0 +opentelemetry-api==1.29.0 +opentelemetry-exporter-otlp-proto-grpc==1.29.0 +opentelemetry-instrumentation==0.50b0 +opentelemetry-instrumentation-jinja2==0.50b0 +opentelemetry-instrumentation-requests==0.50b0 +opentelemetry-instrumentation-system-metrics==0.50b0 +opentelemetry-instrumentation-urllib3==0.50b0 +opentelemetry-proto==1.29.0 +opentelemetry-sdk==1.29.0 +opentelemetry-semantic-conventions==0.50b0 +opentelemetry-util-http==0.50b0 +openfeature-sdk==0.7.4 openfeature-provider-flagd==0.1.5 openfeature-hooks-opentelemetry==0.1.3 -protobuf==4.25.2 -psutil==5.9.6 -pyzmq==25.1.1 -requests==2.31.0 +protobuf==5.29.3 +psutil==6.1.1 +pyzmq==26.2.0 +requests==2.32.3 roundrobin==0.0.4 -six==1.16.0 -typing-extensions==4.8.0 -urllib3==2.0.7 -werkzeug==3.0.1 -wrapt==1.16.0 +six==1.17.0 +typing-extensions==4.12.2 +urllib3==2.3.0 +werkzeug==3.1.3 +wrapt==1.17.2 zope-event==5.0 -zope-interface==6.1 -python-json-logger==2.0.7 +zope-interface==7.2 +python-json-logger==3.2.1 diff --git a/src/recommendation/requirements.txt b/src/recommendation/requirements.txt index f78e3636ff..43d60d8dce 100644 --- a/src/recommendation/requirements.txt +++ b/src/recommendation/requirements.txt @@ -1,11 +1,11 @@ -grpcio-health-checking==1.60.0 -grpcio==1.60.0 -opentelemetry-distro==0.46b0 -opentelemetry-exporter-otlp-proto-grpc==1.25.0 -python-dotenv==1.0.0 -python-json-logger==2.0.7 -openfeature-sdk==0.7.0 +grpcio-health-checking==1.70.0 +grpcio==1.70.0 +opentelemetry-distro==0.50b0 +opentelemetry-exporter-otlp-proto-grpc==1.29.0 +python-dotenv==1.0.1 +python-json-logger==3.2.1 +openfeature-sdk==0.7.4 openfeature-provider-flagd==0.1.5 openfeature-hooks-opentelemetry==0.1.3 -psutil==5.9.6 # Importing this will also import opentelemetry-instrumentation-system-metrics when running opentelemetry-bootstrap +psutil==6.1.1 # Importing this will also import opentelemetry-instrumentation-system-metrics when running opentelemetry-bootstrap From a96a2d5a4726a1bc48ddf9fbde40357e740f8044 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2025 00:20:56 +0100 Subject: [PATCH 089/178] build(deps): bump the gradle-production-dependencies group across 2 directories with 23 updates (#1964) * build(deps): bump the gradle-production-dependencies group across 2 directories with 23 updates Bumps the gradle-production-dependencies group with 16 updates in the /src/ad directory: | Package | From | To | | --- | --- | --- | | [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) | `1.40.0` | `1.46.0` | | [io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom](https://github.com/open-telemetry/opentelemetry-java-instrumentation) | `2.6.0` | `2.12.0` | | [com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java) | `2.41.0` | `2.51.0` | | [io.grpc:grpc-protobuf](https://github.com/grpc/grpc-java) | `1.65.1` | `1.70.0` | | [io.grpc:grpc-stub](https://github.com/grpc/grpc-java) | `1.65.1` | `1.70.0` | | [io.grpc:grpc-netty](https://github.com/grpc/grpc-java) | `1.65.1` | `1.70.0` | | [io.grpc:grpc-services](https://github.com/grpc/grpc-java) | `1.65.1` | `1.70.0` | | [io.grpc:protoc-gen-grpc-java](https://github.com/grpc/grpc-java) | `1.65.1` | `1.70.0` | | org.apache.logging.log4j:log4j-core | `2.23.1` | `2.24.3` | | dev.openfeature.contrib.providers:flagd | `0.8.4` | `0.10.5` | | [dev.openfeature:sdk](https://github.com/open-feature/java-sdk) | `1.9.0` | `1.14.0` | | [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) | `2.17.2` | `2.18.2` | | [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.17.2` | `2.18.2` | | [io.netty:netty-tcnative-boringssl-static](https://github.com/netty/netty-tcnative) | `2.0.65.Final` | `2.0.69.Final` | | [com.google.protobuf:protoc](https://github.com/protocolbuffers/protobuf) | `3.25.3` | `4.29.3` | | com.github.ben-manes.versions | `0.51.0` | `0.52.0` | Bumps the gradle-production-dependencies group with 17 updates in the /src/fraud-detection directory: | Package | From | To | | --- | --- | --- | | [com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java) | `2.28.0` | `2.51.0` | | [io.grpc:grpc-protobuf](https://github.com/grpc/grpc-java) | `1.59.0` | `1.70.0` | | [io.grpc:grpc-stub](https://github.com/grpc/grpc-java) | `1.59.0` | `1.70.0` | | [io.grpc:grpc-netty](https://github.com/grpc/grpc-java) | `1.59.0` | `1.70.0` | | [io.grpc:grpc-services](https://github.com/grpc/grpc-java) | `1.59.0` | `1.70.0` | | [io.grpc:protoc-gen-grpc-java](https://github.com/grpc/grpc-java) | `1.59.0` | `1.70.0` | | org.apache.logging.log4j:log4j-core | `2.21.1` | `2.24.3` | | dev.openfeature.contrib.providers:flagd | `0.7.0` | `0.10.5` | | [dev.openfeature:sdk](https://github.com/open-feature/java-sdk) | `1.7.4` | `1.14.0` | | [com.google.protobuf:protobuf-java](https://github.com/protocolbuffers/protobuf) | `3.25.0` | `4.29.3` | | com.google.protobuf:protobuf-kotlin | `3.25.0` | `4.29.3` | | [com.google.protobuf:protoc](https://github.com/protocolbuffers/protobuf) | `3.25.0` | `4.29.3` | | org.apache.kafka:kafka-clients | `3.6.0` | `3.9.0` | | [io.opentelemetry:opentelemetry-api](https://github.com/open-telemetry/opentelemetry-java) | `1.38.0` | `1.46.0` | | [io.opentelemetry:opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-java) | `1.38.0` | `1.46.0` | | org.slf4j:slf4j-api | `2.0.9` | `2.0.16` | | jvm | `1.9.20` | `2.1.10` | Updates `io.opentelemetry:opentelemetry-bom` from 1.40.0 to 1.46.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.40.0...v1.46.0) Updates `io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom` from 2.6.0 to 2.12.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java-instrumentation/compare/v2.6.0...v2.12.0) Updates `com.google.api.grpc:proto-google-common-protos` from 2.41.0 to 2.51.0 - [Release notes](https://github.com/googleapis/sdk-platform-java/releases) - [Changelog](https://github.com/googleapis/sdk-platform-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/googleapis/sdk-platform-java/compare/v2.41.0...v2.51.0) Updates `io.grpc:grpc-protobuf` from 1.65.1 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-stub` from 1.65.1 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-netty` from 1.65.1 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-services` from 1.65.1 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:protoc-gen-grpc-java` from 1.65.1 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-stub` from 1.65.1 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-netty` from 1.65.1 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-services` from 1.65.1 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `org.apache.logging.log4j:log4j-core` from 2.23.1 to 2.24.3 Updates `dev.openfeature.contrib.providers:flagd` from 0.8.4 to 0.10.5 Updates `dev.openfeature:sdk` from 1.9.0 to 1.14.0 - [Release notes](https://github.com/open-feature/java-sdk/releases) - [Changelog](https://github.com/open-feature/java-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/java-sdk/compare/v1.9.0...v1.14.0) Updates `com.fasterxml.jackson.core:jackson-core` from 2.17.2 to 2.18.2 - [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.17.2...jackson-core-2.18.2) Updates `com.fasterxml.jackson.core:jackson-databind` from 2.17.2 to 2.18.2 - [Commits](https://github.com/FasterXML/jackson/commits) Updates `com.fasterxml.jackson.core:jackson-databind` from 2.17.2 to 2.18.2 - [Commits](https://github.com/FasterXML/jackson/commits) Updates `io.netty:netty-tcnative-boringssl-static` from 2.0.65.Final to 2.0.69.Final - [Release notes](https://github.com/netty/netty-tcnative/releases) - [Commits](https://github.com/netty/netty-tcnative/compare/netty-tcnative-parent-2.0.65.Final...netty-tcnative-parent-2.0.69.Final) Updates `com.google.protobuf:protoc` from 3.25.3 to 4.29.3 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/commits) Updates `io.grpc:protoc-gen-grpc-java` from 1.65.1 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `com.github.ben-manes.versions` from 0.51.0 to 0.52.0 Updates `com.google.api.grpc:proto-google-common-protos` from 2.28.0 to 2.51.0 - [Release notes](https://github.com/googleapis/sdk-platform-java/releases) - [Changelog](https://github.com/googleapis/sdk-platform-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/googleapis/sdk-platform-java/compare/v2.41.0...v2.51.0) Updates `io.grpc:grpc-protobuf` from 1.59.0 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-stub` from 1.59.0 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-netty` from 1.59.0 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-services` from 1.59.0 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:protoc-gen-grpc-java` from 1.59.0 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-stub` from 1.59.0 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-netty` from 1.59.0 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `io.grpc:grpc-services` from 1.59.0 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `org.apache.logging.log4j:log4j-core` from 2.21.1 to 2.24.3 Updates `dev.openfeature.contrib.providers:flagd` from 0.7.0 to 0.10.5 Updates `dev.openfeature:sdk` from 1.7.4 to 1.14.0 - [Release notes](https://github.com/open-feature/java-sdk/releases) - [Changelog](https://github.com/open-feature/java-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/java-sdk/compare/v1.9.0...v1.14.0) Updates `com.google.protobuf:protobuf-java` from 3.25.0 to 4.29.3 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/commits) Updates `com.google.protobuf:protobuf-kotlin` from 3.25.0 to 4.29.3 Updates `com.google.protobuf:protoc` from 3.25.0 to 4.29.3 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/commits) Updates `io.grpc:protoc-gen-grpc-java` from 1.59.0 to 1.70.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.65.1...v1.70.0) Updates `com.google.protobuf:protobuf-java` from 3.25.0 to 4.29.3 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/commits) Updates `org.apache.kafka:kafka-clients` from 3.6.0 to 3.9.0 Updates `io.opentelemetry:opentelemetry-api` from 1.38.0 to 1.46.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.38.0...v1.46.0) Updates `io.opentelemetry:opentelemetry-sdk` from 1.38.0 to 1.46.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.38.0...v1.46.0) Updates `org.slf4j:slf4j-api` from 2.0.9 to 2.0.16 Updates `com.google.protobuf:protobuf-kotlin` from 3.25.0 to 4.29.3 Updates `jvm` from 1.9.20 to 2.1.10 --- updated-dependencies: - dependency-name: io.opentelemetry:opentelemetry-bom dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.google.api.grpc:proto-google-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-stub dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-netty dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-services dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:protoc-gen-grpc-java dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-stub dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-netty dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-services dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: org.apache.logging.log4j:log4j-core dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: dev.openfeature.contrib.providers:flagd dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: dev.openfeature:sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.fasterxml.jackson.core:jackson-core dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.netty:netty-tcnative-boringssl-static dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protoc dependency-type: direct:production update-type: version-update:semver-major dependency-group: gradle-production-dependencies - dependency-name: io.grpc:protoc-gen-grpc-java dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.github.ben-manes.versions dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.google.api.grpc:proto-google-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-stub dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-netty dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-services dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:protoc-gen-grpc-java dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-stub dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-netty dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-services dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: org.apache.logging.log4j:log4j-core dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: dev.openfeature.contrib.providers:flagd dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: dev.openfeature:sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protobuf-java dependency-type: direct:production update-type: version-update:semver-major dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protobuf-kotlin dependency-type: direct:production update-type: version-update:semver-major dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protoc dependency-type: direct:production update-type: version-update:semver-major dependency-group: gradle-production-dependencies - dependency-name: io.grpc:protoc-gen-grpc-java dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protobuf-java dependency-type: direct:production update-type: version-update:semver-major dependency-group: gradle-production-dependencies - dependency-name: org.apache.kafka:kafka-clients dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.opentelemetry:opentelemetry-api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.opentelemetry:opentelemetry-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protobuf-kotlin dependency-type: direct:production update-type: version-update:semver-major dependency-group: gradle-production-dependencies - dependency-name: jvm dependency-type: direct:production update-type: version-update:semver-major dependency-group: gradle-production-dependencies ... Signed-off-by: dependabot[bot] * Bump gradle and add missing dependency to make ad build --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa --- src/ad/build.gradle | 23 +++++++++--------- src/ad/gradle/wrapper/gradle-wrapper.jar | Bin 43462 -> 43504 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- src/ad/gradlew | 7 ++++-- src/ad/gradlew.bat | 23 +++++++++--------- src/fraud-detection/build.gradle.kts | 22 ++++++++--------- .../gradle/wrapper/gradle-wrapper.jar | Bin 63375 -> 63721 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- src/fraud-detection/gradlew | 17 +++++++------ 9 files changed, 51 insertions(+), 45 deletions(-) mode change 100644 => 100755 src/ad/gradlew diff --git a/src/ad/build.gradle b/src/ad/build.gradle index 0af438a3d4..2cc35f6ff6 100644 --- a/src/ad/build.gradle +++ b/src/ad/build.gradle @@ -4,7 +4,7 @@ plugins { id 'com.github.sherter.google-java-format' version '0.9' id 'idea' id 'application' - id 'com.github.ben-manes.versions' version '0.51.0' + id 'com.github.ben-manes.versions' version '0.52.0' } repositories { @@ -16,11 +16,11 @@ description = 'Ad Service' group = "ad" version = "0.1.0-SNAPSHOT" -def opentelemetryVersion = "1.40.0" -def opentelemetryInstrumentationVersion = "2.6.0" -def grpcVersion = "1.65.1" -def jacksonVersion = "2.17.2" -def protocVersion = "3.25.3" +def opentelemetryVersion = "1.46.0" +def opentelemetryInstrumentationVersion = "2.12.0" +def grpcVersion = "1.70.0" +def jacksonVersion = "2.18.2" +def protocVersion = "4.29.3" tasks.withType(JavaCompile).configureEach { sourceCompatibility = JavaVersion.VERSION_21 @@ -40,7 +40,8 @@ dependencies { implementation platform("io.opentelemetry:opentelemetry-bom:${opentelemetryVersion}") implementation platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:${opentelemetryInstrumentationVersion}") - implementation "com.google.api.grpc:proto-google-common-protos:2.41.0", + implementation "com.google.api.grpc:proto-google-common-protos:2.51.0", + "com.google.protobuf:protobuf-java:${protocVersion}", "javax.annotation:javax.annotation-api:1.3.2", "io.grpc:grpc-protobuf:${grpcVersion}", "io.grpc:grpc-stub:${grpcVersion}", @@ -49,13 +50,13 @@ dependencies { "io.opentelemetry:opentelemetry-api", "io.opentelemetry:opentelemetry-sdk", "io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations", - "org.apache.logging.log4j:log4j-core:2.23.1", - "dev.openfeature.contrib.providers:flagd:0.8.4", - 'dev.openfeature:sdk:1.9.0' + "org.apache.logging.log4j:log4j-core:2.24.3", + "dev.openfeature.contrib.providers:flagd:0.10.5", + 'dev.openfeature:sdk:1.14.0' runtimeOnly "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}", "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}", - "io.netty:netty-tcnative-boringssl-static:2.0.65.Final" + "io.netty:netty-tcnative-boringssl-static:2.0.69.Final" } } diff --git a/src/ad/gradle/wrapper/gradle-wrapper.jar b/src/ad/gradle/wrapper/gradle-wrapper.jar index d64cd4917707c1f8861d8cb53dd15194d4248596..2c3521197d7c4586c843d1d3e9090525f1898cde 100644 GIT binary patch delta 34463 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 SXRcJ{65?fGI57uQ5&!`B?F@7P delta 34554 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 diff --git a/src/ad/gradle/wrapper/gradle-wrapper.properties b/src/ad/gradle/wrapper/gradle-wrapper.properties index 09523c0e54..e18bc253b8 100644 --- a/src/ad/gradle/wrapper/gradle-wrapper.properties +++ b/src/ad/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/ad/gradlew b/src/ad/gradlew old mode 100644 new mode 100755 index 1aa94a4269..f5feea6d6b --- a/src/ad/gradlew +++ b/src/ad/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/src/ad/gradlew.bat b/src/ad/gradlew.bat index d45ec1e591..9d21a21834 100644 --- a/src/ad/gradlew.bat +++ b/src/ad/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,11 +45,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -90,4 +92,3 @@ exit /b %EXIT_CODE% if "%OS%"=="Windows_NT" endlocal :omega - diff --git a/src/fraud-detection/build.gradle.kts b/src/fraud-detection/build.gradle.kts index d1dcc07a6b..6d74c58167 100644 --- a/src/fraud-detection/build.gradle.kts +++ b/src/fraud-detection/build.gradle.kts @@ -3,7 +3,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import com.google.protobuf.gradle.* plugins { - kotlin("jvm") version "1.9.20" + kotlin("jvm") version "2.1.10" application id("java") id("idea") @@ -15,8 +15,8 @@ group = "io.opentelemetry" version = "1.0" -val grpcVersion = "1.59.0" -val protobufVersion = "3.25.0" +val grpcVersion = "1.70.0" +val protobufVersion = "4.29.3" repositories { @@ -30,20 +30,20 @@ dependencies { implementation("com.google.protobuf:protobuf-java:${protobufVersion}") testImplementation(kotlin("test")) implementation(kotlin("script-runtime")) - implementation("org.apache.kafka:kafka-clients:3.6.0") - implementation("com.google.api.grpc:proto-google-common-protos:2.28.0") + implementation("org.apache.kafka:kafka-clients:3.9.0") + implementation("com.google.api.grpc:proto-google-common-protos:2.51.0") implementation("io.grpc:grpc-protobuf:${grpcVersion}") implementation("io.grpc:grpc-stub:${grpcVersion}") implementation("io.grpc:grpc-netty:${grpcVersion}") implementation("io.grpc:grpc-services:${grpcVersion}") - implementation("io.opentelemetry:opentelemetry-api:1.38.0") - implementation("io.opentelemetry:opentelemetry-sdk:1.38.0") + implementation("io.opentelemetry:opentelemetry-api:1.46.0") + implementation("io.opentelemetry:opentelemetry-sdk:1.46.0") implementation("io.opentelemetry:opentelemetry-extension-annotations:1.18.0") - implementation("org.apache.logging.log4j:log4j-core:2.21.1") - implementation("org.slf4j:slf4j-api:2.0.9") + implementation("org.apache.logging.log4j:log4j-core:2.24.3") + implementation("org.slf4j:slf4j-api:2.0.16") implementation("com.google.protobuf:protobuf-kotlin:${protobufVersion}") - implementation("dev.openfeature:sdk:1.7.4") - implementation("dev.openfeature.contrib.providers:flagd:0.7.0") + implementation("dev.openfeature:sdk:1.14.0") + implementation("dev.openfeature.contrib.providers:flagd:0.10.5") if (JavaVersion.current().isJava9Compatible) { // Workaround for @javax.annotation.Generated diff --git a/src/fraud-detection/gradle/wrapper/gradle-wrapper.jar b/src/fraud-detection/gradle/wrapper/gradle-wrapper.jar index 033e24c4cdf41af1ab109bc7f253b2b887023340..7f93135c49b765f8051ef9d0a6055ff8e46073d8 100644 GIT binary patch delta 28216 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 diff --git a/src/fraud-detection/gradle/wrapper/gradle-wrapper.properties b/src/fraud-detection/gradle/wrapper/gradle-wrapper.properties index 3fa8f862f7..e18bc253b8 100644 --- a/src/fraud-detection/gradle/wrapper/gradle-wrapper.properties +++ b/src/fraud-detection/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/fraud-detection/gradlew b/src/fraud-detection/gradlew index fcb6fca147..1aa94a4269 100755 --- a/src/fraud-detection/gradlew +++ b/src/fraud-detection/gradlew @@ -83,7 +83,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -144,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -201,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ From af9d8f5504ce50142054c261c8b3b159cf63503c Mon Sep 17 00:00:00 2001 From: Saurabh D <47896520+saurabhdes@users.noreply.github.com> Date: Tue, 28 Jan 2025 23:06:54 -0800 Subject: [PATCH 090/178] updated AppDynamics Blog link (#1970) Co-authored-by: Juliano Costa --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 67e6ac183c..8a3a52103a 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ Emeritus: [AlibabaCloud LogService]: https://github.com/aliyun-sls/opentelemetry-demo -[AppDynamics]: https://www.appdynamics.com/blog/cloud/how-to-observe-opentelemetry-demo-app-in-appdynamics-cloud/ +[AppDynamics]: https://community.appdynamics.com/t5/Knowledge-Base/How-to-observe-OpenTelemetry-demo-app-in-Splunk-AppDynamics/ta-p/58584 [Aspecto]: https://github.com/aspecto-io/opentelemetry-demo [Axiom]: https://play.axiom.co/axiom-play-qf1k/dashboards/otel.traces.otel-demo-traces [Axoflow]: https://axoflow.com/opentelemetry-support-in-more-detail-in-axosyslog-and-syslog-ng/ From 8864fb9a2090e26506d4dccfe58a3b675074098d Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Wed, 29 Jan 2025 19:46:49 +0100 Subject: [PATCH 091/178] [chore] specify npm folders to avoid reactive native updates (#1974) --- .github/dependabot.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8adf1226fa..4fd20ed5da 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -52,7 +52,9 @@ updates: interval: "daily" - package-ecosystem: "npm" directories: - - "/src/**/*" + - "/src/flagd-ui/*" + - "/src/frontend/*" + - "/src/payment/*" groups: npm-production-dependencies: dependency-type: "production" From f92dd4a6ad00f0c2287ae45916e4eadc61456a46 Mon Sep 17 00:00:00 2001 From: Jonathan Munz Date: Thu, 30 Jan 2025 02:44:57 -0500 Subject: [PATCH 092/178] revert react-native dependency updates (#1975) --- src/react-native-app/package-lock.json | 9978 ++++++++++++++++-------- src/react-native-app/package.json | 80 +- 2 files changed, 6756 insertions(+), 3302 deletions(-) diff --git a/src/react-native-app/package-lock.json b/src/react-native-app/package-lock.json index ea4e5ea678..5b7087dd91 100644 --- a/src/react-native-app/package-lock.json +++ b/src/react-native-app/package-lock.json @@ -8,76 +8,62 @@ "name": "reactnativeapp", "version": "1.0.0", "dependencies": { - "@expo/metro-config": "^0.19.9", + "@expo/metro-config": "^0.19.4", "@expo/vector-icons": "^14.0.0", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/core": "^1.30.1", - "@opentelemetry/exporter-trace-otlp-http": "^0.57.1", - "@opentelemetry/instrumentation": "^0.57.1", - "@opentelemetry/instrumentation-fetch": "^0.57.1", - "@opentelemetry/instrumentation-xml-http-request": "^0.57.1", - "@opentelemetry/resources": "^1.30.1", - "@opentelemetry/sdk-trace-base": "^1.30.1", - "@opentelemetry/sdk-trace-web": "^1.30.1", + "@opentelemetry/core": "^1.28.0", + "@opentelemetry/exporter-trace-otlp-http": "^0.52.0", + "@opentelemetry/instrumentation": "^0.55.0", + "@opentelemetry/instrumentation-fetch": "^0.55.0", + "@opentelemetry/instrumentation-xml-http-request": "^0.55.0", + "@opentelemetry/resources": "^1.28.0", + "@opentelemetry/sdk-trace-base": "^1.28.0", + "@opentelemetry/sdk-trace-web": "^1.28.0", "@opentelemetry/semantic-conventions": "^1.28.0", "@react-native-async-storage/async-storage": "^2.0.0", - "@react-navigation/native": "^7.0.14", - "@tanstack/react-query": "5.64.1", + "@react-navigation/native": "^6.0.2", + "@tanstack/react-query": "4.36.1", "@types/react-native-get-random-values": "^1.8.2", "@types/uuid": "^10.0.0", - "expo": "~52.0.25", - "expo-constants": "~17.0.4", - "expo-font": "~13.0.3", - "expo-linking": "~7.0.4", - "expo-router": "~4.0.16", - "expo-splash-screen": "~0.29.20", - "expo-status-bar": "~2.0.1", - "expo-system-ui": "~4.0.7", - "expo-web-browser": "~14.0.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-hook-form": "^7.54.2", - "react-native": "0.76.6", - "react-native-device-info": "^14.0.2", - "react-native-gesture-handler": "~2.22.0", + "expo": "~51.0.14", + "expo-constants": "~16.0.2", + "expo-font": "~12.0.7", + "expo-linking": "~6.3.1", + "expo-router": "~3.5.16", + "expo-splash-screen": "~0.27.5", + "expo-status-bar": "~1.12.1", + "expo-system-ui": "~3.0.6", + "expo-web-browser": "~13.0.3", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-hook-form": "^7.53.2", + "react-native": "0.74.2", + "react-native-device-info": "^11.1.0", + "react-native-gesture-handler": "~2.16.1", "react-native-get-random-values": "^1.11.0", - "react-native-reanimated": "~3.16.7", + "react-native-reanimated": "~3.10.1", "react-native-root-toast": "^3.6.0", - "react-native-safe-area-context": "5.1.0", - "react-native-screens": "4.5.0", + "react-native-safe-area-context": "4.10.1", + "react-native-screens": "3.31.1", "react-native-toast-message": "^2.2.1", "react-native-web": "~0.19.10", - "uuid": "^11.0.5" + "uuid": "^10.0.0" }, "devDependencies": { "@babel/core": "^7.20.0", "@types/jest": "^29.5.12", - "@types/react": "^18.2.0", - "@types/react-test-renderer": "^18.2.0", - "eslint": "^9.18.0", - "eslint-config-expo": "~8.0.1", - "eslint-config-prettier": "^10.0.1", - "eslint-plugin-prettier": "^5.2.3", + "@types/react": "~18.2.45", + "@types/react-test-renderer": "^18.0.7", + "eslint": "^8.57.0", + "eslint-config-expo": "~7.1.2", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.2.1", - "jest-expo": "~52.0.3", - "prettier": "^3.4.2", - "react-test-renderer": "^18.2.0", + "jest-expo": "~51.0.1", + "prettier": "^3.3.3", + "react-test-renderer": "18.2.0", "ts-proto": "1.181.1", - "typescript": "~5.7.3" - } - }, - "node_modules/@0no-co/graphql.web": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.13.tgz", - "integrity": "sha512-jqYxOevheVTU1S36ZdzAkJIdvRp2m3OYIG5SEoKDw5NI8eVwkoI0D/Q3DYNGmXCxkA6CQuoa7zvMiDPTLqUNuw==", - "license": "MIT", - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" - }, - "peerDependenciesMeta": { - "graphql": { - "optional": true - } + "typescript": "~5.3.3" } }, "node_modules/@ampproject/remapping": { @@ -244,6 +230,18 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", @@ -594,6 +592,25 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", @@ -643,6 +660,23 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", @@ -660,6 +694,60 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-optional-chaining": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", @@ -707,6 +795,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -719,6 +808,7 @@ "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" @@ -731,6 +821,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -834,6 +925,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" @@ -846,6 +938,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -945,6 +1038,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -960,6 +1054,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -1023,6 +1118,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-remap-async-to-generator": "^7.25.9", @@ -1088,6 +1184,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9" @@ -1285,6 +1382,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" @@ -1349,6 +1447,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1496,6 +1595,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1545,6 +1645,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -1735,6 +1836,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "regenerator-transform": "^0.15.2" @@ -1861,13 +1963,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", + "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1962,15 +2064,15 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.7.tgz", + "integrity": "sha512-Ycg2tnXwixaXOVb29rana8HNPgLVBof8qqtNQ9LE22IoyZboQbGSxI6ZySMdW3K5nAe6gu35IaJefUJflhUFTQ==", "license": "MIT", "peer": true, "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/compat-data": "^7.26.5", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", @@ -1984,7 +2086,7 @@ "@babel/plugin-transform-arrow-functions": "^7.25.9", "@babel/plugin-transform-async-generator-functions": "^7.25.9", "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.26.5", "@babel/plugin-transform-block-scoping": "^7.25.9", "@babel/plugin-transform-class-properties": "^7.25.9", "@babel/plugin-transform-class-static-block": "^7.26.0", @@ -1995,7 +2097,7 @@ "@babel/plugin-transform-duplicate-keys": "^7.25.9", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.26.3", "@babel/plugin-transform-export-namespace-from": "^7.25.9", "@babel/plugin-transform-for-of": "^7.25.9", "@babel/plugin-transform-function-name": "^7.25.9", @@ -2004,12 +2106,12 @@ "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", "@babel/plugin-transform-member-expression-literals": "^7.25.9", "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.26.3", "@babel/plugin-transform-modules-systemjs": "^7.25.9", "@babel/plugin-transform-modules-umd": "^7.25.9", "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", "@babel/plugin-transform-numeric-separator": "^7.25.9", "@babel/plugin-transform-object-rest-spread": "^7.25.9", "@babel/plugin-transform-object-super": "^7.25.9", @@ -2026,7 +2128,7 @@ "@babel/plugin-transform-spread": "^7.25.9", "@babel/plugin-transform-sticky-regex": "^7.25.9", "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.26.7", "@babel/plugin-transform-unicode-escapes": "^7.25.9", "@babel/plugin-transform-unicode-property-regex": "^7.25.9", "@babel/plugin-transform-unicode-regex": "^7.25.9", @@ -2201,25 +2303,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse--for-generate-function-map": { - "name": "@babel/traverse", - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", - "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/parser": "^7.26.5", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.5", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/types": { "version": "7.26.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", @@ -2271,19 +2354,6 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@eslint-community/regexpp": { "version": "4.12.1", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", @@ -2294,45 +2364,17 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@eslint/config-array": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", - "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.5", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", - "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", + "espree": "^9.6.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -2340,57 +2382,49 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=18" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/js": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", - "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", - "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "Apache-2.0", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", - "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.10.0", - "levn": "^0.4.1" - }, + "license": "MIT", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@expo/bunyan": { @@ -2415,80 +2449,86 @@ } }, "node_modules/@expo/cli": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.22.10.tgz", - "integrity": "sha512-MA4TOtf6x8ixVaQbUINgest/DsrWcMVGMmjXYtnhUfwQGvZtJC+aI+xMBM7ow2OqY2B/xfoRcgqkvWkl36yxkA==", + "version": "0.18.31", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.18.31.tgz", + "integrity": "sha512-v9llw9fT3Uv+TCM6Xllo54t672CuYtinEQZ2LPJ2EJsCwuTc4Cd2gXQaouuIVD21VoeGQnr5JtJuWbF97sBKzQ==", "license": "MIT", "dependencies": { - "@0no-co/graphql.web": "^1.0.8", "@babel/runtime": "^7.20.0", - "@expo/code-signing-certificates": "^0.0.5", - "@expo/config": "~10.0.8", - "@expo/config-plugins": "~9.0.14", - "@expo/devcert": "^1.1.2", - "@expo/env": "~0.4.1", - "@expo/image-utils": "^0.6.4", - "@expo/json-file": "^9.0.1", - "@expo/metro-config": "~0.19.9", - "@expo/osascript": "^2.1.5", - "@expo/package-manager": "^1.7.1", - "@expo/plist": "^0.2.1", - "@expo/prebuild-config": "^8.0.25", - "@expo/rudder-sdk-node": "^1.1.1", + "@expo/code-signing-certificates": "0.0.5", + "@expo/config": "~9.0.0-beta.0", + "@expo/config-plugins": "~8.0.8", + "@expo/devcert": "^1.0.0", + "@expo/env": "~0.3.0", + "@expo/image-utils": "^0.5.0", + "@expo/json-file": "^8.3.0", + "@expo/metro-config": "0.18.11", + "@expo/osascript": "^2.0.31", + "@expo/package-manager": "^1.5.0", + "@expo/plist": "^0.1.0", + "@expo/prebuild-config": "7.0.9", + "@expo/rudder-sdk-node": "1.1.1", "@expo/spawn-async": "^1.7.2", "@expo/xcpretty": "^4.3.0", - "@react-native/dev-middleware": "0.76.6", - "@urql/core": "^5.0.6", - "@urql/exchange-retry": "^1.3.0", + "@react-native/dev-middleware": "0.74.85", + "@urql/core": "2.3.6", + "@urql/exchange-retry": "0.3.0", "accepts": "^1.3.8", - "arg": "^5.0.2", + "arg": "5.0.2", "better-opn": "~3.0.2", "bplist-creator": "0.0.7", "bplist-parser": "^0.3.1", "cacache": "^18.0.2", "chalk": "^4.0.0", "ci-info": "^3.3.0", - "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "env-editor": "^0.4.1", "fast-glob": "^3.3.2", + "find-yarn-workspace-root": "~2.0.0", "form-data": "^3.0.1", - "freeport-async": "^2.0.0", + "freeport-async": "2.0.0", "fs-extra": "~8.1.0", "getenv": "^1.0.0", - "glob": "^10.4.2", - "internal-ip": "^4.3.0", + "glob": "^7.1.7", + "graphql": "15.8.0", + "graphql-tag": "^2.10.1", + "https-proxy-agent": "^5.0.1", + "internal-ip": "4.3.0", "is-docker": "^2.0.0", "is-wsl": "^2.1.1", + "js-yaml": "^3.13.1", + "json-schema-deref-sync": "^0.13.0", "lodash.debounce": "^4.0.8", + "md5hex": "^1.0.0", "minimatch": "^3.0.4", + "node-fetch": "^2.6.7", "node-forge": "^1.3.1", - "npm-package-arg": "^11.0.0", - "ora": "^3.4.0", + "npm-package-arg": "^7.0.0", + "open": "^8.3.0", + "ora": "3.4.0", "picomatch": "^3.0.1", - "pretty-bytes": "^5.6.0", - "pretty-format": "^29.7.0", - "progress": "^2.0.3", + "pretty-bytes": "5.6.0", + "progress": "2.0.3", "prompts": "^2.3.2", "qrcode-terminal": "0.11.0", "require-from-string": "^2.0.2", "requireg": "^0.2.2", "resolve": "^1.22.2", "resolve-from": "^5.0.0", - "resolve.exports": "^2.0.3", + "resolve.exports": "^2.0.2", "semver": "^7.6.0", - "send": "^0.19.0", + "send": "^0.18.0", "slugify": "^1.3.4", "source-map-support": "~0.5.21", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", - "tar": "^6.2.1", + "tar": "^6.0.5", "temp-dir": "^2.0.0", "tempy": "^0.7.1", "terminal-link": "^2.1.1", - "undici": "^6.18.2", - "unique-string": "~2.0.0", + "text-table": "^0.2.0", + "url-join": "4.0.0", "wrap-ansi": "^7.0.0", "ws": "^8.12.1" }, @@ -2496,95 +2536,49 @@ "expo-internal": "build/bin/cli" } }, - "node_modules/@expo/cli/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@expo/cli/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@expo/cli/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/cli/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/@expo/code-signing-certificates": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz", - "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==", + "node_modules/@expo/cli/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "license": "MIT", "dependencies": { - "node-forge": "^1.2.1", - "nullthrows": "^1.1.1" + "@babel/highlight": "^7.10.4" } }, - "node_modules/@expo/config": { - "version": "10.0.8", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.8.tgz", - "integrity": "sha512-RaKwi8e6PbkMilRexdsxObLMdQwxhY6mlgel+l/eW+IfIw8HEydSU0ERlzYUjlGJxHLHUXe4rC2vw8FEvaowyQ==", + "node_modules/@expo/cli/node_modules/@expo/config": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", + "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~9.0.14", - "@expo/config-types": "^52.0.3", - "@expo/json-file": "^9.0.1", - "deepmerge": "^4.3.1", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/json-file": "^8.3.0", "getenv": "^1.0.0", - "glob": "^10.4.2", + "glob": "7.1.6", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0", - "resolve-workspace-root": "^2.0.0", "semver": "^7.6.0", "slugify": "^1.3.4", - "sucrase": "3.35.0" + "sucrase": "3.34.0" } }, - "node_modules/@expo/config-plugins": { - "version": "9.0.14", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.14.tgz", - "integrity": "sha512-Lx1ebV95rTFKKQmbu4wMPLz65rKn7mqSpfANdCx+KwRxuLY2JQls8V4h3lQjG6dW8NWf9qV5QaEFAgNB6VMyOQ==", + "node_modules/@expo/cli/node_modules/@expo/config-plugins": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", + "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", "license": "MIT", "dependencies": { - "@expo/config-types": "^52.0.3", - "@expo/json-file": "~9.0.1", - "@expo/plist": "^0.2.1", + "@expo/config-types": "^51.0.3", + "@expo/json-file": "~8.3.0", + "@expo/plist": "^0.1.0", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", - "debug": "^4.3.5", + "debug": "^4.3.1", + "find-up": "~5.0.0", "getenv": "^1.0.0", - "glob": "^10.4.2", + "glob": "7.1.6", "resolve-from": "^5.0.0", "semver": "^7.5.4", "slash": "^3.0.0", @@ -2593,78 +2587,58 @@ "xml2js": "0.6.0" } }, - "node_modules/@expo/config-plugins/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/@expo/cli/node_modules/@expo/config-plugins/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=10" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@expo/config-types": { - "version": "52.0.3", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.3.tgz", - "integrity": "sha512-muxvuARmbysH5OGaiBRlh1Y6vfdmL56JtpXxB+y2Hfhu0ezG1U4FjZYBIacthckZPvnDCcP3xIu1R+eTo7/QFA==", + "node_modules/@expo/cli/node_modules/@expo/config-types": { + "version": "51.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", + "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==", "license": "MIT" }, - "node_modules/@expo/config/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@expo/config/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/@expo/cli/node_modules/@expo/config/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/devcert": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.4.tgz", - "integrity": "sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==", - "license": "MIT", - "dependencies": { - "application-config-path": "^0.1.0", - "command-exists": "^1.2.4", - "debug": "^3.1.0", - "eol": "^0.9.1", - "get-port": "^3.2.0", - "glob": "^10.4.2", - "lodash": "^4.17.21", - "mkdirp": "^0.5.1", - "password-prompt": "^1.0.4", - "sudo-prompt": "^8.2.0", - "tmp": "^0.0.33", - "tslib": "^2.4.0" - } - }, - "node_modules/@expo/devcert/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@expo/env": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.4.1.tgz", - "integrity": "sha512-oDtbO3i9yXD1nx93acWiPTWGljJ3vABn35x1NAbqtQ2JL6mFOcRcArt1dwi4imZyLnG4VCcjabT9irj+LgYntw==", + "node_modules/@expo/cli/node_modules/@expo/env": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz", + "integrity": "sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==", "license": "MIT", "dependencies": { "chalk": "^4.0.0", @@ -2674,182 +2648,70 @@ "getenv": "^1.0.0" } }, - "node_modules/@expo/fingerprint": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.11.7.tgz", - "integrity": "sha512-2rfYVS4nqWmOPQk+AL5GPfPSawbqqmI5mL++bxAhWADt+d+fjoQYfIrGtjZxQ30f9o/a1PrRPVSuh2j09+diVg==", - "license": "MIT", - "dependencies": { - "@expo/spawn-async": "^1.7.2", - "arg": "^5.0.2", - "chalk": "^4.1.2", - "debug": "^4.3.4", - "find-up": "^5.0.0", - "getenv": "^1.0.0", - "minimatch": "^3.0.4", - "p-limit": "^3.1.0", - "resolve-from": "^5.0.0", - "semver": "^7.6.0" - }, - "bin": { - "fingerprint": "bin/cli.js" - } - }, - "node_modules/@expo/fingerprint/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/image-utils": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.6.4.tgz", - "integrity": "sha512-L++1PBzSvf5iYc6UHJ8Db8GcYNkfLDw+a+zqEFBQ3xqRXP/muxb/O7wuiMFlXrj/cfkx4e0U+z1a4ceV0A7S7Q==", - "license": "MIT", - "dependencies": { - "@expo/spawn-async": "^1.7.2", - "chalk": "^4.0.0", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "jimp-compact": "0.16.1", - "parse-png": "^2.1.0", - "resolve-from": "^5.0.0", - "semver": "^7.6.0", - "temp-dir": "~2.0.0", - "unique-string": "~2.0.0" - } - }, - "node_modules/@expo/image-utils/node_modules/fs-extra": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", - "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/image-utils/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/image-utils/node_modules/universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@expo/json-file": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.1.tgz", - "integrity": "sha512-ZVPhbbEBEwafPCJ0+kI25O2Iivt3XKHEKAADCml1q2cmOIbQnKgLyn8DpOJXqWEyRQr/VWS+hflBh8DU2YFSqg==", + "node_modules/@expo/cli/node_modules/@expo/json-file": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", - "json5": "^2.2.3", + "json5": "^2.2.2", "write-file-atomic": "^2.3.0" } }, - "node_modules/@expo/json-file/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@expo/metro-config": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.19.9.tgz", - "integrity": "sha512-JAsLWhFQqwLH0KsI4OMbPXsKFji5KJEmsi+/02Sz1GCT17YrjRmv1fZ91regUS/FUH2Y/PDAE/+2ulrTgMeG7A==", + "node_modules/@expo/cli/node_modules/@expo/metro-config": { + "version": "0.18.11", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.11.tgz", + "integrity": "sha512-/uOq55VbSf9yMbUO1BudkUM2SsGW1c5hr9BnhIqYqcsFv0Jp5D3DtJ4rljDKaUeNLbwr6m7pqIrkSMq5NrYf4Q==", "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", - "@expo/config": "~10.0.8", - "@expo/env": "~0.4.1", - "@expo/json-file": "~9.0.1", + "@expo/config": "~9.0.0-beta.0", + "@expo/env": "~0.3.0", + "@expo/json-file": "~8.3.0", "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "debug": "^4.3.2", + "find-yarn-workspace-root": "~2.0.0", "fs-extra": "^9.1.0", "getenv": "^1.0.0", - "glob": "^10.4.2", + "glob": "^7.2.3", "jsc-safe-url": "^0.2.4", - "lightningcss": "~1.27.0", - "minimatch": "^3.0.4", + "lightningcss": "~1.19.0", "postcss": "~8.4.32", "resolve-from": "^5.0.0" } }, - "node_modules/@expo/metro-runtime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-4.0.1.tgz", - "integrity": "sha512-CRpbLvdJ1T42S+lrYa1iZp1KfDeBp4oeZOK3hdpiS5n0vR0nhD6sC1gGF0sTboCTp64tLteikz5Y3j53dvgOIw==", - "license": "MIT", - "peerDependencies": { - "react-native": "*" - } - }, - "node_modules/@expo/osascript": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.5.tgz", - "integrity": "sha512-Cp7YF7msGiTAIbFdzNovwHBfecdMLVL5XzSqq4xQz72ALFCQ3uSIUXRph1QV2r61ugH7Yem0gY8yi7RcDlI4qg==", + "node_modules/@expo/cli/node_modules/@expo/metro-config/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "license": "MIT", "dependencies": { - "@expo/spawn-async": "^1.7.2", - "exec-async": "^2.2.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/@expo/package-manager": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.7.1.tgz", - "integrity": "sha512-DKbELrTOdl7U3KT0C07Aka9P+sUP3LL+1UTKf1KmLx2x2gPH1IC+c68N7iQlwNt+yA37qIw6/vKoqyTGu5EL9g==", + "node_modules/@expo/cli/node_modules/@expo/plist": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", "license": "MIT", "dependencies": { - "@expo/json-file": "^9.0.1", - "@expo/spawn-async": "^1.7.2", - "ansi-regex": "^5.0.0", - "chalk": "^4.0.0", - "find-up": "^5.0.0", - "js-yaml": "^3.13.1", - "micromatch": "^4.0.8", - "npm-package-arg": "^11.0.0", - "ora": "^3.4.0", - "resolve-workspace-root": "^2.0.0", - "split": "^1.0.1", - "sudo-prompt": "9.1.1" + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" } }, - "node_modules/@expo/package-manager/node_modules/argparse": { + "node_modules/@expo/cli/node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", @@ -2858,863 +2720,880 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/@expo/package-manager/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@expo/cli/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">= 6" } }, - "node_modules/@expo/package-manager/node_modules/sudo-prompt": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", - "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "license": "MIT" - }, - "node_modules/@expo/plist": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.1.tgz", - "integrity": "sha512-9TaXGuNxa0LQwHQn4rYiU6YaERv6dPnQgsdKWq2rKKTr6LWOtGNQCi/yOk/HBLeZSxBm59APT5/6x60uRvr0Mg==", + "node_modules/@expo/cli/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "license": "MIT", "dependencies": { - "@xmldom/xmldom": "~0.7.7", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" - } - }, - "node_modules/@expo/prebuild-config": { - "version": "8.0.25", - "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-8.0.25.tgz", - "integrity": "sha512-xYHV8eiydZEDedf2AGaOFRFwcGlaSzrqQH94dwX42urNCU03FO0RUb7yPp4nkb7WNFg5Ov6PDsV7ES+YwzNgYQ==", - "license": "MIT", - "dependencies": { - "@expo/config": "~10.0.8", - "@expo/config-plugins": "~9.0.14", - "@expo/config-types": "^52.0.3", - "@expo/image-utils": "^0.6.4", - "@expo/json-file": "^9.0.1", - "@react-native/normalize-colors": "0.76.6", - "debug": "^4.3.1", - "fs-extra": "^9.0.0", - "resolve-from": "^5.0.0", - "semver": "^7.6.0", - "xml2js": "0.6.0" - } - }, - "node_modules/@expo/prebuild-config/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/rudder-sdk-node": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", - "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", - "license": "MIT", - "dependencies": { - "@expo/bunyan": "^4.0.0", - "@segment/loosely-validate-event": "^2.0.0", - "fetch-retry": "^4.1.1", - "md5": "^2.2.1", - "node-fetch": "^2.6.1", - "remove-trailing-slash": "^0.1.0", - "uuid": "^8.3.2" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=12" + "node": ">=6 <7 || >=8" } }, - "node_modules/@expo/rudder-sdk-node/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/@expo/cli/node_modules/fs-extra/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@expo/sdk-runtime-versions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", - "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==", - "license": "MIT" - }, - "node_modules/@expo/server": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@expo/server/-/server-0.5.1.tgz", - "integrity": "sha512-lk8pKKw0eVP6rqkDR46vQB3vLA46z4KNGrqHpjD/SvMu1cGaRmQG2cQdX44mQtG8WyO9EYau+fBMHQQS2OTFKg==", + "node_modules/@expo/cli/node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "license": "MIT", - "dependencies": { - "@remix-run/node": "^2.12.0", - "abort-controller": "^3.0.0", - "debug": "^4.3.4", - "source-map-support": "~0.5.21" + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/@expo/spawn-async": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz", - "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==", - "license": "MIT", + "node_modules/@expo/cli/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.3" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@expo/vector-icons": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.4.tgz", - "integrity": "sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ==", + "node_modules/@expo/cli/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "license": "MIT", "dependencies": { - "prop-types": "^15.8.1" - } - }, - "node_modules/@expo/xcpretty": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.2.tgz", - "integrity": "sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/code-frame": "7.10.4", - "chalk": "^4.1.0", - "find-up": "^5.0.0", - "js-yaml": "^4.1.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "bin": { - "excpretty": "build/cli.js" + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "license": "MIT", + "node_modules/@expo/cli/node_modules/lightningcss": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz", + "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==", + "license": "MPL-2.0", "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", + "detect-libc": "^1.0.3" + }, "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.19.0", + "lightningcss-darwin-x64": "1.19.0", + "lightningcss-linux-arm-gnueabihf": "1.19.0", + "lightningcss-linux-arm64-gnu": "1.19.0", + "lightningcss-linux-arm64-musl": "1.19.0", + "lightningcss-linux-x64-gnu": "1.19.0", + "lightningcss-linux-x64-musl": "1.19.0", + "lightningcss-win32-x64-msvc": "1.19.0" + } + }, + "node_modules/@expo/cli/node_modules/lightningcss-darwin-arm64": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz", + "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=18.18.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@expo/cli/node_modules/lightningcss-darwin-x64": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz", + "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=18.18" + "node": ">= 12.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@expo/cli/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz", + "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12.22" + "node": ">= 12.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@expo/cli/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz", + "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=18.18" + "node": ">= 12.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, + "node_modules/@expo/cli/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz", + "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", + "node_modules/@expo/cli/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz", + "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" + "node": ">= 12.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "node_modules/@expo/cli/node_modules/lightningcss-linux-x64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz", + "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@expo/cli/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz", + "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=12" + "node": ">= 12.0.0" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@isaacs/ttlcache": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", - "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", + "node_modules/@expo/cli/node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "license": "ISC", + "node_modules/@expo/cli/node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" }, "engines": { "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", + "node_modules/@expo/cli/node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { - "sprintf-js": "~1.0.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@expo/code-signing-certificates": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz", + "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==", "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" + "node-forge": "^1.2.1", + "nullthrows": "^1.1.1" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@expo/config": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.8.tgz", + "integrity": "sha512-RaKwi8e6PbkMilRexdsxObLMdQwxhY6mlgel+l/eW+IfIw8HEydSU0ERlzYUjlGJxHLHUXe4rC2vw8FEvaowyQ==", "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~9.0.14", + "@expo/config-types": "^52.0.3", + "@expo/json-file": "^9.0.1", + "deepmerge": "^4.3.1", + "getenv": "^1.0.0", + "glob": "^10.4.2", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "resolve-workspace-root": "^2.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "3.35.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/@expo/config-plugins": { + "version": "9.0.14", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.14.tgz", + "integrity": "sha512-Lx1ebV95rTFKKQmbu4wMPLz65rKn7mqSpfANdCx+KwRxuLY2JQls8V4h3lQjG6dW8NWf9qV5QaEFAgNB6VMyOQ==", "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "@expo/config-types": "^52.0.3", + "@expo/json-file": "~9.0.1", + "@expo/plist": "^0.2.1", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.5", + "getenv": "^1.0.0", + "glob": "^10.4.2", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" + } + }, + "node_modules/@expo/config-plugins/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@expo/config-types": { + "version": "52.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.3.tgz", + "integrity": "sha512-muxvuARmbysH5OGaiBRlh1Y6vfdmL56JtpXxB+y2Hfhu0ezG1U4FjZYBIacthckZPvnDCcP3xIu1R+eTo7/QFA==", + "license": "MIT" + }, + "node_modules/@expo/config/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@expo/config/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/@expo/devcert": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.4.tgz", + "integrity": "sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==", "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "application-config-path": "^0.1.0", + "command-exists": "^1.2.4", + "debug": "^3.1.0", + "eol": "^0.9.1", + "get-port": "^3.2.0", + "glob": "^10.4.2", + "lodash": "^4.17.21", + "mkdirp": "^0.5.1", + "password-prompt": "^1.0.4", + "sudo-prompt": "^8.2.0", + "tmp": "^0.0.33", + "tslib": "^2.4.0" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@expo/devcert/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, + "node_modules/@expo/env": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.4.1.tgz", + "integrity": "sha512-oDtbO3i9yXD1nx93acWiPTWGljJ3vABn35x1NAbqtQ2JL6mFOcRcArt1dwi4imZyLnG4VCcjabT9irj+LgYntw==", "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "debug": "^4.3.4", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "getenv": "^1.0.0" } }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, + "node_modules/@expo/image-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.5.1.tgz", + "integrity": "sha512-U/GsFfFox88lXULmFJ9Shfl2aQGcwoKPF7fawSCLixIKtMCpsI+1r0h+5i0nQnmt9tHuzXZDL8+Dg1z6OhkI9A==", "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", + "@expo/spawn-async": "^1.7.2", "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "fs-extra": "9.0.0", + "getenv": "^1.0.0", + "jimp-compact": "0.16.1", + "node-fetch": "^2.6.0", + "parse-png": "^2.1.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "tempy": "0.3.0" } }, - "node_modules/@jest/core/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "node_modules/@expo/image-utils/node_modules/crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/@jest/create-cache-key-function": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", - "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", + "node_modules/@expo/image-utils/node_modules/fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" + "node_modules/@expo/image-utils/node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, + "node_modules/@expo/image-utils/node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", "license": "MIT", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, + "node_modules/@expo/image-utils/node_modules/tempy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3" + "temp-dir": "^1.0.0", + "type-fest": "^0.3.1", + "unique-string": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, + "node_modules/@expo/image-utils/node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, + "node_modules/@expo/image-utils/node_modules/unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" + "crypto-random-string": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, + "node_modules/@expo/image-utils/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">= 10.0.0" } }, - "node_modules/@jest/reporters/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", + "node_modules/@expo/json-file": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.1.tgz", + "integrity": "sha512-ZVPhbbEBEwafPCJ0+kI25O2Iivt3XKHEKAADCml1q2cmOIbQnKgLyn8DpOJXqWEyRQr/VWS+hflBh8DU2YFSqg==", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.3", + "write-file-atomic": "^2.3.0" } }, - "node_modules/@jest/reporters/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "node_modules/@expo/json-file/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "@babel/highlight": "^7.10.4" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@expo/metro-config": { + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.19.9.tgz", + "integrity": "sha512-JAsLWhFQqwLH0KsI4OMbPXsKFji5KJEmsi+/02Sz1GCT17YrjRmv1fZ91regUS/FUH2Y/PDAE/+2ulrTgMeG7A==", "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.5", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", + "@expo/config": "~10.0.8", + "@expo/env": "~0.4.1", + "@expo/json-file": "~9.0.1", + "@expo/spawn-async": "^1.7.2", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "fs-extra": "^9.1.0", + "getenv": "^1.0.0", + "glob": "^10.4.2", + "jsc-safe-url": "^0.2.4", + "lightningcss": "~1.27.0", + "minimatch": "^3.0.4", + "postcss": "~8.4.32", + "resolve-from": "^5.0.0" } }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, + "node_modules/@expo/metro-runtime": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-3.2.3.tgz", + "integrity": "sha512-v5ji+fAGi7B9YavrxvekuF8gXEV/5fz0+PhaED5AaFDnbGB4IJIbpaiqK9nqZV1axjGZNQSw6Q8TsnFetCR3bQ==", + "license": "MIT", + "peerDependencies": { + "react-native": "*" + } + }, + "node_modules/@expo/osascript": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.5.tgz", + "integrity": "sha512-Cp7YF7msGiTAIbFdzNovwHBfecdMLVL5XzSqq4xQz72ALFCQ3uSIUXRph1QV2r61ugH7Yem0gY8yi7RcDlI4qg==", "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" + "@expo/spawn-async": "^1.7.2", + "exec-async": "^2.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, + "node_modules/@expo/package-manager": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.7.1.tgz", + "integrity": "sha512-DKbELrTOdl7U3KT0C07Aka9P+sUP3LL+1UTKf1KmLx2x2gPH1IC+c68N7iQlwNt+yA37qIw6/vKoqyTGu5EL9g==", "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@expo/json-file": "^9.0.1", + "@expo/spawn-async": "^1.7.2", + "ansi-regex": "^5.0.0", + "chalk": "^4.0.0", + "find-up": "^5.0.0", + "js-yaml": "^3.13.1", + "micromatch": "^4.0.8", + "npm-package-arg": "^11.0.0", + "ora": "^3.4.0", + "resolve-workspace-root": "^2.0.0", + "split": "^1.0.1", + "sudo-prompt": "9.1.1" } }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, + "node_modules/@expo/package-manager/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "license": "MIT", "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@expo/package-manager/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "node_modules/@expo/package-manager/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@jest/transform/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/@expo/package-manager/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "license": "ISC" }, - "node_modules/@jest/transform/node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "node_modules/@expo/package-manager/node_modules/npm-package-arg": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", "license": "ISC", "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "node_modules/@expo/package-manager/node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "node_modules/@expo/package-manager/node_modules/sudo-prompt": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", + "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT" + }, + "node_modules/@expo/package-manager/node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@expo/plist": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.1.tgz", + "integrity": "sha512-9TaXGuNxa0LQwHQn4rYiU6YaERv6dPnQgsdKWq2rKKTr6LWOtGNQCi/yOk/HBLeZSxBm59APT5/6x60uRvr0Mg==", "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/@expo/prebuild-config": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.9.tgz", + "integrity": "sha512-9i6Cg7jInpnGEHN0jxnW0P+0BexnePiBzmbUvzSbRXpdXihYUX2AKMu73jgzxn5P1hXOSkzNS7umaY+BZ+aBag==", + "license": "MIT", + "dependencies": { + "@expo/config": "~9.0.0-beta.0", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/image-utils": "^0.5.0", + "@expo/json-file": "^8.3.0", + "@react-native/normalize-colors": "0.74.85", + "debug": "^4.3.1", + "fs-extra": "^9.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "xml2js": "0.6.0" }, - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "expo-modules-autolinking": ">=0.8.1" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@expo/prebuild-config/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "license": "MIT", - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@babel/highlight": "^7.10.4" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@expo/prebuild-config/node_modules/@expo/config": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", + "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", "license": "MIT", - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/json-file": "^8.3.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "3.34.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "node_modules/@expo/prebuild-config/node_modules/@expo/config-plugins": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", + "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" + "@expo/config-types": "^51.0.3", + "@expo/json-file": "~8.3.0", + "@expo/plist": "^0.1.0", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "node_modules/@expo/prebuild-config/node_modules/@expo/config-types": { + "version": "51.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", + "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==", "license": "MIT" }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@expo/prebuild-config/node_modules/@expo/json-file": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.2", + "write-file-atomic": "^2.3.0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@expo/prebuild-config/node_modules/@expo/plist": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@expo/prebuild-config/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "license": "MIT", "engines": { - "node": ">= 8" + "node": ">= 6" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", - "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.4.0" - } - }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "node_modules/@expo/prebuild-config/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", "license": "ISC", "dependencies": { - "semver": "^7.3.5" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/@expo/prebuild-config/node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -3723,1081 +3602,3739 @@ "node": ">=10" } }, - "node_modules/@opentelemetry/api": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", - "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", - "license": "Apache-2.0", + "node_modules/@expo/prebuild-config/node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@opentelemetry/api-logs": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.1.tgz", - "integrity": "sha512-I4PHczeujhQAQv6ZBzqHYEUiggZL4IdSMixtVD3EYqbdrjujE7kRfI5QohjlPoJm8BvenoW5YaTMWRrbpot6tg==", - "license": "Apache-2.0", + "node_modules/@expo/rudder-sdk-node": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", + "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", + "license": "MIT", "dependencies": { - "@opentelemetry/api": "^1.3.0" + "@expo/bunyan": "^4.0.0", + "@segment/loosely-validate-event": "^2.0.0", + "fetch-retry": "^4.1.1", + "md5": "^2.2.1", + "node-fetch": "^2.6.1", + "remove-trailing-slash": "^0.1.0", + "uuid": "^8.3.2" }, "engines": { - "node": ">=14" + "node": ">=12" } }, - "node_modules/@opentelemetry/core": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", - "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", - "license": "Apache-2.0", + "node_modules/@expo/rudder-sdk-node/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@expo/sdk-runtime-versions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", + "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==", + "license": "MIT" + }, + "node_modules/@expo/server": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@expo/server/-/server-0.4.4.tgz", + "integrity": "sha512-q9ADBzMN5rZ/fgQ2mz5YIJuZ8gelQlhG2CQqToD+UvBLZvbaHCNxTTSs2KI1LzJvAaW5CWgWMatGvGF6iUQ0LA==", + "license": "MIT", "dependencies": { - "@opentelemetry/semantic-conventions": "1.28.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "@remix-run/node": "^2.7.2", + "abort-controller": "^3.0.0", + "debug": "^4.3.4", + "source-map-support": "~0.5.21" } }, - "node_modules/@opentelemetry/exporter-trace-otlp-http": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.57.1.tgz", - "integrity": "sha512-43dLEjlf6JGxpVt9RaRlJAvjHG1wGsbAuNd67RIDy/95zfKk2aNovtiGUgFdS/kcvgvS90upIUbgn0xUd9JjMg==", - "license": "Apache-2.0", + "node_modules/@expo/spawn-async": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz", + "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", - "@opentelemetry/resources": "1.30.1", - "@opentelemetry/sdk-trace-base": "1.30.1" + "cross-spawn": "^7.0.3" }, "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "node": ">=12" } }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz", - "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==", - "license": "Apache-2.0", + "node_modules/@expo/vector-icons": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.4.tgz", + "integrity": "sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ==", + "license": "MIT", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", - "@types/shimmer": "^1.2.0", - "import-in-the-middle": "^1.8.1", - "require-in-the-middle": "^7.1.1", - "semver": "^7.5.2", - "shimmer": "^1.2.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "prop-types": "^15.8.1" } }, - "node_modules/@opentelemetry/instrumentation-fetch": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fetch/-/instrumentation-fetch-0.57.1.tgz", - "integrity": "sha512-osger7F15h8sbjYMcrh5hiYk/Jb53St+iMK+7Hh2z2QjpkvCak39P5QS226KaAARVGdk9X5ZpoFzonWaFMoTjQ==", - "license": "Apache-2.0", + "node_modules/@expo/xcpretty": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.2.tgz", + "integrity": "sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw==", + "license": "BSD-3-Clause", "dependencies": { - "@opentelemetry/core": "1.30.1", - "@opentelemetry/instrumentation": "0.57.1", - "@opentelemetry/sdk-trace-web": "1.30.1", - "@opentelemetry/semantic-conventions": "1.28.0" - }, - "engines": { - "node": ">=14" + "@babel/code-frame": "7.10.4", + "chalk": "^4.1.0", + "find-up": "^5.0.0", + "js-yaml": "^4.1.0" }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "bin": { + "excpretty": "build/cli.js" } }, - "node_modules/@opentelemetry/instrumentation-xml-http-request": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-xml-http-request/-/instrumentation-xml-http-request-0.57.1.tgz", - "integrity": "sha512-tLKEvSlO/dneD/oG9OrqYwUtbAByHdBy+Awv5QZquZNan0+UnA7QHAWwa/2b6J+swi66NyXdqoqXzdBZulTLvw==", - "license": "Apache-2.0", + "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.30.1", - "@opentelemetry/instrumentation": "0.57.1", - "@opentelemetry/sdk-trace-web": "1.30.1", - "@opentelemetry/semantic-conventions": "1.28.0" - }, - "engines": { - "node": ">=14" - }, + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "license": "MIT", "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@opentelemetry/instrumentation/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" } }, - "node_modules/@opentelemetry/otlp-exporter-base": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.57.1.tgz", - "integrity": "sha512-GNBJAEYfeiYJQ3O2dvXgiNZ/qjWrBxSb1L1s7iV/jKBRGMN3Nv+miTk2SLeEobF5E5ZK4rVcHKlBZ71bPVIv/g==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, "license": "Apache-2.0", "dependencies": { - "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-transformer": "0.57.1" + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "node": ">=10.10.0" } }, - "node_modules/@opentelemetry/otlp-transformer": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.57.1.tgz", - "integrity": "sha512-EX67y+ukNNfFrOLyjYGw8AMy0JPIlEX1dW60SGUNZWW2hSQyyolX7EqFuHP5LtXLjJHNfzx5SMBVQ3owaQCNDw==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-logs": "0.57.1", - "@opentelemetry/core": "1.30.1", - "@opentelemetry/resources": "1.30.1", - "@opentelemetry/sdk-logs": "0.57.1", - "@opentelemetry/sdk-metrics": "1.30.1", - "@opentelemetry/sdk-trace-base": "1.30.1", - "protobufjs": "^7.3.0" - }, "engines": { - "node": ">=14" + "node": ">=12.22" }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@opentelemetry/resources": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz", - "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", - "license": "Apache-2.0", + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", "dependencies": { - "@opentelemetry/core": "1.30.1", - "@opentelemetry/semantic-conventions": "1.28.0" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "node": ">=12" } }, - "node_modules/@opentelemetry/sdk-logs": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.57.1.tgz", - "integrity": "sha512-jGdObb/BGWu6Peo3cL3skx/Rl1Ak/wDDO3vpPrrThGbqE7isvkCsX6uE+OAt8Ayjm9YC8UGkohWbLR09JmM0FA==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-logs": "0.57.1", - "@opentelemetry/core": "1.30.1", - "@opentelemetry/resources": "1.30.1" - }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=12" }, - "peerDependencies": { - "@opentelemetry/api": ">=1.4.0 <1.10.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@opentelemetry/sdk-metrics": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.30.1.tgz", - "integrity": "sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog==", - "license": "Apache-2.0", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.30.1", - "@opentelemetry/resources": "1.30.1" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=14" + "node": ">=12" }, - "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.10.0" + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz", - "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "1.30.1", - "@opentelemetry/resources": "1.30.1", - "@opentelemetry/semantic-conventions": "1.28.0" - }, + "node_modules/@isaacs/ttlcache": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", + "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", + "license": "ISC", "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "node": ">=12" } }, - "node_modules/@opentelemetry/sdk-trace-web": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.30.1.tgz", - "integrity": "sha512-AUo2e+1uyTGMB36VlbvBqnCogVzQhpC7dRcVVdCrt+cFHLpFRRJcd45J2obGTgs0XiAwNLyq5bhkW3JF2NZA+A==", - "license": "Apache-2.0", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", "dependencies": { - "@opentelemetry/core": "1.30.1", - "@opentelemetry/sdk-trace-base": "1.30.1", - "@opentelemetry/semantic-conventions": "1.28.0" - }, - "engines": { - "node": ">=14" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" - } - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", - "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", - "license": "Apache-2.0", - "engines": { - "node": ">=14" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", - "optional": true, "engines": { - "node": ">=14" + "node": ">=8" } }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "license": "BSD-3-Clause", "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "sprintf-js": "~1.0.2" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "license": "BSD-3-Clause" - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz", - "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" + "engines": { + "node": ">=8" } }, - "node_modules/@radix-ui/react-slot": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz", - "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@react-native-async-storage/async-storage": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.1.0.tgz", - "integrity": "sha512-eAGQGPTAuFNEoIQSB5j2Jh1zm5NPyBRTfjRMfCN0W1OakC5WIB5vsDyIQhUweKN9XOE2/V07lqTMGsL0dGXNkA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "license": "MIT", "dependencies": { - "merge-options": "^3.0.4" + "p-locate": "^4.1.0" }, - "peerDependencies": { - "react-native": "^0.0.0-0 || >=0.65 <1.0" - } - }, - "node_modules/@react-native/assets-registry": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.76.6.tgz", - "integrity": "sha512-YI8HoReYiIwdFQs+k9Q9qpFTnsyYikZxgs/UVtVbhKixXDQF6F9LLvj2naOx4cfV+RGybNKxwmDl1vUok/dRFQ==", - "license": "MIT", "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.76.6.tgz", - "integrity": "sha512-yFC9I/aDBOBz3ZMlqKn2NY/mDUtCksUNZ7AQmBiTAeVTUP0ujEjE0hTOx5Qd+kok7A7hwZEX87HdSgjiJZfr5g==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "license": "MIT", "dependencies": { - "@react-native/codegen": "0.76.6" + "p-try": "^2.0.0" }, "engines": { - "node": ">=18" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/babel-preset": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.76.6.tgz", - "integrity": "sha512-ojlVWY6S/VE/nb9hIRetPMTsW9ZmGb2R3dnToEXAtQQDz41eHMHXbkw/k2h0THp6qhas25ruNvn3N5n2o+lBzg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-proposal-export-default-from": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-default-from": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.4", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.25.4", - "@babel/plugin-transform-classes": "^7.25.4", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-flow-strip-types": "^7.25.2", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.25.2", - "@babel/plugin-transform-react-jsx-self": "^7.24.7", - "@babel/plugin-transform-react-jsx-source": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-runtime": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-typescript": "^7.25.2", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/template": "^7.25.0", - "@react-native/babel-plugin-codegen": "0.76.6", - "babel-plugin-syntax-hermes-parser": "^0.25.1", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" + "node": ">=8" } }, - "node_modules/@react-native/codegen": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.76.6.tgz", - "integrity": "sha512-BABb3e5G/+hyQYEYi0AODWh2km2d8ERoASZr6Hv90pVXdUHRYR+yxCatX7vSd9rnDUYndqRTzD0hZWAucPNAKg==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.25.3", - "glob": "^7.1.1", - "hermes-parser": "0.23.1", - "invariant": "^2.2.4", - "jscodeshift": "^0.14.0", - "mkdirp": "^0.5.1", - "nullthrows": "^1.1.1", - "yargs": "^17.6.2" - }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/preset-env": "^7.1.6" + "node": ">=8" } }, - "node_modules/@react-native/codegen/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-native/community-cli-plugin": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.76.6.tgz", - "integrity": "sha512-nETlc/+U5cESVluzzgN0OcVfcoMijGBaDWzOaJhoYUodcuqnqtu75XsSEc7yzlYjwNQG+vF83mu9CQGezruNMA==", + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, "license": "MIT", "dependencies": { - "@react-native/dev-middleware": "0.76.6", - "@react-native/metro-babel-transformer": "0.76.6", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "execa": "^5.1.1", - "invariant": "^2.2.4", - "metro": "^0.81.0", - "metro-config": "^0.81.0", - "metro-core": "^0.81.0", - "node-fetch": "^2.2.0", - "readline": "^1.3.0", - "semver": "^7.1.3" + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=18" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "@react-native-community/cli-server-api": "*" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "@react-native-community/cli-server-api": { + "node-notifier": { "optional": true } } }, - "node_modules/@react-native/community-cli-plugin/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/@jest/core/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=8" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/@jest/create-cache-key-function": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", + "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "@jest/types": "^29.6.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "jest-get-type": "^29.6.3" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/@react-native/debugger-frontend": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.76.6.tgz", - "integrity": "sha512-kP97xMQjiANi5/lmf8MakS7d8FTJl+BqYHQMqyvNiY+eeWyKnhqW2GL2v3eEUBAuyPBgJGivuuO4RvjZujduJg==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=18" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-native/dev-middleware": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.76.6.tgz", - "integrity": "sha512-1bAyd2/X48Nzb45s5l2omM75vy764odx/UnDs4sJfFCuK+cupU4nRPgl0XWIqgdM/2+fbQ3E4QsVS/WIKTFxvQ==", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, "license": "MIT", "dependencies": { - "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.76.6", - "chrome-launcher": "^0.15.2", - "chromium-edge-launcher": "^0.2.0", - "connect": "^3.6.5", - "debug": "^2.2.0", - "nullthrows": "^1.1.1", - "open": "^7.0.3", - "selfsigned": "^2.4.1", - "serve-static": "^1.13.1", - "ws": "^6.2.3" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { - "node": ">=18" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-native/dev-middleware/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@react-native/dev-middleware/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/@react-native/dev-middleware/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/@react-native/gradle-plugin": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.76.6.tgz", - "integrity": "sha512-sDzpf4eiynryoS6bpYCweGoxSmWgCSx9lzBoxIIW+S6siyGiTaffzZHWCm8mIn9UZsSPlEO37q62ggnR9Zu/OA==", - "license": "MIT", + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, "engines": { - "node": ">=18" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@react-native/js-polyfills": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.76.6.tgz", - "integrity": "sha512-cDD7FynxWYxHkErZzAJtzPGhJ13JdOgL+R0riTh0hCovOfIUz9ItffdLQv2nx48lnvMTQ+HZXMnGOZnsFCNzQw==", - "license": "MIT", + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">=18" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@react-native/metro-babel-transformer": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.76.6.tgz", - "integrity": "sha512-xSBi9jPliThu5HRSJvluqUlDOLLEmf34zY/U7RDDjEbZqC0ufPcPS7c5XsSg0GDPiXc7lgjBVesPZsKFkoIBgA==", + "node_modules/@jest/reporters/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", - "@react-native/babel-preset": "0.76.6", - "hermes-parser": "0.23.1", - "nullthrows": "^1.1.1" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" + "node": ">=8" } }, - "node_modules/@react-native/normalize-color": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz", - "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==", - "license": "MIT" - }, - "node_modules/@react-native/normalize-colors": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.76.6.tgz", - "integrity": "sha512-1n4udXH2Cla31iA/8eLRdhFHpYUYK1NKWCn4m1Sr9L4SarWKAYuRFliK1fcLvPPALCFoFlWvn8I0ekdUOHMzDQ==", - "license": "MIT" - }, - "node_modules/@react-native/virtualized-lists": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.76.6.tgz", - "integrity": "sha512-0HUWVwJbRq1BWFOu11eOWGTSmK9nMHhoMPyoI27wyWcl/nqUx7HOxMbRVq0DsTCyATSMPeF+vZ6o1REapcNWKw==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "license": "MIT", "dependencies": { - "invariant": "^2.2.4", - "nullthrows": "^1.1.1" + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/react": "^18.2.6", - "react": "*", - "react-native": "*" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-navigation/bottom-tabs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.2.0.tgz", - "integrity": "sha512-1LxjgnbPyFINyf9Qr5d1YE0pYhuJayg5TCIIFQmbcX4PRhX7FKUXV7cX8OzrKXEdZi/UE/VNXugtozPAR9zgvA==", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.2.5", - "color": "^4.2.3" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, - "peerDependencies": { - "@react-navigation/native": "^7.0.14", - "react": ">= 18.2.0", - "react-native": "*", - "react-native-safe-area-context": ">= 4.0.0", - "react-native-screens": ">= 4.0.0" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-navigation/core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.3.1.tgz", - "integrity": "sha512-S3KCGvNsoqVk8ErAtQI2EAhg9185lahF5OY01ofrrD4Ij/uk3QEHHjoGQhR5l5DXSCSKr1JbMQA7MEKMsBiWZA==", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, "license": "MIT", "dependencies": { - "@react-navigation/routers": "^7.1.2", - "escape-string-regexp": "^4.0.0", - "nanoid": "3.3.8", - "query-string": "^7.1.3", - "react-is": "^18.2.0", - "use-latest-callback": "^0.2.1", - "use-sync-external-store": "^1.2.2" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, - "peerDependencies": { - "react": ">= 18.2.0" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-navigation/elements": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.2.5.tgz", - "integrity": "sha512-sDhE+W14P7MNWLMxXg1MEVXwkLUpMZJGflE6nQNzLmolJQIHgcia0Mrm8uRa3bQovhxYu1UzEojLZ+caoZt7Fg==", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, "license": "MIT", "dependencies": { - "color": "^4.2.3" - }, - "peerDependencies": { - "@react-native-masked-view/masked-view": ">= 0.2.0", - "@react-navigation/native": "^7.0.14", - "react": ">= 18.2.0", - "react-native": "*", - "react-native-safe-area-context": ">= 4.0.0" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" }, - "peerDependenciesMeta": { - "@react-native-masked-view/masked-view": { - "optional": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-navigation/native": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.0.14.tgz", - "integrity": "sha512-Gi6lLw4VOGSWAhmUdJOMauOKGK51/YA1CprjXm91sNfgERWvznqEMw8QmUQx9SEqYfi0LfZhbzpMst09SJ00lw==", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, "license": "MIT", "dependencies": { - "@react-navigation/core": "^7.3.1", - "escape-string-regexp": "^4.0.0", - "fast-deep-equal": "^3.1.3", - "nanoid": "3.3.8", - "use-latest-callback": "^0.2.1" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, - "peerDependencies": { - "react": ">= 18.2.0", - "react-native": "*" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@react-navigation/native-stack": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.2.0.tgz", - "integrity": "sha512-mw7Nq9qQrGsmJmCTwIIWB7yY/3tWYXvQswx+HJScGAadIjemvytJXm1fcl3+YZ9T9Ym0aERcVe5kDs+ny3X4vA==", - "license": "MIT", + "node_modules/@jest/transform/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@jest/transform/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", "dependencies": { - "@react-navigation/elements": "^2.2.5", - "warn-once": "^0.1.1" + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" }, - "peerDependencies": { - "@react-navigation/native": "^7.0.14", - "react": ">= 18.2.0", - "react-native": "*", - "react-native-safe-area-context": ">= 4.0.0", - "react-native-screens": ">= 4.0.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@react-navigation/routers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.1.2.tgz", - "integrity": "sha512-emdEjpVDK8zbiu2GChC8oYIAub9i/OpNuQJekVsbyFCBz4/TzaBzms38Q53YaNhdIFNmiYLfHv/Y1Ub7KYfm3w==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "license": "MIT", "dependencies": { - "nanoid": "3.3.8" + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@remix-run/node": { - "version": "2.15.2", - "resolved": "https://registry.npmjs.org/@remix-run/node/-/node-2.15.2.tgz", - "integrity": "sha512-NS/h5uxje7DYCNgcKqKAiUhf0r2HVnoYUBWLyIIMmCUP1ddWurBP6xTPcWzGhEvV/EvguniYi1wJZ5+X8sonWw==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "license": "MIT", "dependencies": { - "@remix-run/server-runtime": "2.15.2", - "@remix-run/web-fetch": "^4.4.2", - "@web3-storage/multipart-parser": "^1.0.0", - "cookie-signature": "^1.1.0", - "source-map-support": "^0.5.21", - "stream-slice": "^0.1.2", - "undici": "^6.11.1" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "typescript": "^5.1.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=6.0.0" } }, - "node_modules/@remix-run/router": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", - "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==", - "license": "MIT", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=6.0.0" } }, - "node_modules/@remix-run/server-runtime": { - "version": "2.15.2", - "resolved": "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.15.2.tgz", - "integrity": "sha512-OqiPcvEnnU88B8b1LIWHHkQ3Tz2GDAmQ1RihFNQsbrFKpDsQLkw0lJlnfgKA/uHd0CEEacpfV7C9qqJT3V6Z2g==", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "license": "MIT", - "dependencies": { - "@remix-run/router": "1.21.0", - "@types/cookie": "^0.6.0", - "@web3-storage/multipart-parser": "^1.0.0", - "cookie": "^0.6.0", - "set-cookie-parser": "^2.4.8", - "source-map": "^0.7.3", - "turbo-stream": "2.4.0" - }, "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "typescript": "^5.1.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=6.0.0" } }, - "node_modules/@remix-run/web-blob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@remix-run/web-blob/-/web-blob-3.1.0.tgz", - "integrity": "sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "license": "MIT", "dependencies": { - "@remix-run/web-stream": "^1.1.0", - "web-encoding": "1.1.5" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/@remix-run/web-fetch": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@remix-run/web-fetch/-/web-fetch-4.4.2.tgz", - "integrity": "sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "license": "MIT", "dependencies": { - "@remix-run/web-blob": "^3.1.0", - "@remix-run/web-file": "^3.1.0", - "@remix-run/web-form-data": "^3.1.0", - "@remix-run/web-stream": "^1.1.0", - "@web3-storage/multipart-parser": "^1.0.0", - "abort-controller": "^3.0.0", - "data-uri-to-buffer": "^3.0.1", - "mrmime": "^1.0.0" - }, - "engines": { - "node": "^10.17 || >=12.3" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@remix-run/web-file": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@remix-run/web-file/-/web-file-3.1.0.tgz", - "integrity": "sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "license": "MIT", "dependencies": { - "@remix-run/web-blob": "^3.1.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@remix-run/web-form-data": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz", - "integrity": "sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "license": "MIT", - "dependencies": { - "web-encoding": "1.1.5" + "engines": { + "node": ">= 8" } }, - "node_modules/@remix-run/web-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@remix-run/web-stream/-/web-stream-1.1.0.tgz", - "integrity": "sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "license": "MIT", "dependencies": { - "web-streams-polyfill": "^3.1.1" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } }, - "node_modules/@segment/loosely-validate-event": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", - "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", + "node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "license": "ISC", "dependencies": { - "component-type": "^1.2.1", - "join-component": "^1.1.0" + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "license": "MIT" + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "license": "BSD-3-Clause", + "node_modules/@opentelemetry/api-logs": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.55.0.tgz", + "integrity": "sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==", + "license": "Apache-2.0", "dependencies": { - "@sinonjs/commons": "^3.0.0" + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" } }, - "node_modules/@tanstack/query-core": { - "version": "5.64.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.64.1.tgz", - "integrity": "sha512-978Wx4Wl4UJZbmvU/rkaM9cQtXXrbhK0lsz/UZhYIbyKYA8E4LdomTwyh2GHZ4oU0BKKoDH4YlKk2VscCUgNmg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "node_modules/@opentelemetry/core": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@tanstack/react-query": { - "version": "5.64.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.64.1.tgz", - "integrity": "sha512-vW5ggHpIO2Yjj44b4sB+Fd3cdnlMJppXRBJkEHvld6FXh3j5dwWJoQo7mGtKI2RbSFyiyu/PhGAy0+Vv5ev9Eg==", - "license": "MIT", + "node_modules/@opentelemetry/exporter-trace-otlp-http": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.52.1.tgz", + "integrity": "sha512-05HcNizx0BxcFKKnS5rwOV+2GevLTVIRA0tRgWYyw4yCgR53Ic/xk83toYKts7kbzcI+dswInUg/4s8oyA+tqg==", + "license": "Apache-2.0", "dependencies": { - "@tanstack/query-core": "5.64.1" + "@opentelemetry/core": "1.25.1", + "@opentelemetry/otlp-exporter-base": "0.52.1", + "@opentelemetry/otlp-transformer": "0.52.1", + "@opentelemetry/resources": "1.25.1", + "@opentelemetry/sdk-trace-base": "1.25.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "engines": { + "node": ">=14" }, "peerDependencies": { - "react": "^18 || ^19" + "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "license": "MIT", + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, "engines": { - "node": ">= 10" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "license": "MIT", + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/resources": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", + "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "license": "Apache-2.0", "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "@opentelemetry/core": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "license": "MIT", + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", + "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==", + "license": "Apache-2.0", "dependencies": { - "@babel/types": "^7.0.0" + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "license": "MIT", + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.55.0.tgz", + "integrity": "sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.55.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-fetch": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fetch/-/instrumentation-fetch-0.55.0.tgz", + "integrity": "sha512-wkybQE85HzInYX2csZ4UuMlCIMCyGGHcNqL9TcoZgAZC2EuXFReTsLytoszknhcaX+P7UT9Ee3915t8KC6XP4w==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/instrumentation": "0.55.0", + "@opentelemetry/sdk-trace-web": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-fetch/node_modules/@opentelemetry/core": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.28.0.tgz", + "integrity": "sha512-ZLwRMV+fNDpVmF2WYUdBHlq0eOWtEaUJSusrzjGnBt7iSRvfjFE3RXYUZJrqou/wIDWV0DwQ5KIfYe9WXg9Xqw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-fetch/node_modules/@opentelemetry/resources": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.28.0.tgz", + "integrity": "sha512-cIyXSVJjGeTICENN40YSvLDAq4Y2502hGK3iN7tfdynQLKWb3XWZQEkPc+eSx47kiy11YeFAlYkEfXwR1w8kfw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-fetch/node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.28.0.tgz", + "integrity": "sha512-ceUVWuCpIao7Y5xE02Xs3nQi0tOGmMea17ecBdwtCvdo9ekmO+ijc9RFDgfifMl7XCBf41zne/1POM3LqSTZDA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/resources": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-fetch/node_modules/@opentelemetry/sdk-trace-web": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.28.0.tgz", + "integrity": "sha512-/QOIrJc/A/caKbA9voLua4isf///cjQKB6gomEzX2fL18TBqZhIkm9k2DpjlbtrQoYCJDZ9x7Phrec22aQGpQw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/sdk-trace-base": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-fetch/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", + "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-xml-http-request": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-xml-http-request/-/instrumentation-xml-http-request-0.55.0.tgz", + "integrity": "sha512-Wlz4LzDpBFxHpb24RAM6RoiGspJ7J16ux0Xw5KVLtK3zzpQaxMYEVF0XQNC61WJJa3tRNt3XRjiQ8mrXJZxVQg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/instrumentation": "0.55.0", + "@opentelemetry/sdk-trace-web": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/core": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.28.0.tgz", + "integrity": "sha512-ZLwRMV+fNDpVmF2WYUdBHlq0eOWtEaUJSusrzjGnBt7iSRvfjFE3RXYUZJrqou/wIDWV0DwQ5KIfYe9WXg9Xqw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/resources": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.28.0.tgz", + "integrity": "sha512-cIyXSVJjGeTICENN40YSvLDAq4Y2502hGK3iN7tfdynQLKWb3XWZQEkPc+eSx47kiy11YeFAlYkEfXwR1w8kfw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.28.0.tgz", + "integrity": "sha512-ceUVWuCpIao7Y5xE02Xs3nQi0tOGmMea17ecBdwtCvdo9ekmO+ijc9RFDgfifMl7XCBf41zne/1POM3LqSTZDA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/resources": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/sdk-trace-web": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.28.0.tgz", + "integrity": "sha512-/QOIrJc/A/caKbA9voLua4isf///cjQKB6gomEzX2fL18TBqZhIkm9k2DpjlbtrQoYCJDZ9x7Phrec22aQGpQw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.28.0", + "@opentelemetry/sdk-trace-base": "1.28.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", + "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@opentelemetry/otlp-exporter-base": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.52.1.tgz", + "integrity": "sha512-z175NXOtX5ihdlshtYBe5RpGeBoTXVCKPPLiQlD6FHvpM4Ch+p2B0yWKYSrBfLH24H9zjJiBdTrtD+hLlfnXEQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/otlp-transformer": "0.52.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/otlp-transformer": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.52.1.tgz", + "integrity": "sha512-I88uCZSZZtVa0XniRqQWKbjAUm73I8tpEy/uJYPPYw5d7BRdVk0RfTBQw8kSUl01oVWEuqxLDa802222MYyWHg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.52.1", + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1", + "@opentelemetry/sdk-logs": "0.52.1", + "@opentelemetry/sdk-metrics": "1.25.1", + "@opentelemetry/sdk-trace-base": "1.25.1", + "protobufjs": "^7.3.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/api-logs": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.52.1.tgz", + "integrity": "sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", + "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", + "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz", + "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.52.1.tgz", + "integrity": "sha512-MBYh+WcPPsN8YpRHRmK1Hsca9pVlyyKd4BxOC4SsgHACnl/bPp4Cri9hWhVm5+2tiQ9Zf4qSc1Jshw9tOLGWQA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.52.1", + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/api-logs": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.52.1.tgz", + "integrity": "sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", + "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-metrics": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz", + "integrity": "sha512-9Mb7q5ioFL4E4dDrc4wC/A3NTHDat44v4I3p2pLPSxRvqUbDIQyMVr9uK+EU69+HWhlET1VaSrRzwdckWqY15Q==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1", + "lodash.merge": "^4.6.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", + "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz", + "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-web": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.30.1.tgz", + "integrity": "sha512-AUo2e+1uyTGMB36VlbvBqnCogVzQhpC7dRcVVdCrt+cFHLpFRRJcd45J2obGTgs0XiAwNLyq5bhkW3JF2NZA+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/sdk-trace-base": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz", + "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz", + "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.0" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@react-native-async-storage/async-storage": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.1.0.tgz", + "integrity": "sha512-eAGQGPTAuFNEoIQSB5j2Jh1zm5NPyBRTfjRMfCN0W1OakC5WIB5vsDyIQhUweKN9XOE2/V07lqTMGsL0dGXNkA==", + "license": "MIT", + "dependencies": { + "merge-options": "^3.0.4" + }, + "peerDependencies": { + "react-native": "^0.0.0-0 || >=0.65 <1.0" + } + }, + "node_modules/@react-native-community/cli": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-13.6.8.tgz", + "integrity": "sha512-0lRdgLNaXixWY4BfFRl1J6Ao9Lapo2z+++iE7TD4GAbuxOWJSyFi+KUA8XNfSDyML4jFO02MZgyBPxAWdaminQ==", + "license": "MIT", + "dependencies": { + "@react-native-community/cli-clean": "13.6.8", + "@react-native-community/cli-config": "13.6.8", + "@react-native-community/cli-debugger-ui": "13.6.8", + "@react-native-community/cli-doctor": "13.6.8", + "@react-native-community/cli-hermes": "13.6.8", + "@react-native-community/cli-server-api": "13.6.8", + "@react-native-community/cli-tools": "13.6.8", + "@react-native-community/cli-types": "13.6.8", + "chalk": "^4.1.2", + "commander": "^9.4.1", + "deepmerge": "^4.3.0", + "execa": "^5.0.0", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "graceful-fs": "^4.1.3", + "prompts": "^2.4.2", + "semver": "^7.5.2" + }, + "bin": { + "rnc-cli": "build/bin.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native-community/cli-clean": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-13.6.8.tgz", + "integrity": "sha512-B1uxlm1N4BQuWFvBL3yRl3LVvydjswsdbTi7tMrHMtSxfRio1p9HjcmDzlzKco09Y+8qBGgakm3jcMZGLbhXQQ==", + "license": "MIT", + "dependencies": { + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "execa": "^5.0.0", + "fast-glob": "^3.3.2" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/@react-native-community/cli-config": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-13.6.8.tgz", + "integrity": "sha512-RabCkIsWdP4Ex/sf1uSP9qxc30utm+0uIJAjrZkNQynm7T4Lyqn/kT3LKm4yM6M0Qk61YxGguiaXF4601vAduw==", + "license": "MIT", + "dependencies": { + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "cosmiconfig": "^5.1.0", + "deepmerge": "^4.3.0", + "fast-glob": "^3.3.2", + "joi": "^17.2.1" + } + }, + "node_modules/@react-native-community/cli-debugger-ui": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.8.tgz", + "integrity": "sha512-2cS+MX/Su6sVSjqpDftFOXbK7EuPg98xzsPkdPhkQnkZwvXqodK9CAMuDMbx3lBHHtrPrpMbBCpFmPN8iVOnlA==", + "license": "MIT", + "dependencies": { + "serve-static": "^1.13.1" + } + }, + "node_modules/@react-native-community/cli-doctor": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-13.6.8.tgz", + "integrity": "sha512-/3Vdy9J3hyiu0y3nd/CU3kBqPlTRxnLXg7V6jrA1jbTOlZAMyV9imEkrqEaGK0SMOyMhh9Pipf98Ozhk0Nl4QA==", + "license": "MIT", + "dependencies": { + "@react-native-community/cli-config": "13.6.8", + "@react-native-community/cli-platform-android": "13.6.8", + "@react-native-community/cli-platform-apple": "13.6.8", + "@react-native-community/cli-platform-ios": "13.6.8", + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "command-exists": "^1.2.8", + "deepmerge": "^4.3.0", + "envinfo": "^7.10.0", + "execa": "^5.0.0", + "hermes-profile-transformer": "^0.0.6", + "node-stream-zip": "^1.9.1", + "ora": "^5.4.1", + "semver": "^7.5.2", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1", + "yaml": "^2.2.1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-hermes": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-13.6.8.tgz", + "integrity": "sha512-lZi/OBFuZUj5cLK94oEgtrtmxGoqeYVRcnHXl/R5c4put9PDl+qH2bEMlGZkFiw57ae3UZKr3TMk+1s4jh3FYQ==", + "license": "MIT", + "dependencies": { + "@react-native-community/cli-platform-android": "13.6.8", + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "hermes-profile-transformer": "^0.0.6" + } + }, + "node_modules/@react-native-community/cli-platform-android": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.8.tgz", + "integrity": "sha512-vWrqeLRRTwp2kO33nbrAgbYn8HR2c2CpIfyVJY9Ckk7HGUSwDyxdcSu7YBvt2ShdfLZH0HctWFNXsgGrfg6BDw==", + "license": "MIT", + "dependencies": { + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "execa": "^5.0.0", + "fast-glob": "^3.3.2", + "fast-xml-parser": "^4.2.4", + "logkitty": "^0.7.1" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/@react-native-community/cli-platform-apple": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.8.tgz", + "integrity": "sha512-1JPohnlXPqU44zns3ALEzIbH2cKRw6JtEDJERgLuEUbs2r2NeJgqDbKyZ7fTTO8o+pegDnn6+Rr7qGVVOuUzzg==", + "license": "MIT", + "dependencies": { + "@react-native-community/cli-tools": "13.6.8", + "chalk": "^4.1.2", + "execa": "^5.0.0", + "fast-glob": "^3.3.2", + "fast-xml-parser": "^4.0.12", + "ora": "^5.4.1" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-ios": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.8.tgz", + "integrity": "sha512-/IIcIRM8qaoD7iZqsvtf6Qq1AwtChWYfB9sTn3mTiolZ5Zd5bXH37g+6liPfAICRkj2Ptq3iXmjrDVUQAxrOXw==", + "license": "MIT", + "dependencies": { + "@react-native-community/cli-platform-apple": "13.6.8" + } + }, + "node_modules/@react-native-community/cli-server-api": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-13.6.8.tgz", + "integrity": "sha512-Lx664oWTzpVfbKUTy+3GIX7e+Mt5Zn+zdkM4ehllNdik/lbB3tM9Nrg8PSvOfI+tTXs2w55+nIydLfH+0FqJVg==", + "license": "MIT", + "dependencies": { + "@react-native-community/cli-debugger-ui": "13.6.8", + "@react-native-community/cli-tools": "13.6.8", + "compression": "^1.7.1", + "connect": "^3.6.5", + "errorhandler": "^1.5.1", + "nocache": "^3.0.1", + "pretty-format": "^26.6.2", + "serve-static": "^1.13.1", + "ws": "^6.2.2" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/@types/yargs": { + "version": "15.0.19", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", + "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "license": "MIT", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, + "node_modules/@react-native-community/cli-server-api/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@react-native-community/cli-tools": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-13.6.8.tgz", + "integrity": "sha512-1MYlae9EkbjC7DBYOGMH5xF9yDoeNYUKgEdDjL6WAUBoF2gtwiZPM6igLKi/+dhb5sCtC7fiLrLi0Oevdf+RmQ==", + "license": "MIT", + "dependencies": { + "appdirsjs": "^1.2.4", + "chalk": "^4.1.2", + "execa": "^5.0.0", + "find-up": "^5.0.0", + "mime": "^2.4.1", + "node-fetch": "^2.6.0", + "open": "^6.2.0", + "ora": "^5.4.1", + "semver": "^7.5.2", + "shell-quote": "^1.7.3", + "sudo-prompt": "^9.0.0" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "license": "MIT", + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/@react-native-community/cli-tools/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/sudo-prompt": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", + "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT" + }, + "node_modules/@react-native-community/cli-types": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-13.6.8.tgz", + "integrity": "sha512-C4mVByy0i+/NPuPhdMLBR7ubEVkjVS1VwoQu/BoG1crJFNE+167QXAzH01eFbXndsjZaMWmD4Gerx7TYc6lHfA==", + "license": "MIT", + "dependencies": { + "joi": "^17.2.1" + } + }, + "node_modules/@react-native-community/cli/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/@react-native-community/cli/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@react-native-community/cli/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@react-native-community/cli/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/@react-native-community/cli/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@react-native/assets-registry": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.84.tgz", + "integrity": "sha512-dzUhwyaX04QosWZ8zyaaNB/WYZIdeDN1lcpfQbqiOhZJShRH+FLTDVONE/dqlMQrP+EO7lDqF0RrlIt9lnOCQQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/babel-plugin-codegen": { + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.87.tgz", + "integrity": "sha512-+vJYpMnENFrwtgvDfUj+CtVJRJuUnzAUYT0/Pb68Sq9RfcZ5xdcCuUgyf7JO+akW2VTBoJY427wkcxU30qrWWw==", + "license": "MIT", + "dependencies": { + "@react-native/codegen": "0.74.87" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/babel-preset": { + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.87.tgz", + "integrity": "sha512-hyKpfqzN2nxZmYYJ0tQIHG99FQO0OWXp/gVggAfEUgiT+yNKas1C60LuofUsK7cd+2o9jrpqgqW4WzEDZoBlTg==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.18.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", + "@babel/plugin-proposal-numeric-separator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.20.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.18.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.20.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.20.0", + "@babel/plugin-transform-flow-strip-types": "^7.20.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "@react-native/babel-plugin-codegen": "0.74.87", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/codegen": { + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.87.tgz", + "integrity": "sha512-GMSYDiD+86zLKgMMgz9z0k6FxmRn+z6cimYZKkucW4soGbxWsbjUAZoZ56sJwt2FJ3XVRgXCrnOCgXoH/Bkhcg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.0", + "glob": "^7.1.1", + "hermes-parser": "0.19.1", + "invariant": "^2.2.4", + "jscodeshift": "^0.14.0", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + } + }, + "node_modules/@react-native/codegen/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native/community-cli-plugin": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.84.tgz", + "integrity": "sha512-GBKE+1sUh86fS2XXV46gMCNHMc1KetshMbYJ0AhDhldpaILZHqRBX50mdVsiYVvkzp4QjM0nmYqefuJ9NVwicQ==", + "license": "MIT", + "dependencies": { + "@react-native-community/cli-server-api": "13.6.8", + "@react-native-community/cli-tools": "13.6.8", + "@react-native/dev-middleware": "0.74.84", + "@react-native/metro-babel-transformer": "0.74.84", + "chalk": "^4.0.0", + "execa": "^5.1.1", + "metro": "^0.80.3", + "metro-config": "^0.80.3", + "metro-core": "^0.80.3", + "node-fetch": "^2.2.0", + "querystring": "^0.2.1", + "readline": "^1.3.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/debugger-frontend": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.84.tgz", + "integrity": "sha512-YUEA03UNFbiYzHpYxlcS2D9+3eNT5YLGkl5yRg3nOSN6KbCc/OttGnNZme+tuSOJwjMN/vcvtDKYkTqjJw8U0A==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.84.tgz", + "integrity": "sha512-veYw/WmyrAOQHUiIeULzn2duJQnXDPiKq2jZ/lcmDo6jsLirpp+Q73lx09TYgy/oVoPRuV0nfmU3x9B6EV/7qQ==", + "license": "MIT", + "dependencies": { + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.74.84", + "@rnx-kit/chromium-edge-launcher": "^1.0.0", + "chrome-launcher": "^0.15.2", + "connect": "^3.6.5", + "debug": "^2.2.0", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "selfsigned": "^2.4.1", + "serve-static": "^1.13.1", + "temp-dir": "^2.0.0", + "ws": "^6.2.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/@react-native/community-cli-plugin/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/@react-native/community-cli-plugin/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@react-native/debugger-frontend": { + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.85.tgz", + "integrity": "sha512-gUIhhpsYLUTYWlWw4vGztyHaX/kNlgVspSvKe2XaPA7o3jYKUoNLc3Ov7u70u/MBWfKdcEffWq44eSe3j3s5JQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/dev-middleware": { + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.85.tgz", + "integrity": "sha512-BRmgCK5vnMmHaKRO+h8PKJmHHH3E6JFuerrcfE3wG2eZ1bcSr+QTu8DAlpxsDWvJvHpCi8tRJGauxd+Ssj/c7w==", + "license": "MIT", + "dependencies": { + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.74.85", + "@rnx-kit/chromium-edge-launcher": "^1.0.0", + "chrome-launcher": "^0.15.2", + "connect": "^3.6.5", + "debug": "^2.2.0", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "selfsigned": "^2.4.1", + "serve-static": "^1.13.1", + "temp-dir": "^2.0.0", + "ws": "^6.2.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/@react-native/dev-middleware/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@react-native/gradle-plugin": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.84.tgz", + "integrity": "sha512-wYWC5WWXqzCCe4PDogz9pNc4xH5ZamahW5XGSbrrYJ5V3walZ+7z43V6iEBJkZbLjj9YBcSttkXYGr1Xh4veAg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/js-polyfills": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.84.tgz", + "integrity": "sha512-+PgxuUjBw9JVlz6m4ECsIJMLbDopnr4rpLmsG32hQaJrg0wMuvHtsgAY/J/aVCSG2GNUXexfjrnhc+O9yGOZXQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/metro-babel-transformer": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.84.tgz", + "integrity": "sha512-YtVGq7jkgyUECv5yt4BOFbOXyW4ddUn8+dnwGGpJKdfhXYL5o5++AxNdE+2x+SZdkj3JUVekGKPwRabFECABaw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.20.0", + "@react-native/babel-preset": "0.74.84", + "hermes-parser": "0.19.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/babel-plugin-codegen": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.84.tgz", + "integrity": "sha512-UR4uiii5szIJA84mSC6GJOfYKDq7/ThyetOQT62+BBcyGeHVtHlNLNRzgaMeLqIQaT8Fq4pccMI+7QqLOMXzdw==", + "license": "MIT", + "dependencies": { + "@react-native/codegen": "0.74.84" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/babel-preset": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.84.tgz", + "integrity": "sha512-WUfu6Y4aGuVdocQZvx33BJiQWFH6kRCHYbZfBn2psgFrSRLgQWEQrDCxqPFObNAVSayM0rNhp2FvI5K/Eyeqlg==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.18.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", + "@babel/plugin-proposal-numeric-separator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.20.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.18.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.20.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.20.0", + "@babel/plugin-transform-flow-strip-types": "^7.20.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "@react-native/babel-plugin-codegen": "0.74.84", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/codegen": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.84.tgz", + "integrity": "sha512-0hXlnu9i0o8v+gXKQi+x6T471L85kCDwW4WrJiYAeOheWrQdNNW6rC3g8+LL7HXAf7QcHGU/8/d57iYfdVK2BQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.0", + "glob": "^7.1.1", + "hermes-parser": "0.19.1", + "invariant": "^2.2.4", + "jscodeshift": "^0.14.0", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + } + }, + "node_modules/@react-native/metro-babel-transformer/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native/normalize-color": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz", + "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==", + "license": "MIT" + }, + "node_modules/@react-native/normalize-colors": { + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz", + "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==", + "license": "MIT" + }, + "node_modules/@react-native/virtualized-lists": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.84.tgz", + "integrity": "sha512-XcV+qdqt2WihaY4iRm/M1FdSy+18lecU9mRXNmy9YK8g9Th/8XbNtmmKI0qWBx3KxyuXMH/zd0ps05YTrX16kw==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/react": "^18.2.6", + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@react-navigation/bottom-tabs": { + "version": "6.5.20", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.20.tgz", + "integrity": "sha512-ow6Z06iS4VqBO8d7FP+HsGjJLWt2xTWIvuWjpoCvsM/uQXzCRDIjBv9HaKcXbF0yTW7IMir0oDAbU5PFzEDdgA==", + "license": "MIT", + "dependencies": { + "@react-navigation/elements": "^1.3.30", + "color": "^4.2.3", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/core": { + "version": "6.4.17", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.17.tgz", + "integrity": "sha512-Nd76EpomzChWAosGqWOYE3ItayhDzIEzzZsT7PfGcRFDgW5miHV2t4MZcq9YIK4tzxZjVVpYbIynOOQQd1e0Cg==", + "license": "MIT", + "dependencies": { + "@react-navigation/routers": "^6.1.9", + "escape-string-regexp": "^4.0.0", + "nanoid": "^3.1.23", + "query-string": "^7.1.3", + "react-is": "^16.13.0", + "use-latest-callback": "^0.2.1" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@react-navigation/core/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/@react-navigation/elements": { + "version": "1.3.31", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.31.tgz", + "integrity": "sha512-bUzP4Awlljx5RKEExw8WYtif8EuQni2glDaieYROKTnaxsu9kEIA515sXQgUDZU4Ob12VoL7+z70uO3qrlfXcQ==", + "license": "MIT", + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/native": { + "version": "6.1.18", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.18.tgz", + "integrity": "sha512-mIT9MiL/vMm4eirLcmw2h6h/Nm5FICtnYSdohq4vTLA2FF/6PNhByM7s8ffqoVfE5L0uAa6Xda1B7oddolUiGg==", + "license": "MIT", + "dependencies": { + "@react-navigation/core": "^6.4.17", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.1.23" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/@react-navigation/native-stack": { + "version": "6.9.26", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.26.tgz", + "integrity": "sha512-++dueQ+FDj2XkZ902DVrK79ub1vp19nSdAZWxKRgd6+Bc0Niiesua6rMCqymYOVaYh+dagwkA9r00bpt/U5WLw==", + "license": "MIT", + "dependencies": { + "@react-navigation/elements": "^1.3.30", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/routers": { + "version": "6.1.9", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.9.tgz", + "integrity": "sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==", + "license": "MIT", + "dependencies": { + "nanoid": "^3.1.23" + } + }, + "node_modules/@remix-run/node": { + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/@remix-run/node/-/node-2.15.2.tgz", + "integrity": "sha512-NS/h5uxje7DYCNgcKqKAiUhf0r2HVnoYUBWLyIIMmCUP1ddWurBP6xTPcWzGhEvV/EvguniYi1wJZ5+X8sonWw==", + "license": "MIT", + "dependencies": { + "@remix-run/server-runtime": "2.15.2", + "@remix-run/web-fetch": "^4.4.2", + "@web3-storage/multipart-parser": "^1.0.0", + "cookie-signature": "^1.1.0", + "source-map-support": "^0.5.21", + "stream-slice": "^0.1.2", + "undici": "^6.11.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@remix-run/router": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", + "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@remix-run/server-runtime": { + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.15.2.tgz", + "integrity": "sha512-OqiPcvEnnU88B8b1LIWHHkQ3Tz2GDAmQ1RihFNQsbrFKpDsQLkw0lJlnfgKA/uHd0CEEacpfV7C9qqJT3V6Z2g==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.21.0", + "@types/cookie": "^0.6.0", + "@web3-storage/multipart-parser": "^1.0.0", + "cookie": "^0.6.0", + "set-cookie-parser": "^2.4.8", + "source-map": "^0.7.3", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@remix-run/web-blob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-blob/-/web-blob-3.1.0.tgz", + "integrity": "sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==", + "license": "MIT", + "dependencies": { + "@remix-run/web-stream": "^1.1.0", + "web-encoding": "1.1.5" + } + }, + "node_modules/@remix-run/web-fetch": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@remix-run/web-fetch/-/web-fetch-4.4.2.tgz", + "integrity": "sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==", + "license": "MIT", + "dependencies": { + "@remix-run/web-blob": "^3.1.0", + "@remix-run/web-file": "^3.1.0", + "@remix-run/web-form-data": "^3.1.0", + "@remix-run/web-stream": "^1.1.0", + "@web3-storage/multipart-parser": "^1.0.0", + "abort-controller": "^3.0.0", + "data-uri-to-buffer": "^3.0.1", + "mrmime": "^1.0.0" + }, + "engines": { + "node": "^10.17 || >=12.3" + } + }, + "node_modules/@remix-run/web-file": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-file/-/web-file-3.1.0.tgz", + "integrity": "sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==", + "license": "MIT", + "dependencies": { + "@remix-run/web-blob": "^3.1.0" + } + }, + "node_modules/@remix-run/web-form-data": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz", + "integrity": "sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==", + "license": "MIT", + "dependencies": { + "web-encoding": "1.1.5" + } + }, + "node_modules/@remix-run/web-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-stream/-/web-stream-1.1.0.tgz", + "integrity": "sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==", + "license": "MIT", + "dependencies": { + "web-streams-polyfill": "^3.1.1" + } + }, + "node_modules/@rnx-kit/chromium-edge-launcher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz", + "integrity": "sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==", + "license": "Apache-2.0", + "dependencies": { + "@types/node": "^18.0.0", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=14.15" + } + }, + "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/@types/node": { + "version": "18.19.74", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.74.tgz", + "integrity": "sha512-HMwEkkifei3L605gFdV+/UwtpxP6JSzM+xFk2Ia6DNFSwSVBRh9qp5Tgf4lNFOMfPVuU0WnkcWpXZpgn5ufO4A==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@segment/loosely-validate-event": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", + "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", + "dependencies": { + "component-type": "^1.2.1", + "join-component": "^1.1.0" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@tanstack/query-core": { + "version": "4.36.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz", + "integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "4.36.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz", + "integrity": "sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "4.36.1", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-native": "*" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -4807,6 +7344,7 @@ "version": "7.20.6", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" @@ -4824,35 +7362,27 @@ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -4950,9 +7480,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", - "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "version": "18.2.79", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", + "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", "devOptional": true, "license": "MIT", "dependencies": { @@ -5017,72 +7547,80 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz", - "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/type-utils": "8.21.0", - "@typescript-eslint/utils": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/parser": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz", - "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/typescript-estree": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz", - "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -5090,37 +7628,41 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz", - "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.21.0", - "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", "debug": "^4.3.4", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/types": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz", - "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", "dev": true, "license": "MIT", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -5128,30 +7670,32 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz", - "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", "debug": "^4.3.4", - "fast-glob": "^3.3.2", + "globby": "^11.1.0", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -5181,9 +7725,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", "dev": true, "license": "ISC", "bin": { @@ -5194,68 +7738,77 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz", - "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/typescript-estree": "8.21.0" + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "eslint": "^8.56.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz", - "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.21.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, "node_modules/@urql/core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@urql/core/-/core-5.1.0.tgz", - "integrity": "sha512-yC3sw8yqjbX45GbXxfiBY8GLYCiyW/hLBbQF9l3TJrv4ro00Y0ChkKaD9I2KntRxAVm9IYBqh0awX8fwWAe/Yw==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz", + "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==", "license": "MIT", "dependencies": { - "@0no-co/graphql.web": "^1.0.5", - "wonka": "^6.3.2" + "@graphql-typed-document-node/core": "^3.1.0", + "wonka": "^4.0.14" + }, + "peerDependencies": { + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, "node_modules/@urql/exchange-retry": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-1.3.0.tgz", - "integrity": "sha512-FLt+d81gP4oiHah4hWFDApimc+/xABWMU1AMYsZ1PVB0L0YPtrMCjbOp9WMM7hBzy4gbTDrG24sio0dCfSh/HQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz", + "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==", "license": "MIT", "dependencies": { - "@urql/core": "^5.0.0", - "wonka": "^6.3.2" + "@urql/core": ">=2.3.1", + "wonka": "^4.0.14" }, "peerDependencies": { - "@urql/core": "^5.0.0" + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" } }, "node_modules/@web3-storage/multipart-parser": { @@ -5264,182 +7817,6 @@ "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==", "license": "(Apache-2.0 AND MIT)" }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, "node_modules/@xmldom/xmldom": { "version": "0.7.13", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", @@ -5450,22 +7827,6 @@ "node": ">=10.0.0" } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "license": "Apache-2.0", - "peer": true - }, "node_modules/@zxing/text-encoding": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", @@ -5548,19 +7909,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-loose": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.4.0.tgz", - "integrity": "sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/acorn-walk": { "version": "8.3.4", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", @@ -5578,7 +7926,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, "license": "MIT", "dependencies": { "debug": "4" @@ -5656,17 +8003,6 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/anser": { "version": "1.4.10", "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", @@ -5688,6 +8024,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-fragments": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", + "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", + "license": "MIT", + "dependencies": { + "colorette": "^1.0.7", + "slice-ansi": "^2.0.0", + "strip-ansi": "^5.0.0" + } + }, + "node_modules/ansi-fragments/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-fragments/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -5743,6 +8111,12 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/appdirsjs": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", + "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==", + "license": "MIT" + }, "node_modules/application-config-path": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz", @@ -5765,7 +8139,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -5909,7 +8282,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", @@ -5945,11 +8317,19 @@ "node": ">=4" } }, + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/async-function": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -6004,6 +8384,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, "license": "MIT", "dependencies": { "@jest/transform": "^29.7.0", @@ -6025,6 +8406,7 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", @@ -6041,6 +8423,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", @@ -6057,6 +8440,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", @@ -6107,36 +8491,151 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-react-native-web": { - "version": "0.19.13", - "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.13.tgz", - "integrity": "sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==", - "license": "MIT" + "node_modules/babel-plugin-react-compiler": { + "version": "0.0.0-experimental-592953e-20240517", + "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-0.0.0-experimental-592953e-20240517.tgz", + "integrity": "sha512-OjG1SVaeQZaJrqkMFJatg8W/MTow8Ak5rx2SI0ETQBO1XvOk/XZGMbltNCPdFJLKghBYoBjC+Y3Ap/Xr7B01mA==", + "license": "MIT", + "dependencies": { + "@babel/generator": "7.2.0", + "@babel/types": "^7.19.0", + "chalk": "4", + "invariant": "^2.2.4", + "pretty-format": "^24", + "zod": "^3.22.4", + "zod-validation-error": "^2.1.0" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/@babel/generator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.0.tgz", + "integrity": "sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.2.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/babel-plugin-syntax-hermes-parser": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz", - "integrity": "sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==", + "node_modules/babel-plugin-react-compiler/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "license": "MIT", "dependencies": { - "hermes-parser": "0.25.1" + "color-name": "1.1.3" } }, - "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-estree": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", - "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "node_modules/babel-plugin-react-compiler/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "license": "MIT" }, - "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-parser": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", - "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "node_modules/babel-plugin-react-compiler/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", "license": "MIT", "dependencies": { - "hermes-estree": "0.25.1" + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/babel-plugin-react-compiler/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/babel-plugin-react-compiler/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, + "node_modules/babel-plugin-react-native-web": { + "version": "0.19.13", + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.13.tgz", + "integrity": "sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==", + "license": "MIT" + }, "node_modules/babel-plugin-transform-flow-enums": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", @@ -6150,6 +8649,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -6173,9 +8673,9 @@ } }, "node_modules/babel-preset-expo": { - "version": "12.0.6", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-12.0.6.tgz", - "integrity": "sha512-az3H7gDVo0wxNBAFES8h5vLLWE8NPGkD9g5P962hDEOqZUdyPacb9MOzicypeLmcq9zQWr6E3iVtEHoNagCTTQ==", + "version": "11.0.15", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.15.tgz", + "integrity": "sha512-rgiMTYwqIPULaO7iZdqyL7aAff9QLOX6OWUtLZBlOrOTreGY1yHah/5+l8MvI6NVc/8Zj5LY4Y5uMSnJIuzTLw==", "license": "MIT", "dependencies": { "@babel/plugin-proposal-decorators": "^7.12.9", @@ -6184,27 +8684,17 @@ "@babel/plugin-transform-parameters": "^7.22.15", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", - "@react-native/babel-preset": "0.76.6", - "babel-plugin-react-native-web": "~0.19.13", + "@react-native/babel-preset": "0.74.87", + "babel-plugin-react-compiler": "0.0.0-experimental-592953e-20240517", + "babel-plugin-react-native-web": "~0.19.10", "react-refresh": "^0.14.2" - }, - "peerDependencies": { - "babel-plugin-react-compiler": "^19.0.0-beta-9ee70a1-20241017", - "react-compiler-runtime": "^19.0.0-beta-8a03594-20241020" - }, - "peerDependenciesMeta": { - "babel-plugin-react-compiler": { - "optional": true - }, - "react-compiler-runtime": { - "optional": true - } } }, "node_modules/babel-preset-jest": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, "license": "MIT", "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", @@ -6255,23 +8745,6 @@ "node": ">=12.0.0" } }, - "node_modules/better-opn/node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/big-integer": { "version": "1.6.52", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", @@ -6281,6 +8754,31 @@ "node": ">=0.6" } }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/bplist-creator": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", @@ -6417,6 +8915,12 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "license": "MIT" + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -6649,43 +9153,6 @@ "node": ">=12.13.0" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/chromium-edge-launcher": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", - "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==", - "license": "Apache-2.0", - "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0", - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "node_modules/chromium-edge-launcher/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -6740,12 +9207,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "license": "MIT" - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -6793,9 +9254,9 @@ } }, "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "license": "MIT", "engines": { "node": ">=0.8" @@ -6874,6 +9335,12 @@ "simple-swizzle": "^0.2.2" } }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "license": "MIT" + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -7227,6 +9694,12 @@ "devOptional": true, "license": "MIT" }, + "node_modules/dag-map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", + "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==", + "license": "MIT" + }, "node_modules/data-uri-to-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", @@ -7255,7 +9728,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -7273,7 +9745,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -7291,7 +9762,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -7305,6 +9775,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, "node_modules/debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", @@ -7322,6 +9798,15 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/decimal.js": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", @@ -7403,6 +9888,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -7433,7 +9927,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", @@ -7727,6 +10220,18 @@ "node": ">=8" } }, + "node_modules/envinfo": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/eol": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", @@ -7751,11 +10256,23 @@ "stackframe": "^1.3.4" } }, + "node_modules/errorhandler": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", + "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.7", + "escape-html": "~1.0.3" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/es-abstract": { "version": "1.23.9", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", - "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.2", @@ -7863,14 +10380,6 @@ "node": ">= 0.4" } }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -7887,7 +10396,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -7913,7 +10421,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.2.7", @@ -7988,101 +10495,81 @@ } }, "node_modules/eslint": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", - "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.10.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.18.0", - "@eslint/plugin-kit": "^0.2.5", - "@humanfs/node": "^0.16.6", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", + "cross-spawn": "^7.0.2", "debug": "^4.3.2", + "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", + "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3" + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-config-expo": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-expo/-/eslint-config-expo-8.0.1.tgz", - "integrity": "sha512-r9PSgkuZk5Q5ALbk1yowYwEIj0oqO/ikRO9TNhpx2DzSOdK65y3urgFI04WYvQzMr9q1fnA62wr9iGfrsmF5pQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-expo/-/eslint-config-expo-7.1.2.tgz", + "integrity": "sha512-WxrDVNklN43Op0v3fglQfzL2bC7vqacUq9oVwJcGCUEDzdM7kGOR6pfEJiz3i3dQv3cFjHtct0CFEExep5c/dA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "^8.9.0", - "@typescript-eslint/parser": "^8.9.0", - "eslint-import-resolver-typescript": "^3.6.3", - "eslint-plugin-expo": "^0.1.0", - "eslint-plugin-import": "^2.30.0", - "eslint-plugin-react": "^7.36.1", - "eslint-plugin-react-hooks": "^4.6.2" + "@typescript-eslint/eslint-plugin": "^7.4.0", + "@typescript-eslint/parser": "^7.4.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-expo": "^0.0.1", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-react": "^7.34.0", + "eslint-plugin-react-hooks": "^4.6.0" }, "peerDependencies": { "eslint": ">=8.10" } }, - "node_modules/eslint-config-expo/node_modules/eslint-plugin-expo": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-expo/-/eslint-plugin-expo-0.1.0.tgz", - "integrity": "sha512-bX0ABF5CTbwUnFXHN5aHhx2uyasbmr1ADlY/D1bmFb31sNd1rc+K1Ss4/BlTU6H0urGNOD30+q7LTDABKB/10g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "^8.9.0", - "@typescript-eslint/utils": "^8.9.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "eslint": ">=8 <9" - } - }, "node_modules/eslint-config-expo/node_modules/eslint-plugin-react-hooks": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", @@ -8097,13 +10584,13 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz", - "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "license": "MIT", "bin": { - "eslint-config-prettier": "build/bin/cli.js" + "eslint-config-prettier": "bin/cli.js" }, "peerDependencies": { "eslint": ">=7.0.0" @@ -8195,6 +10682,23 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-expo": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-expo/-/eslint-plugin-expo-0.0.1.tgz", + "integrity": "sha512-dNri81vunJ3T+N1YWWxjLU6ux6KiukwZ4ECXCOPp8hG7M4kuvPAb9YQSIM63AT0pbtfYH/a6htikhaQcRPjhRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "^7.2.0", + "@typescript-eslint/utils": "^7.2.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, "node_modules/eslint-plugin-import": { "version": "2.31.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", @@ -8322,9 +10826,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -8332,38 +10836,93 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -8445,17 +11004,6 @@ "node": ">=6" } }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/exec-async": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", @@ -8580,206 +11128,718 @@ } }, "node_modules/expo": { - "version": "52.0.27", - "resolved": "https://registry.npmjs.org/expo/-/expo-52.0.27.tgz", - "integrity": "sha512-PxIS8JRTegUNYq4vNeP0eCqm7p17oGNYjJ/9x207zkwVlklywD9LYIckGojXEY5JPW/DwhbhtO6E2hMgdQQugg==", + "version": "51.0.39", + "resolved": "https://registry.npmjs.org/expo/-/expo-51.0.39.tgz", + "integrity": "sha512-Cs/9xopyzJrpXWbyVUZnr37rprdFJorRgfSp6cdBfvbjxZeKnw2MEu7wJwV/s626i5lZTPGjZPHUF9uQvt51cg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.0", - "@expo/cli": "0.22.10", - "@expo/config": "~10.0.8", - "@expo/config-plugins": "~9.0.14", - "@expo/fingerprint": "0.11.7", - "@expo/metro-config": "0.19.9", - "@expo/vector-icons": "^14.0.0", - "babel-preset-expo": "~12.0.6", - "expo-asset": "~11.0.2", - "expo-constants": "~17.0.4", - "expo-file-system": "~18.0.7", - "expo-font": "~13.0.3", - "expo-keep-awake": "~14.0.2", - "expo-modules-autolinking": "2.0.7", - "expo-modules-core": "2.1.4", + "@expo/cli": "0.18.31", + "@expo/config": "9.0.4", + "@expo/config-plugins": "8.0.11", + "@expo/metro-config": "0.18.11", + "@expo/vector-icons": "^14.0.3", + "babel-preset-expo": "~11.0.15", + "expo-asset": "~10.0.10", + "expo-file-system": "~17.0.1", + "expo-font": "~12.0.10", + "expo-keep-awake": "~13.0.2", + "expo-modules-autolinking": "1.11.3", + "expo-modules-core": "1.12.26", "fbemitter": "^3.0.0", - "web-streams-polyfill": "^3.3.2", "whatwg-url-without-unicode": "8.0.0-3" }, "bin": { "expo": "bin/cli" + } + }, + "node_modules/expo-asset": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-10.0.10.tgz", + "integrity": "sha512-0qoTIihB79k+wGus9wy0JMKq7DdenziVx3iUkGvMAy2azscSgWH6bd2gJ9CGnhC6JRd3qTMFBL0ou/fx7WZl7A==", + "license": "MIT", + "dependencies": { + "expo-constants": "~16.0.0", + "invariant": "^2.2.4", + "md5-file": "^3.2.3" }, "peerDependencies": { - "@expo/dom-webview": "*", - "@expo/metro-runtime": "*", - "react": "*", - "react-native": "*", - "react-native-webview": "*" + "expo": "*" + } + }, + "node_modules/expo-constants": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-16.0.2.tgz", + "integrity": "sha512-9tNY3OVO0jfiMzl7ngb6IOyR5VFzNoN5OOazUWoeGfmMqVB5kltTemRvKraK9JRbBKIw+SOYLEmF0sEqgFZ6OQ==", + "license": "MIT", + "dependencies": { + "@expo/config": "~9.0.0", + "@expo/env": "~0.3.0" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-constants/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/expo-constants/node_modules/@expo/config": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", + "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/json-file": "^8.3.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "3.34.0" + } + }, + "node_modules/expo-constants/node_modules/@expo/config-plugins": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", + "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "license": "MIT", + "dependencies": { + "@expo/config-types": "^51.0.3", + "@expo/json-file": "~8.3.0", + "@expo/plist": "^0.1.0", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" + } + }, + "node_modules/expo-constants/node_modules/@expo/config-types": { + "version": "51.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", + "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==", + "license": "MIT" + }, + "node_modules/expo-constants/node_modules/@expo/env": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz", + "integrity": "sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "debug": "^4.3.4", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "getenv": "^1.0.0" + } + }, + "node_modules/expo-constants/node_modules/@expo/json-file": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.2", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/expo-constants/node_modules/@expo/plist": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/expo-constants/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/expo-constants/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/expo-constants/node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/expo-constants/node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/expo-file-system": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-17.0.1.tgz", + "integrity": "sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw==", + "license": "MIT", + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-font": { + "version": "12.0.10", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.10.tgz", + "integrity": "sha512-Q1i2NuYri3jy32zdnBaHHCya1wH1yMAsI+3CCmj9zlQzlhsS9Bdwcj2W3c5eU5FvH2hsNQy4O+O1NnM6o/pDaQ==", + "license": "MIT", + "dependencies": { + "fontfaceobserver": "^2.1.0" + }, + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-keep-awake": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-13.0.2.tgz", + "integrity": "sha512-kKiwkVg/bY0AJ5q1Pxnm/GvpeB6hbNJhcFsoOWDh2NlpibhCLaHL826KHUM+WsnJRbVRxJ+K9vbPRHEMvFpVyw==", + "license": "MIT", + "peerDependencies": { + "expo": "*" + } + }, + "node_modules/expo-linking": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-6.3.1.tgz", + "integrity": "sha512-xuZCntSBGWCD/95iZ+mTUGTwHdy8Sx+immCqbUBxdvZ2TN61P02kKg7SaLS8A4a/hLrSCwrg5tMMwu5wfKr35g==", + "license": "MIT", + "dependencies": { + "expo-constants": "~16.0.0", + "invariant": "^2.2.4" + } + }, + "node_modules/expo-modules-autolinking": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.11.3.tgz", + "integrity": "sha512-oYh8EZEvYF5TYppxEKUTTJmbr8j7eRRnrIxzZtMvxLTXoujThVPMFS/cbnSnf2bFm1lq50TdDNABhmEi7z0ngQ==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "commander": "^7.2.0", + "fast-glob": "^3.2.5", + "find-up": "^5.0.0", + "fs-extra": "^9.1.0", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "expo-modules-autolinking": "bin/expo-modules-autolinking.js" + } + }, + "node_modules/expo-modules-core": { + "version": "1.12.26", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.26.tgz", + "integrity": "sha512-y8yDWjOi+rQRdO+HY+LnUlz8qzHerUaw/LUjKPU/mX8PRXP4UUPEEp5fjAwBU44xjNmYSHWZDwet4IBBE+yQUA==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4" + } + }, + "node_modules/expo-router": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-3.5.24.tgz", + "integrity": "sha512-wFi+PIUrOntF5cgg0PgBMlkxEZlWedIv5dWnPFEzN6Tr3A3bpsqdDLgOEIwvwd+pxn5DLzykTmg9EkQ1pPGspw==", + "license": "MIT", + "dependencies": { + "@expo/metro-runtime": "3.2.3", + "@expo/server": "^0.4.0", + "@radix-ui/react-slot": "1.0.1", + "@react-navigation/bottom-tabs": "~6.5.7", + "@react-navigation/native": "~6.1.6", + "@react-navigation/native-stack": "~6.9.12", + "expo-splash-screen": "0.27.7", + "react-native-helmet-async": "2.0.4", + "schema-utils": "^4.0.1" + }, + "peerDependencies": { + "@react-navigation/drawer": "^6.5.8", + "expo": "*", + "expo-constants": "*", + "expo-linking": "*", + "expo-status-bar": "*", + "react-native-reanimated": "*", + "react-native-safe-area-context": "*", + "react-native-screens": "*" }, "peerDependenciesMeta": { - "@expo/dom-webview": { + "@react-navigation/drawer": { "optional": true }, - "@expo/metro-runtime": { + "@testing-library/jest-native": { "optional": true }, - "react-native-webview": { + "react-native-reanimated": { "optional": true } } }, - "node_modules/expo-asset": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-11.0.2.tgz", - "integrity": "sha512-We3Td5WsNsNQyXoheLnuwic6JCOt/pqXqIIyWaZ3z/PeHrA+SwoQdI18MjDhkudLK08tbIVyDSUW8IJHXa04eg==", + "node_modules/expo-splash-screen": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.27.7.tgz", + "integrity": "sha512-s+eGcG185878nixlrjhhLD6UDYrvoqBUaBkIEozBVWFg3pkdsKpONPiUAco4XR3h7I/9ODq4quN28RJLFO+s0Q==", "license": "MIT", "dependencies": { - "@expo/image-utils": "^0.6.4", - "expo-constants": "~17.0.4", - "invariant": "^2.2.4", - "md5-file": "^3.2.3" + "@expo/prebuild-config": "7.0.9" }, "peerDependencies": { - "expo": "*", - "react": "*", - "react-native": "*" + "expo": "*" } }, - "node_modules/expo-constants": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-17.0.4.tgz", - "integrity": "sha512-5c0VlZycmDyQUCMCr3Na3cpHAsVJJ+5o6KkkD4rmATQZ0++Xp/S2gpnjWyEo2riRmO91vxoyHwmAySXuktJddQ==", + "node_modules/expo-status-bar": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.12.1.tgz", + "integrity": "sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA==", + "license": "MIT" + }, + "node_modules/expo-system-ui": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-3.0.7.tgz", + "integrity": "sha512-KAs72F5JKhdIfPR9ZNVlRubTPK9uUuevPy5oYEp12xNEzSQcjZKvypH5NpwJuNWkXzrp3n3vZ+3pXsudA7J3KA==", "license": "MIT", "dependencies": { - "@expo/config": "~10.0.8", - "@expo/env": "~0.4.1" + "@react-native/normalize-colors": "0.74.85", + "debug": "^4.3.2" }, "peerDependencies": { - "expo": "*", - "react-native": "*" + "expo": "*" } }, - "node_modules/expo-file-system": { - "version": "18.0.7", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-18.0.7.tgz", - "integrity": "sha512-6PpbQfogMXdzOsJzlJayy5qf40IfIHhudtAOzr32RlRYL4Hkmk3YcR9jG0PWQ0rklJfAhbAdP63yOcN+wDgzaA==", + "node_modules/expo-web-browser": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-13.0.3.tgz", + "integrity": "sha512-HXb7y82ApVJtqk8tManyudtTrCtx8xcUnVzmJECeHCB0SsWSQ+penVLZxJkcyATWoJOsFMnfVSVdrTcpKKGszQ==", "license": "MIT", - "dependencies": { - "web-streams-polyfill": "^3.3.2" - }, "peerDependencies": { - "expo": "*", - "react-native": "*" + "expo": "*" } }, - "node_modules/expo-font": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-13.0.3.tgz", - "integrity": "sha512-9IdYz+A+b3KvuCYP7DUUXF4VMZjPU+IsvAnLSVJ2TfP6zUD2JjZFx3jeo/cxWRkYk/aLj5+53Te7elTAScNl4Q==", + "node_modules/expo/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "license": "MIT", "dependencies": { - "fontfaceobserver": "^2.1.0" - }, - "peerDependencies": { - "expo": "*", - "react": "*" + "@babel/highlight": "^7.10.4" } }, - "node_modules/expo-keep-awake": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-14.0.2.tgz", - "integrity": "sha512-71XAMnoWjKZrN8J7Q3+u0l9Ytp4OfhNAYz8BCWF1/9aFUw09J3I7Z5DuI3MUsVMa/KWi+XhG+eDUFP8cVA19Uw==", + "node_modules/expo/node_modules/@expo/config": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", + "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", "license": "MIT", - "peerDependencies": { - "expo": "*", - "react": "*" + "dependencies": { + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/json-file": "^8.3.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "3.34.0" } }, - "node_modules/expo-linking": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-7.0.4.tgz", - "integrity": "sha512-i+QaFc2zwOoq/ajePVWC+op3cOKC6nd6Wj/BJtukU71byTAbxDhbi+3m0ZFbh2i1/v/iIXRqrl3PvQcKNklPkw==", + "node_modules/expo/node_modules/@expo/config-plugins": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", + "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", "license": "MIT", "dependencies": { - "expo-constants": "~17.0.4", - "invariant": "^2.2.4" - }, - "peerDependencies": { - "react": "*", - "react-native": "*" + "@expo/config-types": "^51.0.3", + "@expo/json-file": "~8.3.0", + "@expo/plist": "^0.1.0", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" } }, - "node_modules/expo-modules-autolinking": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.0.7.tgz", - "integrity": "sha512-rkGc6a/90AC3q8wSy4V+iIpq6Fd0KXmQICKrvfmSWwrMgJmLfwP4QTrvLYPYOOMjFwNJcTaohcH8vzW/wYKrMg==", + "node_modules/expo/node_modules/@expo/config-types": { + "version": "51.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", + "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==", + "license": "MIT" + }, + "node_modules/expo/node_modules/@expo/env": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz", + "integrity": "sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "debug": "^4.3.4", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "getenv": "^1.0.0" + } + }, + "node_modules/expo/node_modules/@expo/json-file": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.2", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/expo/node_modules/@expo/metro-config": { + "version": "0.18.11", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.11.tgz", + "integrity": "sha512-/uOq55VbSf9yMbUO1BudkUM2SsGW1c5hr9BnhIqYqcsFv0Jp5D3DtJ4rljDKaUeNLbwr6m7pqIrkSMq5NrYf4Q==", "license": "MIT", "dependencies": { + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.5", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", + "@expo/config": "~9.0.0-beta.0", + "@expo/env": "~0.3.0", + "@expo/json-file": "~8.3.0", "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", - "commander": "^7.2.0", - "fast-glob": "^3.2.5", - "find-up": "^5.0.0", + "debug": "^4.3.2", + "find-yarn-workspace-root": "~2.0.0", "fs-extra": "^9.1.0", - "require-from-string": "^2.0.2", + "getenv": "^1.0.0", + "glob": "^7.2.3", + "jsc-safe-url": "^0.2.4", + "lightningcss": "~1.19.0", + "postcss": "~8.4.32", "resolve-from": "^5.0.0" + } + }, + "node_modules/expo/node_modules/@expo/metro-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, - "bin": { - "expo-modules-autolinking": "bin/expo-modules-autolinking.js" + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/expo/node_modules/@expo/plist": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" + } + }, + "node_modules/expo/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/expo/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/expo/node_modules/lightningcss": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz", + "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.19.0", + "lightningcss-darwin-x64": "1.19.0", + "lightningcss-linux-arm-gnueabihf": "1.19.0", + "lightningcss-linux-arm64-gnu": "1.19.0", + "lightningcss-linux-arm64-musl": "1.19.0", + "lightningcss-linux-x64-gnu": "1.19.0", + "lightningcss-linux-x64-musl": "1.19.0", + "lightningcss-win32-x64-msvc": "1.19.0" + } + }, + "node_modules/expo/node_modules/lightningcss-darwin-arm64": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz", + "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-darwin-x64": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz", + "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz", + "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz", + "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz", + "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/expo/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz", + "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/expo-modules-core": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-2.1.4.tgz", - "integrity": "sha512-gfsbTPSaocgcQQDy4Z4ztg1hcOofwODctAA+yoNcrUQr/hRaDc6ndIJQwGPjoGXnEbXVxFfzGGSAkNiqK1I7lQ==", - "license": "MIT", - "dependencies": { - "invariant": "^2.2.4" + "node_modules/expo/node_modules/lightningcss-linux-x64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz", + "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/expo-router": { - "version": "4.0.17", - "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-4.0.17.tgz", - "integrity": "sha512-8ybo6bVwdG1S9hafh9BTOjX1hpCgomdUvs6hKHMM01koo8mQ7zocH/+zxQeaMVDxGhboz2dO5GiDchWJ0OheRA==", - "license": "MIT", - "dependencies": { - "@expo/metro-runtime": "4.0.1", - "@expo/server": "^0.5.1", - "@radix-ui/react-slot": "1.0.1", - "@react-navigation/bottom-tabs": "^7.2.0", - "@react-navigation/native": "^7.0.14", - "@react-navigation/native-stack": "^7.2.0", - "client-only": "^0.0.1", - "react-helmet-async": "^1.3.0", - "react-native-helmet-async": "2.0.4", - "react-native-is-edge-to-edge": "^1.1.6", - "schema-utils": "^4.0.1", - "semver": "~7.6.3", - "server-only": "^0.0.1" - }, - "peerDependencies": { - "@react-navigation/drawer": "^7.1.1", - "expo": "*", - "expo-constants": "*", - "expo-linking": "*", - "react-native-reanimated": "*", - "react-native-safe-area-context": "*", - "react-native-screens": "*" + "node_modules/expo/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz", + "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" }, - "peerDependenciesMeta": { - "@react-navigation/drawer": { - "optional": true - }, - "@testing-library/jest-native": { - "optional": true - }, - "react-native-reanimated": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/expo-router/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/expo/node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -8788,56 +11848,26 @@ "node": ">=10" } }, - "node_modules/expo-splash-screen": { - "version": "0.29.21", - "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.29.21.tgz", - "integrity": "sha512-7uZ+qvIuNcvrvrLIklW+Wbt6llPuCj6LKYjrMu+GOX8s///laldS4TGiMAbqcE7fmfCzQ8ffgfY7xhxRourhcA==", - "license": "MIT", - "dependencies": { - "@expo/prebuild-config": "^8.0.25" - }, - "peerDependencies": { - "expo": "*" - } - }, - "node_modules/expo-status-bar": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-2.0.1.tgz", - "integrity": "sha512-AkIPX7jWHRPp83UBZ1iXtVvyr0g+DgBVvIXTtlmPtmUsm8Vq9Bb5IGj86PW8osuFlgoTVAg7HI/+Ok7yEYwiRg==", - "license": "MIT", - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/expo-system-ui": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-4.0.7.tgz", - "integrity": "sha512-x1VDoE7J8m4wxTgWyUBEYqsf1KabIg64dOLzYiZjg0cWOE6o6kX2Mg6n3abVWEEC01WhZBoo9+Urcce/6ZJ3tg==", + "node_modules/expo/node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", "license": "MIT", "dependencies": { - "@react-native/normalize-colors": "0.76.6", - "debug": "^4.3.2" + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" }, - "peerDependencies": { - "expo": "*", - "react-native": "*", - "react-native-web": "*" + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" }, - "peerDependenciesMeta": { - "react-native-web": { - "optional": true - } - } - }, - "node_modules/expo-web-browser": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-14.0.2.tgz", - "integrity": "sha512-Hncv2yojhTpHbP6SGWARBFdl7P6wBHc1O8IKaNsH0a/IEakq887o1eRhLxZ5IwztPQyRDhpqHdgJ+BjWolOnwA==", - "license": "MIT", - "peerDependencies": { - "expo": "*", - "react-native": "*" + "engines": { + "node": ">=8" } }, "node_modules/exponential-backoff": { @@ -8897,6 +11927,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { @@ -8928,6 +11959,28 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fast-xml-parser": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz", + "integrity": "sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { "version": "1.18.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", @@ -8983,16 +12036,16 @@ "license": "MIT" }, "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^4.0.0" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=16.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/fill-range": { @@ -9174,18 +12227,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "license": "Apache-2.0", + "dependencies": { + "micromatch": "^4.0.2" + } + }, "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.4" + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=16" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { @@ -9333,7 +12396,6 @@ "version": "1.1.8", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -9354,7 +12416,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9406,6 +12467,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.0.0" @@ -9449,7 +12511,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -9518,14 +12579,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true - }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -9563,7 +12616,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, "license": "MIT", "dependencies": { "define-properties": "^1.2.1", @@ -9621,11 +12673,34 @@ "dev": true, "license": "MIT" }, + "node_modules/graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "license": "MIT", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -9659,7 +12734,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.0" @@ -9711,18 +12785,30 @@ } }, "node_modules/hermes-estree": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", - "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz", + "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==", "license": "MIT" }, "node_modules/hermes-parser": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", - "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz", + "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==", "license": "MIT", "dependencies": { - "hermes-estree": "0.23.1" + "hermes-estree": "0.19.1" + } + }, + "node_modules/hermes-profile-transformer": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", + "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", + "license": "MIT", + "dependencies": { + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=8" } }, "node_modules/hoist-non-react-statics": { @@ -9741,21 +12827,33 @@ "license": "MIT" }, "node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", "license": "ISC", "dependencies": { - "lru-cache": "^10.0.1" + "lru-cache": "^6.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=10" } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "license": "ISC" }, "node_modules/html-encoding-sniffer": { @@ -9822,7 +12920,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, "license": "MIT", "dependencies": { "agent-base": "6", @@ -10031,7 +13128,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -10089,7 +13185,6 @@ "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -10113,7 +13208,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, "license": "MIT", "dependencies": { "async-function": "^1.0.0", @@ -10133,7 +13227,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, "license": "MIT", "dependencies": { "has-bigints": "^1.0.2" @@ -10149,7 +13242,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -10222,7 +13314,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -10240,7 +13331,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -10290,7 +13380,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3" @@ -10351,11 +13440,52 @@ "node": ">=0.10.0" } }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-invalid-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", + "license": "MIT", + "dependencies": { + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-invalid-path/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-invalid-path/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -10377,7 +13507,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -10458,7 +13587,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -10471,7 +13599,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3" @@ -10496,7 +13623,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -10513,7 +13639,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -10542,11 +13667,34 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-valid-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", + "license": "MIT", + "dependencies": { + "is-invalid-path": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -10559,7 +13707,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2" @@ -10575,7 +13722,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -10604,7 +13750,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, "license": "MIT" }, "node_modules/isexe": { @@ -10626,6 +13771,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=8" @@ -11112,89 +14258,181 @@ } }, "node_modules/jest-expo": { - "version": "52.0.3", - "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-52.0.3.tgz", - "integrity": "sha512-z2gptekrQ0FIichvRhrES31X9twtCCTzu00sWnPyFaQuWQdoyZiCj2WFPqVrpgIgNYLFIEGhc0VP9rUT9johJw==", + "version": "51.0.4", + "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-51.0.4.tgz", + "integrity": "sha512-WmlR4rUur1TNF/F14brKCmPdX3TWf7Bno/6A1PuxnflN79LEIXpXuPKMlMWwCCChTohGB5FRniknRibblWu1ug==", "dev": true, "license": "MIT", "dependencies": { - "@expo/config": "~10.0.8", - "@expo/json-file": "^9.0.1", + "@expo/config": "~9.0.0-beta.0", + "@expo/json-file": "^8.3.0", "@jest/create-cache-key-function": "^29.2.1", - "@jest/globals": "^29.2.1", "babel-jest": "^29.2.1", - "fbemitter": "^3.0.0", "find-up": "^5.0.0", "jest-environment-jsdom": "^29.2.1", - "jest-snapshot": "^29.2.1", "jest-watch-select-projects": "^2.0.0", "jest-watch-typeahead": "2.2.1", "json5": "^2.2.3", "lodash": "^4.17.19", - "react-server-dom-webpack": "19.0.0-rc-6230622a1a-20240610", - "react-test-renderer": "18.3.1", - "server-only": "^0.0.1", + "react-test-renderer": "18.2.0", "stacktrace-js": "^2.0.2" }, "bin": { "jest": "bin/jest.js" - }, - "peerDependencies": { - "expo": "*", - "react-native": "*" } }, - "node_modules/jest-expo/node_modules/react": { - "version": "19.0.0-rc-6230622a1a-20240610", - "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-6230622a1a-20240610.tgz", - "integrity": "sha512-SMgWGY//7nO7F3HMuBfmC15Cr4vTe2tlpSCATfnz/wymSftDOKUqc+0smjRhcUeCFCc1zhOAWJ+N//U5CrmOzQ==", + "node_modules/jest-expo/node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@babel/highlight": "^7.10.4" } }, - "node_modules/jest-expo/node_modules/react-dom": { - "version": "19.0.0-rc-6230622a1a-20240610", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-6230622a1a-20240610.tgz", - "integrity": "sha512-56G4Pum5E7FeGL1rwHX5IxidSJxQnXP4yORRo0pVeOJuu5DQJvNKpUwmJoftMP/ez0AiglYTY77L2Gs8iyt1Hg==", + "node_modules/jest-expo/node_modules/@expo/config": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", + "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "scheduler": "0.25.0-rc-6230622a1a-20240610" - }, - "peerDependencies": { - "react": "19.0.0-rc-6230622a1a-20240610" + "@babel/code-frame": "~7.10.4", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.3", + "@expo/json-file": "^8.3.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "slugify": "^1.3.4", + "sucrase": "3.34.0" + } + }, + "node_modules/jest-expo/node_modules/@expo/config-plugins": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", + "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@expo/config-types": "^51.0.3", + "@expo/json-file": "~8.3.0", + "@expo/plist": "^0.1.0", + "@expo/sdk-runtime-versions": "^1.0.0", + "chalk": "^4.1.2", + "debug": "^4.3.1", + "find-up": "~5.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "slash": "^3.0.0", + "slugify": "^1.6.6", + "xcode": "^3.0.1", + "xml2js": "0.6.0" + } + }, + "node_modules/jest-expo/node_modules/@expo/config-types": { + "version": "51.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", + "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-expo/node_modules/@expo/json-file": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "~7.10.4", + "json5": "^2.2.2", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/jest-expo/node_modules/@expo/plist": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "~0.7.7", + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0" } }, - "node_modules/jest-expo/node_modules/react-server-dom-webpack": { - "version": "19.0.0-rc-6230622a1a-20240610", - "resolved": "https://registry.npmjs.org/react-server-dom-webpack/-/react-server-dom-webpack-19.0.0-rc-6230622a1a-20240610.tgz", - "integrity": "sha512-nr+IsOVD07QdeCr4BLvR5TALfLaZLi9AIaoa6vXymBc051iDPWedJujYYrjRJy5+9jp9oCx3G8Tt/Bs//TckJw==", + "node_modules/jest-expo/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-expo/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", "dependencies": { - "acorn-loose": "^8.3.0", - "neo-async": "^2.6.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "*" }, - "peerDependencies": { - "react": "19.0.0-rc-6230622a1a-20240610", - "react-dom": "19.0.0-rc-6230622a1a-20240610", - "webpack": "^5.59.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-expo/node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/jest-expo/node_modules/scheduler": { - "version": "0.25.0-rc-6230622a1a-20240610", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-6230622a1a-20240610.tgz", - "integrity": "sha512-GTIQdJXthps5mgkIFo7yAq03M0QQYTfN8z+GrnMC/SCKFSuyFP5tk2BMaaWUsVy4u4r+dTLdiXH8JEivVls0Bw==", + "node_modules/jest-expo/node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", "dev": true, "license": "MIT", - "peer": true + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } }, "node_modules/jest-get-type": { "version": "29.6.3", @@ -11209,6 +14447,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -11316,6 +14555,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -11726,6 +14966,19 @@ "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==", "license": "MIT" }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, "node_modules/join-component": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", @@ -11888,6 +15141,36 @@ "dev": true, "license": "MIT" }, + "node_modules/json-schema-deref-sync": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz", + "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==", + "license": "MIT", + "dependencies": { + "clone": "^2.1.2", + "dag-map": "~1.0.0", + "is-valid-path": "^0.1.1", + "lodash": "^4.17.13", + "md5": "~2.2.0", + "memory-cache": "~0.2.0", + "traverse": "~0.6.6", + "valid-url": "~1.0.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/json-schema-deref-sync/node_modules/md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -12252,17 +15535,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "license": "MIT" }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.11.5" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -12294,7 +15566,6 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, "license": "MIT" }, "node_modules/lodash.throttle": { @@ -12386,6 +15657,170 @@ "node": ">=4" } }, + "node_modules/logkitty": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", + "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", + "license": "MIT", + "dependencies": { + "ansi-fragments": "^0.2.1", + "dayjs": "^1.8.15", + "yargs": "^15.1.0" + }, + "bin": { + "logkitty": "bin/logkitty.js" + } + }, + "node_modules/logkitty/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/logkitty/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/logkitty/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/logkitty/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/logkitty/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/long": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", @@ -12492,12 +15927,24 @@ "node": ">=0.10" } }, + "node_modules/md5hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", + "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==", + "license": "MIT" + }, "node_modules/memoize-one": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", "license": "MIT" }, + "node_modules/memory-cache": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", + "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==", + "license": "BSD-2-Clause" + }, "node_modules/merge-options": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", @@ -12526,18 +15973,18 @@ } }, "node_modules/metro": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.81.0.tgz", - "integrity": "sha512-kzdzmpL0gKhEthZ9aOV7sTqvg6NuTxDV8SIm9pf9sO8VVEbKrQk5DNcwupOUjgPPFAuKUc2NkT0suyT62hm2xg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/core": "^7.25.2", - "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.3", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.3", - "@babel/types": "^7.25.2", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.12.tgz", + "integrity": "sha512-1UsH5FzJd9quUsD1qY+zUG4JY3jo3YEMxbMYH9jT6NK3j4iORhlwTK8fYTfAUBhDKjgLfKjAh7aoazNE23oIRA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/parser": "^7.20.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", "accepts": "^1.3.7", "chalk": "^4.0.0", "ci-info": "^2.0.0", @@ -12547,24 +15994,24 @@ "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", - "hermes-parser": "0.24.0", + "hermes-parser": "0.23.1", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.6.3", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.81.0", - "metro-cache": "0.81.0", - "metro-cache-key": "0.81.0", - "metro-config": "0.81.0", - "metro-core": "0.81.0", - "metro-file-map": "0.81.0", - "metro-resolver": "0.81.0", - "metro-runtime": "0.81.0", - "metro-source-map": "0.81.0", - "metro-symbolicate": "0.81.0", - "metro-transform-plugins": "0.81.0", - "metro-transform-worker": "0.81.0", + "metro-babel-transformer": "0.80.12", + "metro-cache": "0.80.12", + "metro-cache-key": "0.80.12", + "metro-config": "0.80.12", + "metro-core": "0.80.12", + "metro-file-map": "0.80.12", + "metro-resolver": "0.80.12", + "metro-runtime": "0.80.12", + "metro-source-map": "0.80.12", + "metro-symbolicate": "0.80.12", + "metro-transform-plugins": "0.80.12", + "metro-transform-worker": "0.80.12", "mime-types": "^2.1.27", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", @@ -12578,102 +16025,102 @@ "metro": "src/cli.js" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-babel-transformer": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.81.0.tgz", - "integrity": "sha512-Dc0QWK4wZIeHnyZ3sevWGTnnSkIDDn/SWyfrn99zbKbDOCoCYy71PAn9uCRrP/hduKLJQOy+tebd63Rr9D8tXg==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.12.tgz", + "integrity": "sha512-YZziRs0MgA3pzCkkvOoQRXjIoVjvrpi/yRlJnObyIvMP6lFdtyG4nUGIwGY9VXnBvxmXD6mPY2e+NSw6JAyiRg==", "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", + "@babel/core": "^7.20.0", "flow-enums-runtime": "^0.0.6", - "hermes-parser": "0.24.0", + "hermes-parser": "0.23.1", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-babel-transformer/node_modules/hermes-estree": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.24.0.tgz", - "integrity": "sha512-LyoXLB7IFzeZW0EvAbGZacbxBN7t6KKSDqFJPo3Ydow7wDlrDjXwsdiAHV6XOdvEN9MEuWXsSIFN4tzpyrXIHw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", + "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==", "license": "MIT" }, "node_modules/metro-babel-transformer/node_modules/hermes-parser": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.24.0.tgz", - "integrity": "sha512-IJooSvvu2qNRe7oo9Rb04sUT4omtZqZqf9uq9WM25Tb6v3usmvA93UqfnnoWs5V0uYjEl9Al6MNU10MCGKLwpg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", + "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", "license": "MIT", "dependencies": { - "hermes-estree": "0.24.0" + "hermes-estree": "0.23.1" } }, "node_modules/metro-cache": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.81.0.tgz", - "integrity": "sha512-DyuqySicHXkHUDZFVJmh0ygxBSx6pCKUrTcSgb884oiscV/ROt1Vhye+x+OIHcsodyA10gzZtrVtxIFV4l9I4g==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.12.tgz", + "integrity": "sha512-p5kNHh2KJ0pbQI/H7ZBPCEwkyNcSz7OUkslzsiIWBMPQGFJ/xArMwkV7I+GJcWh+b4m6zbLxE5fk6fqbVK1xGA==", "license": "MIT", "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", - "metro-core": "0.81.0" + "metro-core": "0.80.12" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-cache-key": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.81.0.tgz", - "integrity": "sha512-qX/IwtknP9bQZL78OK9xeSvLM/xlGfrs6SlUGgHvrxtmGTRSsxcyqxR+c+7ch1xr05n62Gin/O44QKg5V70rNQ==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.12.tgz", + "integrity": "sha512-o4BspKnugg/pE45ei0LGHVuBJXwRgruW7oSFAeSZvBKA/sGr0UhOGY3uycOgWInnS3v5yTTfiBA9lHlNRhsvGA==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-config": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.81.0.tgz", - "integrity": "sha512-6CinEaBe3WLpRlKlYXXu8r1UblJhbwD6Gtnoib5U8j6Pjp7XxMG9h/DGMeNp9aGLDu1OieUqiXpFo7O0/rR5Kg==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.12.tgz", + "integrity": "sha512-4rwOWwrhm62LjB12ytiuR5NgK1ZBNr24/He8mqCsC+HXZ+ATbrewLNztzbAZHtFsrxP4D4GLTGgh96pCpYLSAQ==", "license": "MIT", "dependencies": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "flow-enums-runtime": "^0.0.6", "jest-validate": "^29.6.3", - "metro": "0.81.0", - "metro-cache": "0.81.0", - "metro-core": "0.81.0", - "metro-runtime": "0.81.0" + "metro": "0.80.12", + "metro-cache": "0.80.12", + "metro-core": "0.80.12", + "metro-runtime": "0.80.12" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-core": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.81.0.tgz", - "integrity": "sha512-CVkM5YCOAFkNMvJai6KzA0RpztzfEKRX62/PFMOJ9J7K0uq/UkOFLxcgpcncMIrfy0PbfEj811b69tjULUQe1Q==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.12.tgz", + "integrity": "sha512-QqdJ/yAK+IpPs2HU/h5v2pKEdANBagSsc6DRSjnwSyJsCoHlmyJKCaCJ7KhWGx+N4OHxh37hoA8fc2CuZbx0Fw==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.81.0" + "metro-resolver": "0.80.12" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-file-map": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.81.0.tgz", - "integrity": "sha512-zMDI5uYhQCyxbye/AuFx/pAbsz9K+vKL7h1ShUXdN2fz4VUPiyQYRsRqOoVG1DsiCgzd5B6LW0YW77NFpjDQeg==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.12.tgz", + "integrity": "sha512-sYdemWSlk66bWzW2wp79kcPMzwuG32x1ZF3otI0QZTmrnTaaTiGyhE66P1z6KR4n2Eu5QXiABa6EWbAQv0r8bw==", "license": "MIT", "dependencies": { "anymatch": "^3.0.3", @@ -12689,7 +16136,7 @@ "walker": "^1.0.7" }, "engines": { - "node": ">=18.18" + "node": ">=18" }, "optionalDependencies": { "fsevents": "^2.3.2" @@ -12711,62 +16158,61 @@ "license": "MIT" }, "node_modules/metro-minify-terser": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.81.0.tgz", - "integrity": "sha512-U2ramh3W822ZR1nfXgIk+emxsf5eZSg10GbQrT0ZizImK8IZ5BmJY+BHRIkQgHzWFpExOVxC7kWbGL1bZALswA==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.12.tgz", + "integrity": "sha512-muWzUw3y5k+9083ZoX9VaJLWEV2Jcgi+Oan0Mmb/fBNMPqP9xVDuy4pOMn/HOiGndgfh/MK7s4bsjkyLJKMnXQ==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-resolver": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.81.0.tgz", - "integrity": "sha512-Uu2Q+buHhm571cEwpPek8egMbdSTqmwT/5U7ZVNpK6Z2ElQBBCxd7HmFAslKXa7wgpTO2FAn6MqGeERbAtVDUA==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.12.tgz", + "integrity": "sha512-PR24gYRZnYHM3xT9pg6BdbrGbM/Cu1TcyIFBVlAk7qDAuHkUNQ1nMzWumWs+kwSvtd9eZGzHoucGJpTUEeLZAw==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-runtime": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.81.0.tgz", - "integrity": "sha512-6oYB5HOt37RuGz2eV4A6yhcl+PUTwJYLDlY9vhT+aVjbUWI6MdBCf69vc4f5K5Vpt+yOkjy+2LDwLS0ykWFwYw==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.12.tgz", + "integrity": "sha512-LIx7+92p5rpI0i6iB4S4GBvvLxStNt6fF0oPMaUd1Weku7jZdfkCZzmrtDD9CSQ6EPb0T9NUZoyXIxlBa3wOCw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-source-map": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.81.0.tgz", - "integrity": "sha512-TzsVxhH83dyxg4A4+L1nzNO12I7ps5IHLjKGZH3Hrf549eiZivkdjYiq/S5lOB+p2HiQ+Ykcwtmcja95LIC62g==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.12.tgz", + "integrity": "sha512-o+AXmE7hpvM8r8MKsx7TI21/eerYYy2DCDkWfoBkv+jNkl61khvDHlQn0cXZa6lrcNZiZkl9oHSMcwLLIrFmpw==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.3", - "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", - "@babel/types": "^7.25.2", + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-symbolicate": "0.81.0", + "metro-symbolicate": "0.80.12", "nullthrows": "^1.1.1", - "ob1": "0.81.0", + "ob1": "0.80.12", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-source-map/node_modules/source-map": { @@ -12779,14 +16225,14 @@ } }, "node_modules/metro-symbolicate": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.81.0.tgz", - "integrity": "sha512-C/1rWbNTPYp6yzID8IPuQPpVGzJ2rbWYBATxlvQ9dfK5lVNoxcwz77hjcY8ISLsRRR15hyd/zbjCNKPKeNgE1Q==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.12.tgz", + "integrity": "sha512-/dIpNdHksXkGHZXARZpL7doUzHqSNxgQ8+kQGxwpJuHnDhGkENxB5PS2QBaTDdEcmyTMjS53CN1rl9n1gR6fmw==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-source-map": "0.81.0", + "metro-source-map": "0.80.12", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -12796,7 +16242,7 @@ "metro-symbolicate": "src/index.js" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-symbolicate/node_modules/source-map": { @@ -12809,44 +16255,44 @@ } }, "node_modules/metro-transform-plugins": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.81.0.tgz", - "integrity": "sha512-uErLAPBvttGCrmGSCa0dNHlOTk3uJFVEVWa5WDg6tQ79PRmuYRwzUgLhVzn/9/kyr75eUX3QWXN79Jvu4txt6Q==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.12.tgz", + "integrity": "sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA==", "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", - "@babel/generator": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.3", + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.20.0", "flow-enums-runtime": "^0.0.6", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro-transform-worker": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.81.0.tgz", - "integrity": "sha512-HrQ0twiruhKy0yA+9nK5bIe3WQXZcC66PXTvRIos61/EASLAP2DzEmW7IxN/MGsfZegN2UzqL2CG38+mOB45vg==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.12.tgz", + "integrity": "sha512-KAPFN1y3eVqEbKLx1I8WOarHPqDMUa8WelWxaJCNKO/yHCP26zELeqTJvhsQup+8uwB6EYi/sp0b6TGoh6lOEA==", "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", - "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.3", - "@babel/types": "^7.25.2", + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", "flow-enums-runtime": "^0.0.6", - "metro": "0.81.0", - "metro-babel-transformer": "0.81.0", - "metro-cache": "0.81.0", - "metro-cache-key": "0.81.0", - "metro-minify-terser": "0.81.0", - "metro-source-map": "0.81.0", - "metro-transform-plugins": "0.81.0", + "metro": "0.80.12", + "metro-babel-transformer": "0.80.12", + "metro-cache": "0.80.12", + "metro-cache-key": "0.80.12", + "metro-minify-terser": "0.80.12", + "metro-source-map": "0.80.12", + "metro-transform-plugins": "0.80.12", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/metro/node_modules/ci-info": { @@ -12865,18 +16311,18 @@ } }, "node_modules/metro/node_modules/hermes-estree": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.24.0.tgz", - "integrity": "sha512-LyoXLB7IFzeZW0EvAbGZacbxBN7t6KKSDqFJPo3Ydow7wDlrDjXwsdiAHV6XOdvEN9MEuWXsSIFN4tzpyrXIHw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", + "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==", "license": "MIT" }, "node_modules/metro/node_modules/hermes-parser": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.24.0.tgz", - "integrity": "sha512-IJooSvvu2qNRe7oo9Rb04sUT4omtZqZqf9uq9WM25Tb6v3usmvA93UqfnnoWs5V0uYjEl9Al6MNU10MCGKLwpg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", + "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", "license": "MIT", "dependencies": { - "hermes-estree": "0.24.0" + "hermes-estree": "0.23.1" } }, "node_modules/metro/node_modules/ms": { @@ -12953,15 +16399,15 @@ } }, "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "license": "MIT", "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=4.0.0" } }, "node_modules/mime-db": { @@ -13232,6 +16678,15 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "license": "MIT" }, + "node_modules/nocache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", + "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/node-abort-controller": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", @@ -13313,6 +16768,19 @@ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "license": "MIT" }, + "node_modules/node-stream-zip": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", + "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/antelle" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -13323,30 +16791,24 @@ } }, "node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", + "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", "license": "ISC", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "hosted-git-info": "^3.0.2", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" } }, "node_modules/npm-package-arg/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "license": "ISC", "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "semver": "bin/semver" } }, "node_modules/npm-run-path": { @@ -13384,15 +16846,15 @@ "license": "MIT" }, "node_modules/ob1": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.81.0.tgz", - "integrity": "sha512-6Cvrkxt1tqaRdWqTAMcVYEiO5i1xcF9y7t06nFdjFqkfPsEloCf8WwhXdwBpNUkVYSQlSGS7cDgVQR86miBfBQ==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.12.tgz", + "integrity": "sha512-VMArClVT6LkhUGpnuEoBuyjG9rzUyEzg4PDkav6wK1cLhOK02gPCYFxoiB4mqVnrMhDpIzJcrGNAMVi9P+hXrw==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18.18" + "node": ">=18" } }, "node_modules/object-assign": { @@ -13408,7 +16870,6 @@ "version": "1.13.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -13421,7 +16882,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -13431,7 +16891,6 @@ "version": "4.1.7", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -13559,16 +17018,17 @@ } }, "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "license": "MIT", "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13701,6 +17161,15 @@ "node": ">=4" } }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -13710,11 +17179,21 @@ "node": ">=0.10.0" } }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.6", @@ -14365,6 +17844,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "license": "MIT", + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -14401,17 +17890,6 @@ ], "license": "MIT" }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -14446,9 +17924,9 @@ } }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -14489,16 +17967,16 @@ } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.23.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^18.2.0" } }, "node_modules/react-fast-compare": { @@ -14519,23 +17997,6 @@ "react": ">=17.0.0" } }, - "node_modules/react-helmet-async": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.2.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-hook-form": { "version": "7.54.2", "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz", @@ -14559,48 +18020,47 @@ "license": "MIT" }, "node_modules/react-native": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.76.6.tgz", - "integrity": "sha512-AsRi+ud6v6ADH7ZtSOY42kRB4nbM0KtSu450pGO4pDudl4AEK/AF96ai88snb2/VJJSGGa/49QyJVFXxz/qoFg==", + "version": "0.74.2", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.2.tgz", + "integrity": "sha512-EBMBjPPL4/GjHMP4NqsZabT3gI5WU9cSmduABGAGrd8uIcmTZ5F2Ng9k6gFmRm7n8e8CULxDNu98ZpQfBjl7Bw==", "license": "MIT", "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native/assets-registry": "0.76.6", - "@react-native/codegen": "0.76.6", - "@react-native/community-cli-plugin": "0.76.6", - "@react-native/gradle-plugin": "0.76.6", - "@react-native/js-polyfills": "0.76.6", - "@react-native/normalize-colors": "0.76.6", - "@react-native/virtualized-lists": "0.76.6", + "@react-native-community/cli": "13.6.8", + "@react-native-community/cli-platform-android": "13.6.8", + "@react-native-community/cli-platform-ios": "13.6.8", + "@react-native/assets-registry": "0.74.84", + "@react-native/codegen": "0.74.84", + "@react-native/community-cli-plugin": "0.74.84", + "@react-native/gradle-plugin": "0.74.84", + "@react-native/js-polyfills": "0.74.84", + "@react-native/normalize-colors": "0.74.84", + "@react-native/virtualized-lists": "0.74.84", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", - "babel-jest": "^29.7.0", - "babel-plugin-syntax-hermes-parser": "^0.23.1", "base64-js": "^1.5.1", "chalk": "^4.0.0", - "commander": "^12.0.0", "event-target-shim": "^5.0.1", "flow-enums-runtime": "^0.0.6", - "glob": "^7.1.1", "invariant": "^2.2.4", "jest-environment-node": "^29.6.3", "jsc-android": "^250231.0.0", "memoize-one": "^5.0.0", - "metro-runtime": "^0.81.0", - "metro-source-map": "^0.81.0", + "metro-runtime": "^0.80.3", + "metro-source-map": "^0.80.3", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", - "pretty-format": "^29.7.0", + "pretty-format": "^26.5.2", "promise": "^8.3.0", - "react-devtools-core": "^5.3.1", + "react-devtools-core": "^5.0.0", "react-refresh": "^0.14.0", + "react-shallow-renderer": "^16.15.0", "regenerator-runtime": "^0.13.2", "scheduler": "0.24.0-canary-efb381bbf-20230505", - "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", - "ws": "^6.2.3", + "ws": "^6.2.2", "yargs": "^17.6.2" }, "bin": { @@ -14611,7 +18071,7 @@ }, "peerDependencies": { "@types/react": "^18.2.6", - "react": "^18.2.0" + "react": "18.2.0" }, "peerDependenciesMeta": { "@types/react": { @@ -14620,23 +18080,25 @@ } }, "node_modules/react-native-device-info": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-14.0.2.tgz", - "integrity": "sha512-W1oqu4dC4uLKT/Z4uimRP6birJprWjhMP/AwV9hxGSZ5K3wJ/yb34aQ22sd6HmegQHfT2PmkFs3mj+4uXLE1YQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-11.1.0.tgz", + "integrity": "sha512-hzXJSObJdezEz0hF7MAJ3tGeoesuQWenXXt9mrQR9Mjb8kXpZ09rqSsZ/quNpJdZpQ3rYiFa3/0GFG5KNn9PBg==", "license": "MIT", "peerDependencies": { "react-native": "*" } }, "node_modules/react-native-gesture-handler": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.22.1.tgz", - "integrity": "sha512-E0C9D+Ia2UZYevoSV9rTKjhFWEVdR/3l4Z3TUoQrI/wewgzDlmJOrYvGW5aMlPUuQF2vHQOdFfAWhVEqFu4tWw==", + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.16.2.tgz", + "integrity": "sha512-vGFlrDKlmyI+BT+FemqVxmvO7nqxU33cgXVsn6IKAFishvlG3oV2Ds67D5nPkHMea8T+s1IcuMm0bF8ntZtAyg==", "license": "MIT", "dependencies": { "@egjs/hammerjs": "^2.0.17", "hoist-non-react-statics": "^3.3.0", - "invariant": "^2.2.4" + "invariant": "^2.2.4", + "lodash": "^4.17.21", + "prop-types": "^15.7.2" }, "peerDependencies": { "react": "*", @@ -14669,30 +18131,17 @@ "react": "^16.6.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/react-native-is-edge-to-edge": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.1.6.tgz", - "integrity": "sha512-1pHnFTlBahins6UAajXUqeCOHew9l9C2C8tErnpGC3IyLJzvxD+TpYAixnCbrVS52f7+NvMttbiSI290XfwN0w==", - "license": "MIT", - "peerDependencies": { - "react": ">=18.2.0", - "react-native": ">=0.73.0" - } - }, "node_modules/react-native-reanimated": { - "version": "3.16.7", - "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.16.7.tgz", - "integrity": "sha512-qoUUQOwE1pHlmQ9cXTJ2MX9FQ9eHllopCLiWOkDkp6CER95ZWeXhJCP4cSm6AD4jigL5jHcZf/SkWrg8ttZUsw==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.10.1.tgz", + "integrity": "sha512-sfxg6vYphrDc/g4jf/7iJ7NRi+26z2+BszPmvmk0Vnrz6FL7HYljJqTf531F1x6tFmsf+FEAmuCtTUIXFLVo9w==", "license": "MIT", "dependencies": { "@babel/plugin-transform-arrow-functions": "^7.0.0-0", - "@babel/plugin-transform-class-properties": "^7.0.0-0", - "@babel/plugin-transform-classes": "^7.0.0-0", "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", "@babel/plugin-transform-optional-chaining": "^7.0.0-0", "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", "@babel/plugin-transform-template-literals": "^7.0.0-0", - "@babel/plugin-transform-unicode-regex": "^7.0.0-0", "@babel/preset-typescript": "^7.16.7", "convert-source-map": "^2.0.0", "invariant": "^2.2.4" @@ -14724,9 +18173,9 @@ } }, "node_modules/react-native-safe-area-context": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.1.0.tgz", - "integrity": "sha512-Y4vyJX+0HPJUQNVeIJTj2/UOjbSJcB09OEwirAWDrOZ67Lz5p43AmjxSy8nnZft1rMzoh3rcPuonB6jJyHTfCw==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.10.1.tgz", + "integrity": "sha512-w8tCuowDorUkPoWPXmhqosovBr33YsukkwYCDERZFHAxIkx6qBadYxfeoaJ91nCQKjkNzGrK5qhoNOeSIcYSpA==", "license": "MIT", "peerDependencies": { "react": "*", @@ -14734,9 +18183,9 @@ } }, "node_modules/react-native-screens": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.5.0.tgz", - "integrity": "sha512-yBWeN5EHNeew9f0ia9VE7JSlUQzCZEwkb87r7A7/Sg41OJHuRKHNRhmdCOiMBUqwwQi3F+b4NZGywjeM/gWMyg==", + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.31.1.tgz", + "integrity": "sha512-8fRW362pfZ9y4rS8KY5P3DFScrmwo/vu1RrRMMx0PNHbeC9TLq0Kw1ubD83591yz64gLNHFLTVkTJmWeWCXKtQ==", "license": "MIT", "dependencies": { "react-freeze": "^1.0.0", @@ -14789,22 +18238,56 @@ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", "license": "MIT" }, - "node_modules/react-native/node_modules/babel-plugin-syntax-hermes-parser": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.23.1.tgz", - "integrity": "sha512-uNLD0tk2tLUjGFdmCk+u/3FEw2o+BAwW4g+z2QVlxJrzZYOOPADroEcNtTPt5lNiScctaUmnsTkVEnOwZUOLhA==", + "node_modules/react-native/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", "license": "MIT", "dependencies": { - "hermes-parser": "0.23.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" } }, - "node_modules/react-native/node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "node_modules/react-native/node_modules/@react-native/codegen": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.84.tgz", + "integrity": "sha512-0hXlnu9i0o8v+gXKQi+x6T471L85kCDwW4WrJiYAeOheWrQdNNW6rC3g8+LL7HXAf7QcHGU/8/d57iYfdVK2BQ==", "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.0", + "glob": "^7.1.1", + "hermes-parser": "0.19.1", + "invariant": "^2.2.4", + "jscodeshift": "^0.14.0", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1" + }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + } + }, + "node_modules/react-native/node_modules/@react-native/normalize-colors": { + "version": "0.74.84", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.84.tgz", + "integrity": "sha512-Y5W6x8cC5RuakUcTVUFNAIhUZ/tYpuqHZlRBoAuakrTwVuoNHXfQki8lj1KsYU7rW6e3VWgdEx33AfOQpdNp6A==", + "license": "MIT" + }, + "node_modules/react-native/node_modules/@types/yargs": { + "version": "15.0.19", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", + "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" } }, "node_modules/react-native/node_modules/glob": { @@ -14828,6 +18311,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/react-native/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "license": "MIT", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/react-native/node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", @@ -14837,6 +18335,12 @@ "asap": "~2.0.6" } }, + "node_modules/react-native/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, "node_modules/react-native/node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", @@ -14852,18 +18356,6 @@ "loose-envify": "^1.1.0" } }, - "node_modules/react-native/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/react-native/node_modules/ws": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", @@ -14886,7 +18378,6 @@ "version": "16.15.0", "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", - "dev": true, "license": "MIT", "dependencies": { "object-assign": "^4.1.1", @@ -14897,18 +18388,18 @@ } }, "node_modules/react-test-renderer": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.3.1.tgz", - "integrity": "sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz", + "integrity": "sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==", "dev": true, "license": "MIT", "dependencies": { - "react-is": "^18.3.1", + "react-is": "^18.2.0", "react-shallow-renderer": "^16.15.0", - "scheduler": "^0.23.2" + "scheduler": "^0.23.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^18.2.0" } }, "node_modules/readable-stream": { @@ -14972,7 +18463,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -15020,6 +18510,7 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.8.4" } @@ -15028,7 +18519,6 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -15130,6 +18620,12 @@ "node": ">=8.6.0" } }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, "node_modules/requireg": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", @@ -15319,7 +18815,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -15359,7 +18854,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -15500,15 +18994,15 @@ } }, "node_modules/send": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.1.tgz", - "integrity": "sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~2.0.0", + "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", @@ -15538,13 +19032,16 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/send/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "license": "MIT", + "bin": { + "mime": "cli.js" + }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, "node_modules/send/node_modules/on-finished": { @@ -15577,17 +19074,6 @@ "node": ">=0.10.0" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/serve-static": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", @@ -15627,6 +19113,18 @@ "node": ">= 0.8" } }, + "node_modules/serve-static/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/serve-static/node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -15681,11 +19179,11 @@ "node": ">= 0.8" } }, - "node_modules/server-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", - "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==", - "license": "MIT" + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" }, "node_modules/set-cookie-parser": { "version": "2.7.1", @@ -15714,7 +19212,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -15730,7 +19227,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -15814,7 +19310,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -15834,7 +19329,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -15851,7 +19345,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -15870,7 +19363,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -15960,6 +19452,56 @@ "node": ">=8" } }, + "node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/slugify": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", @@ -16311,7 +19853,6 @@ "version": "1.2.10", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -16333,7 +19874,6 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -16352,7 +19892,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -16447,6 +19986,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "license": "MIT" + }, "node_modules/structured-headers": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", @@ -16768,75 +20313,6 @@ "node": ">=10" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", - "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -16847,6 +20323,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", @@ -16862,6 +20339,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -16878,6 +20356,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT" + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -16999,17 +20483,43 @@ "node": ">=12" } }, + "node_modules/traverse": { + "version": "0.6.11", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.11.tgz", + "integrity": "sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==", + "license": "MIT", + "dependencies": { + "gopd": "^1.2.0", + "typedarray.prototype.slice": "^1.0.5", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ts-api-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", - "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18.12" + "node": ">=16" }, "peerDependencies": { - "typescript": ">=4.8.4" + "typescript": ">=4.2.0" } }, "node_modules/ts-interface-checker": { @@ -17141,7 +20651,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -17156,7 +20665,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -17176,7 +20684,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -17198,7 +20705,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -17215,10 +20721,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedarray.prototype.slice": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.5.tgz", + "integrity": "sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "math-intrinsics": "^1.1.0", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-offset": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -17259,7 +20787,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -17423,6 +20950,12 @@ "punycode": "^2.1.0" } }, + "node_modules/url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==", + "license": "MIT" + }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -17481,16 +21014,16 @@ } }, "node_modules/uuid": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", - "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], "license": "MIT", "bin": { - "uuid": "dist/esm/bin/uuid" + "uuid": "dist/bin/uuid" } }, "node_modules/v8-to-istanbul": { @@ -17508,13 +21041,18 @@ "node": ">=10.12.0" } }, + "node_modules/valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" + }, "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "dependencies": { + "builtins": "^1.0.3" } }, "node_modules/vary": { @@ -17560,21 +21098,6 @@ "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==", "license": "MIT" }, - "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -17615,111 +21138,6 @@ "node": ">=12" } }, - "node_modules/webpack": { - "version": "5.97.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", - "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -17805,7 +21223,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, "license": "MIT", "dependencies": { "is-bigint": "^1.1.0", @@ -17825,7 +21242,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -17853,7 +21269,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, "license": "MIT", "dependencies": { "is-map": "^2.0.3", @@ -17868,6 +21283,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, "node_modules/which-typed-array": { "version": "1.1.18", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", @@ -17889,9 +21310,9 @@ } }, "node_modules/wonka": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.4.tgz", - "integrity": "sha512-CjpbqNtBGNAeyNS/9W6q3kSkKE52+FjIj7AkFlLr11s/VWGUu6a2CdYSdGxocIhIVjaW/zchesBQUKPVU69Cqg==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", + "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==", "license": "MIT" }, "node_modules/word-wrap": { @@ -18141,6 +21562,18 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "license": "ISC" }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -18211,6 +21644,27 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-2.1.0.tgz", + "integrity": "sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.18.0" + } } } } diff --git a/src/react-native-app/package.json b/src/react-native-app/package.json index 8911527b0e..0309320c65 100644 --- a/src/react-native-app/package.json +++ b/src/react-native-app/package.json @@ -15,62 +15,62 @@ "preset": "jest-expo" }, "dependencies": { - "@expo/metro-config": "^0.19.9", + "@expo/metro-config": "^0.19.4", "@expo/vector-icons": "^14.0.0", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/core": "^1.30.1", - "@opentelemetry/exporter-trace-otlp-http": "^0.57.1", - "@opentelemetry/instrumentation": "^0.57.1", - "@opentelemetry/instrumentation-fetch": "^0.57.1", - "@opentelemetry/instrumentation-xml-http-request": "^0.57.1", - "@opentelemetry/resources": "^1.30.1", - "@opentelemetry/sdk-trace-base": "^1.30.1", - "@opentelemetry/sdk-trace-web": "^1.30.1", + "@opentelemetry/core": "^1.28.0", + "@opentelemetry/exporter-trace-otlp-http": "^0.52.0", + "@opentelemetry/instrumentation": "^0.55.0", + "@opentelemetry/instrumentation-fetch": "^0.55.0", + "@opentelemetry/instrumentation-xml-http-request": "^0.55.0", + "@opentelemetry/resources": "^1.28.0", + "@opentelemetry/sdk-trace-base": "^1.28.0", + "@opentelemetry/sdk-trace-web": "^1.28.0", "@opentelemetry/semantic-conventions": "^1.28.0", "@react-native-async-storage/async-storage": "^2.0.0", - "@react-navigation/native": "^7.0.14", - "@tanstack/react-query": "5.64.1", + "@react-navigation/native": "^6.0.2", + "@tanstack/react-query": "4.36.1", "@types/react-native-get-random-values": "^1.8.2", "@types/uuid": "^10.0.0", - "expo": "~52.0.25", - "expo-constants": "~17.0.4", - "expo-font": "~13.0.3", - "expo-linking": "~7.0.4", - "expo-router": "~4.0.16", - "expo-splash-screen": "~0.29.20", - "expo-status-bar": "~2.0.1", - "expo-system-ui": "~4.0.7", - "expo-web-browser": "~14.0.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-hook-form": "^7.54.2", - "react-native": "0.76.6", - "react-native-device-info": "^14.0.2", - "react-native-gesture-handler": "~2.22.0", + "expo": "~51.0.14", + "expo-constants": "~16.0.2", + "expo-font": "~12.0.7", + "expo-linking": "~6.3.1", + "expo-router": "~3.5.16", + "expo-splash-screen": "~0.27.5", + "expo-status-bar": "~1.12.1", + "expo-system-ui": "~3.0.6", + "expo-web-browser": "~13.0.3", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-hook-form": "^7.53.2", + "react-native": "0.74.2", + "react-native-device-info": "^11.1.0", + "react-native-gesture-handler": "~2.16.1", "react-native-get-random-values": "^1.11.0", - "react-native-reanimated": "~3.16.7", + "react-native-reanimated": "~3.10.1", "react-native-root-toast": "^3.6.0", - "react-native-safe-area-context": "5.1.0", - "react-native-screens": "4.5.0", + "react-native-safe-area-context": "4.10.1", + "react-native-screens": "3.31.1", "react-native-toast-message": "^2.2.1", "react-native-web": "~0.19.10", - "uuid": "^11.0.5" + "uuid": "^10.0.0" }, "devDependencies": { "@babel/core": "^7.20.0", "@types/jest": "^29.5.12", - "@types/react": "^18.2.0", - "@types/react-test-renderer": "^18.2.0", - "eslint": "^9.18.0", - "eslint-config-expo": "~8.0.1", - "eslint-config-prettier": "^10.0.1", - "eslint-plugin-prettier": "^5.2.3", + "@types/react": "~18.2.45", + "@types/react-test-renderer": "^18.0.7", + "eslint": "^8.57.0", + "eslint-config-expo": "~7.1.2", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.2.1", - "jest-expo": "~52.0.3", - "prettier": "^3.4.2", - "react-test-renderer": "^18.2.0", + "jest-expo": "~51.0.1", + "prettier": "^3.3.3", + "react-test-renderer": "18.2.0", "ts-proto": "1.181.1", - "typescript": "~5.7.3" + "typescript": "~5.3.3" }, "private": true } From ab225513052fb9ec6fe32bc229f61858c8bef054 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2025 11:17:54 +0100 Subject: [PATCH 093/178] build(deps): bump the npm-development-dependencies group across 3 directories with 11 updates (#1976) * build(deps): bump the npm-development-dependencies group across 3 directories with 11 updates Bumps the npm-development-dependencies group with 1 update in the /src/frontend directory: [cypress](https://github.com/cypress-io/cypress). Bumps the npm-development-dependencies group with 1 update in the /src/payment directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Bumps the npm-development-dependencies group with 9 updates in the /src/react-native-app directory: | Package | From | To | | --- | --- | --- | | [eslint](https://github.com/eslint/eslint) | `8.57.1` | `9.19.0` | | [ts-proto](https://github.com/stephenh/ts-proto) | `1.181.1` | `2.6.1` | | [typescript](https://github.com/microsoft/TypeScript) | `5.3.3` | `5.7.3` | | [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) | `7.26.0` | `7.26.7` | | [eslint-config-expo](https://github.com/expo/expo/tree/HEAD/packages/eslint-config-expo) | `7.1.2` | `8.0.1` | | [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) | `9.1.0` | `10.0.1` | | [jest-expo](https://github.com/expo/expo/tree/HEAD/packages/jest-expo) | `51.0.4` | `52.0.3` | | [react-test-renderer](https://github.com/facebook/react/tree/HEAD/packages/react-test-renderer) | `18.2.0` | `19.0.0` | | [@types/react-test-renderer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-test-renderer) | `18.3.1` | `19.0.0` | Updates `cypress` from 14.0.0 to 14.0.1 - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v14.0.0...v14.0.1) Updates `@types/node` from 22.10.5 to 22.12.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 8.57.1 to 9.19.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.57.1...v9.19.0) Updates `ts-proto` from 1.181.1 to 2.6.1 - [Release notes](https://github.com/stephenh/ts-proto/releases) - [Changelog](https://github.com/stephenh/ts-proto/blob/main/CHANGELOG.md) - [Commits](https://github.com/stephenh/ts-proto/compare/v1.181.1...v2.6.1) Updates `typescript` from 5.3.3 to 5.7.3 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.3.3...v5.7.3) Updates `@babel/core` from 7.26.0 to 7.26.7 - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.26.7/packages/babel-core) Updates `eslint-config-expo` from 7.1.2 to 8.0.1 - [Changelog](https://github.com/expo/expo/blob/main/packages/eslint-config-expo/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/eslint-config-expo) Updates `eslint-config-prettier` from 9.1.0 to 10.0.1 - [Release notes](https://github.com/prettier/eslint-config-prettier/releases) - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v9.1.0...v10.0.1) Updates `jest-expo` from 51.0.4 to 52.0.3 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/jest-expo) Updates `react-test-renderer` from 18.2.0 to 19.0.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react-test-renderer) Updates `@types/react-test-renderer` from 18.3.1 to 19.0.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-test-renderer) --- updated-dependencies: - dependency-name: cypress dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: ts-proto dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint-config-expo dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: jest-expo dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: react-test-renderer dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies - dependency-name: "@types/react-test-renderer" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] * Remove react-native bumps from PR --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa --- src/frontend/package-lock.json | 8 ++++---- src/frontend/package.json | 2 +- src/payment/package-lock.json | 7 ++++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 7e6bb6e075..11ee50b7cd 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -52,7 +52,7 @@ "@types/uuid": "10.0.0", "@typescript-eslint/eslint-plugin": "8.22.0", "@typescript-eslint/parser": "8.22.0", - "cypress": "14.0.0", + "cypress": "14.0.1", "eslint": "9.19.0", "eslint-config-next": "15.1.6", "eslint-plugin-react": "7.37.4", @@ -4229,9 +4229,9 @@ "license": "BSD-2-Clause" }, "node_modules/cypress": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.0.0.tgz", - "integrity": "sha512-kEGqQr23so5IpKeg/dp6GVi7RlHx1NmW66o2a2Q4wk9gRaAblLZQSiZJuDI8UMC4LlG5OJ7Q6joAiqTrfRNbTw==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.0.1.tgz", + "integrity": "sha512-gBAvKZE3f6eBaW1v8OtrwAFP90rjNZjjOO40M2KvOvmwVXk96Ps5Yjyck1EzGkXmNCaC/8kXFOY/1KD/wsaWpQ==", "dev": true, "hasInstallScript": true, "license": "MIT", diff --git a/src/frontend/package.json b/src/frontend/package.json index bc7647a3d1..845a11ebed 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -55,7 +55,7 @@ "@types/uuid": "10.0.0", "@typescript-eslint/eslint-plugin": "8.22.0", "@typescript-eslint/parser": "8.22.0", - "cypress": "14.0.0", + "cypress": "14.0.1", "eslint": "9.19.0", "eslint-config-next": "15.1.6", "eslint-plugin-react": "7.37.4", diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index 0c8da20d69..81247e732a 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -1505,9 +1505,10 @@ } }, "node_modules/@types/node": { - "version": "22.10.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", - "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", + "version": "22.12.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", + "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", + "license": "MIT", "dependencies": { "undici-types": "~6.20.0" } From 533b2069f6c6eac35988c7965d683af3e88dbd8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2025 12:02:53 +0100 Subject: [PATCH 094/178] build(deps): update php-di/php-di requirement (#1972) Updates the requirements on [php-di/php-di](https://github.com/PHP-DI/PHP-DI) to permit the latest version. Updates `php-di/php-di` to 7.0.8 - [Release notes](https://github.com/PHP-DI/PHP-DI/releases) - [Commits](https://github.com/PHP-DI/PHP-DI/compare/7.0.7...7.0.8) --- updated-dependencies: - dependency-name: php-di/php-di dependency-type: direct:production dependency-group: composer-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/quote/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/quote/composer.json b/src/quote/composer.json index 5487c302c3..36161781b0 100644 --- a/src/quote/composer.json +++ b/src/quote/composer.json @@ -14,7 +14,7 @@ "open-telemetry/detector-container": "1.0.0", "open-telemetry/opentelemetry-logger-monolog": "1.0.0", "guzzlehttp/guzzle": "7.9.2", - "php-di/php-di": "7.0.7", + "php-di/php-di": "7.0.8", "php-di/slim-bridge": "3.4.1", "php-http/guzzle7-adapter": "1.1.0", "react/http": "v1.11.0", From 84304d3404802def0a3dabe3eee23d06c597177d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2025 12:33:22 +0100 Subject: [PATCH 095/178] build(deps): bump the npm-production-dependencies group across 4 directories with 35 updates (#1978) * build(deps): bump the npm-production-dependencies group across 4 directories with 35 updates Bumps the npm-production-dependencies group with 3 updates in the /src/flagd-ui directory: [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss), [@vercel/otel](https://github.com/vercel/otel) and [next](https://github.com/vercel/next.js). Bumps the npm-production-dependencies group with 7 updates in the /src/frontend directory: | Package | From | To | | --- | --- | --- | | [next](https://github.com/vercel/next.js) | `15.1.4` | `15.1.6` | | [@opentelemetry/auto-instrumentations-node](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.55.2` | `0.56.0` | | [@opentelemetry/resource-detector-alibaba-cloud](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.29.7` | `0.30.0` | | [@opentelemetry/resource-detector-aws](https://github.com/open-telemetry/opentelemetry-js-contrib) | `1.10.0` | `1.11.0` | | [@opentelemetry/resource-detector-container](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.5.3` | `0.6.0` | | [@opentelemetry/resource-detector-gcp](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.32.0` | `0.33.0` | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.64.1` | `5.65.1` | Bumps the npm-production-dependencies group with 5 updates in the /src/payment directory: | Package | From | To | | --- | --- | --- | | [@opentelemetry/auto-instrumentations-node](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.55.2` | `0.56.0` | | [@opentelemetry/resource-detector-alibaba-cloud](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.29.7` | `0.30.0` | | [@opentelemetry/resource-detector-aws](https://github.com/open-telemetry/opentelemetry-js-contrib) | `1.10.0` | `1.11.0` | | [@opentelemetry/resource-detector-container](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.5.3` | `0.6.0` | | [@opentelemetry/resource-detector-gcp](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.32.0` | `0.33.0` | Bumps the npm-production-dependencies group with 25 updates in the /src/react-native-app directory: | Package | From | To | | --- | --- | --- | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `18.2.0` | `19.0.0` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.2.79` | `19.0.8` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `18.2.0` | `19.0.0` | | [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.52.1` | `0.57.1` | | [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js) | `0.55.0` | `0.57.1` | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `4.36.1` | `5.65.1` | | [uuid](https://github.com/uuidjs/uuid) | `10.0.0` | `11.0.5` | | [@opentelemetry/instrumentation-fetch](https://github.com/open-telemetry/opentelemetry-js) | `0.55.0` | `0.57.1` | | [@opentelemetry/instrumentation-xml-http-request](https://github.com/open-telemetry/opentelemetry-js) | `0.55.0` | `0.57.1` | | [@react-navigation/native](https://github.com/react-navigation/react-navigation/tree/HEAD/packages/native) | `6.1.18` | `7.0.14` | | [expo](https://github.com/expo/expo/tree/HEAD/packages/expo) | `51.0.39` | `52.0.28` | | [expo-constants](https://github.com/expo/expo/tree/HEAD/packages/expo-constants) | `16.0.2` | `17.0.5` | | [expo-font](https://github.com/expo/expo/tree/HEAD/packages/expo-font) | `12.0.10` | `13.0.3` | | [expo-linking](https://github.com/expo/expo/tree/HEAD/packages/expo-linking) | `6.3.1` | `7.0.5` | | [expo-router](https://github.com/expo/expo/tree/HEAD/packages/expo-router) | `3.5.24` | `4.0.17` | | [expo-splash-screen](https://github.com/expo/expo/tree/HEAD/packages/expo-splash-screen) | `0.27.7` | `0.29.21` | | [expo-status-bar](https://github.com/expo/expo/tree/HEAD/packages/expo-status-bar) | `1.12.1` | `2.0.1` | | [expo-system-ui](https://github.com/expo/expo/tree/HEAD/packages/expo-system-ui) | `3.0.7` | `4.0.7` | | [expo-web-browser](https://github.com/expo/expo/tree/HEAD/packages/expo-web-browser) | `13.0.3` | `14.0.2` | | [react-native](https://github.com/facebook/react-native/tree/HEAD/packages/react-native) | `0.74.2` | `0.77.0` | | [react-native-device-info](https://github.com/react-native-device-info/react-native-device-info) | `11.1.0` | `14.0.2` | | [react-native-gesture-handler](https://github.com/software-mansion/react-native-gesture-handler) | `2.16.2` | `2.22.1` | | [react-native-reanimated](https://github.com/software-mansion/react-native-reanimated/tree/HEAD/packages/react-native-reanimated) | `3.10.1` | `3.16.7` | | [react-native-safe-area-context](https://github.com/th3rdwave/react-native-safe-area-context) | `4.10.1` | `5.1.0` | | [react-native-screens](https://github.com/software-mansion/react-native-screens) | `3.31.1` | `4.5.0` | Updates `@tailwindcss/postcss` from 4.0.0 to 4.0.1 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.0.1/packages/@tailwindcss-postcss) Updates `@vercel/otel` from 1.10.0 to 1.10.1 - [Release notes](https://github.com/vercel/otel/releases) - [Commits](https://github.com/vercel/otel/compare/@vercel/otel@1.10.0...@vercel/otel@1.10.1) Updates `next` from 15.1.4 to 15.1.6 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.1.4...v15.1.6) Updates `next` from 15.1.4 to 15.1.6 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.1.4...v15.1.6) Updates `@opentelemetry/auto-instrumentations-node` from 0.55.2 to 0.56.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/auto-instrumentations-node-v0.55.2...auto-instrumentations-node-v0.56.0) Updates `@opentelemetry/resource-detector-alibaba-cloud` from 0.29.7 to 0.30.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-gcp-v0.29.7...host-metrics-v0.30.0) Updates `@opentelemetry/resource-detector-aws` from 1.10.0 to 1.11.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-aws-v1.10.0...resource-detector-aws-v1.11.0) Updates `@opentelemetry/resource-detector-container` from 0.5.3 to 0.6.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/v0.6.0/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-tedious-v0.5.3...v0.6.0) Updates `@opentelemetry/resource-detector-gcp` from 0.32.0 to 0.33.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/host-metrics-v0.32.0...host-metrics-v0.33.0) Updates `@tanstack/react-query` from 5.64.1 to 5.65.1 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.65.1/packages/react-query) Updates `@opentelemetry/semantic-conventions` from 1.27.0 to 1.28.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.27.0...v1.28.0) Updates `@opentelemetry/auto-instrumentations-node` from 0.55.2 to 0.56.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/auto-instrumentations-node-v0.55.2...auto-instrumentations-node-v0.56.0) Updates `@opentelemetry/resource-detector-alibaba-cloud` from 0.29.7 to 0.30.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-gcp-v0.29.7...host-metrics-v0.30.0) Updates `@opentelemetry/resource-detector-aws` from 1.10.0 to 1.11.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-aws-v1.10.0...resource-detector-aws-v1.11.0) Updates `@opentelemetry/resource-detector-container` from 0.5.3 to 0.6.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/v0.6.0/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-tedious-v0.5.3...v0.6.0) Updates `@opentelemetry/resource-detector-gcp` from 0.32.0 to 0.33.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/host-metrics-v0.32.0...host-metrics-v0.33.0) Updates `@opentelemetry/semantic-conventions` from 1.27.0 to 1.28.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.27.0...v1.28.0) Updates `react` from 18.2.0 to 19.0.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react) Updates `@types/react` from 18.2.79 to 19.0.8 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 18.2.0 to 19.0.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react-dom) Updates `@opentelemetry/exporter-trace-otlp-http` from 0.52.1 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.52.1...experimental/v0.57.1) Updates `@opentelemetry/instrumentation` from 0.55.0 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.55.0...experimental/v0.57.1) Updates `@opentelemetry/sdk-metrics` from 1.25.1 to 1.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/v1.30.1/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v1.25.1...v1.30.1) Updates `@tanstack/react-query` from 4.36.1 to 5.65.1 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.65.1/packages/react-query) Updates `uuid` from 10.0.0 to 11.0.5 - [Release notes](https://github.com/uuidjs/uuid/releases) - [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md) - [Commits](https://github.com/uuidjs/uuid/compare/v10.0.0...v11.0.5) Updates `@opentelemetry/instrumentation-fetch` from 0.55.0 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.55.0...experimental/v0.57.1) Updates `@opentelemetry/instrumentation-xml-http-request` from 0.55.0 to 0.57.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.55.0...experimental/v0.57.1) Updates `@react-navigation/native` from 6.1.18 to 7.0.14 - [Release notes](https://github.com/react-navigation/react-navigation/releases) - [Changelog](https://github.com/react-navigation/react-navigation/blob/main/packages/native/CHANGELOG.md) - [Commits](https://github.com/react-navigation/react-navigation/commits/@react-navigation/native@7.0.14/packages/native) Updates `expo` from 51.0.39 to 52.0.28 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo) Updates `expo-constants` from 16.0.2 to 17.0.5 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-constants/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-constants) Updates `expo-font` from 12.0.10 to 13.0.3 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-font/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-font) Updates `expo-linking` from 6.3.1 to 7.0.5 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-linking/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-linking) Updates `expo-router` from 3.5.24 to 4.0.17 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-router) Updates `expo-splash-screen` from 0.27.7 to 0.29.21 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-splash-screen) Updates `expo-status-bar` from 1.12.1 to 2.0.1 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-status-bar/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-status-bar) Updates `expo-system-ui` from 3.0.7 to 4.0.7 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-system-ui/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-system-ui) Updates `expo-web-browser` from 13.0.3 to 14.0.2 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-web-browser/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-web-browser) Updates `react-native` from 0.74.2 to 0.77.0 - [Release notes](https://github.com/facebook/react-native/releases) - [Changelog](https://github.com/facebook/react-native/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react-native/commits/v0.77.0/packages/react-native) Updates `react-native-device-info` from 11.1.0 to 14.0.2 - [Release notes](https://github.com/react-native-device-info/react-native-device-info/releases) - [Changelog](https://github.com/react-native-device-info/react-native-device-info/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-native-device-info/react-native-device-info/compare/v11.1.0...v14.0.2) Updates `react-native-gesture-handler` from 2.16.2 to 2.22.1 - [Release notes](https://github.com/software-mansion/react-native-gesture-handler/releases) - [Commits](https://github.com/software-mansion/react-native-gesture-handler/compare/2.16.2...2.22.1) Updates `react-native-reanimated` from 3.10.1 to 3.16.7 - [Release notes](https://github.com/software-mansion/react-native-reanimated/releases) - [Commits](https://github.com/software-mansion/react-native-reanimated/commits/3.16.7/packages/react-native-reanimated) Updates `react-native-safe-area-context` from 4.10.1 to 5.1.0 - [Release notes](https://github.com/th3rdwave/react-native-safe-area-context/releases) - [Commits](https://github.com/th3rdwave/react-native-safe-area-context/compare/v4.10.1...v5.1.0) Updates `react-native-screens` from 3.31.1 to 4.5.0 - [Release notes](https://github.com/software-mansion/react-native-screens/releases) - [Commits](https://github.com/software-mansion/react-native-screens/compare/3.31.1...4.5.0) --- updated-dependencies: - dependency-name: "@tailwindcss/postcss" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@vercel/otel" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/auto-instrumentations-node" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-alibaba-cloud" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-aws" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-container" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-gcp" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/semantic-conventions" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/auto-instrumentations-node" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-alibaba-cloud" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-aws" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-container" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-gcp" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/semantic-conventions" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: react dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react-dom dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-trace-otlp-http" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-metrics" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: uuid dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation-fetch" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation-xml-http-request" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@react-navigation/native" dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-constants dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-font dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-linking dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-router dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-splash-screen dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: expo-status-bar dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-system-ui dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: expo-web-browser dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react-native dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: react-native-device-info dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react-native-gesture-handler dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: react-native-reanimated dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: react-native-safe-area-context dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies - dependency-name: react-native-screens dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] * Revert react-native bump --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa --- src/flagd-ui/package-lock.json | 220 +++++++++++++++++---------------- src/flagd-ui/package.json | 6 +- src/frontend/package-lock.json | 191 ++++++++++++++-------------- src/frontend/package.json | 14 +-- src/payment/package-lock.json | 133 +++++++++++--------- src/payment/package.json | 10 +- 6 files changed, 295 insertions(+), 279 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 7c65d38708..31f7e6ac7f 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -8,10 +8,10 @@ "name": "flagd-ui", "version": "0.1.0", "dependencies": { - "@tailwindcss/postcss": "^4.0.0", - "@vercel/otel": "^1.10.0", + "@tailwindcss/postcss": "^4.0.1", + "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", - "next": "15.1.4", + "next": "15.1.6", "react": "^19", "react-dom": "^19" }, @@ -584,9 +584,10 @@ } }, "node_modules/@next/env": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.4.tgz", - "integrity": "sha512-2fZ5YZjedi5AGaeoaC0B20zGntEHRhi2SdWcu61i48BllODcAmmtj8n7YarSPt4DaTsJaBFdxQAVEVzgmx2Zpw==" + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.6.tgz", + "integrity": "sha512-d9AFQVPEYNr+aqokIiPLNK/MTyt3DWa/dpKveiAaVccUadFbhFEvY6FXYX2LJO2Hv7PHnLBu2oWwB4uBuHjr/w==", + "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { "version": "15.1.6", @@ -629,12 +630,13 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.4.tgz", - "integrity": "sha512-wBEMBs+np+R5ozN1F8Y8d/Dycns2COhRnkxRc+rvnbXke5uZBHkUGFgWxfTXn5rx7OLijuUhyfB+gC/ap58dDw==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.6.tgz", + "integrity": "sha512-u7lg4Mpl9qWpKgy6NzEkz/w0/keEHtOybmIl0ykgItBxEM5mYotS5PmqTpo+Rhg8FiOiWgwr8USxmKQkqLBCrw==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -644,12 +646,13 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.4.tgz", - "integrity": "sha512-7sgf5rM7Z81V9w48F02Zz6DgEJulavC0jadab4ZsJ+K2sxMNK0/BtF8J8J3CxnsJN3DGcIdC260wEKssKTukUw==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.6.tgz", + "integrity": "sha512-x1jGpbHbZoZ69nRuogGL2MYPLqohlhnT9OCU6E6QFewwup+z+M6r8oU47BTeJcWsF2sdBahp5cKiAcDbwwK/lg==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -659,12 +662,13 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.4.tgz", - "integrity": "sha512-JaZlIMNaJenfd55kjaLWMfok+vWBlcRxqnRoZrhFQrhM1uAehP3R0+Aoe+bZOogqlZvAz53nY/k3ZyuKDtT2zQ==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.6.tgz", + "integrity": "sha512-jar9sFw0XewXsBzPf9runGzoivajeWJUc/JkfbLTC4it9EhU8v7tCRLH7l5Y1ReTMN6zKJO0kKAGqDk8YSO2bg==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -674,12 +678,13 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.4.tgz", - "integrity": "sha512-7EBBjNoyTO2ipMDgCiORpwwOf5tIueFntKjcN3NK+GAQD7OzFJe84p7a2eQUeWdpzZvhVXuAtIen8QcH71ZCOQ==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.6.tgz", + "integrity": "sha512-+n3u//bfsrIaZch4cgOJ3tXCTbSxz0s6brJtU3SzLOvkJlPQMJ+eHVRi6qM2kKKKLuMY+tcau8XD9CJ1OjeSQQ==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -689,12 +694,13 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.4.tgz", - "integrity": "sha512-9TGEgOycqZFuADyFqwmK/9g6S0FYZ3tphR4ebcmCwhL8Y12FW8pIBKJvSwV+UBjMkokstGNH+9F8F031JZKpHw==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.6.tgz", + "integrity": "sha512-SpuDEXixM3PycniL4iVCLyUyvcl6Lt0mtv3am08sucskpG0tYkW1KlRhTgj4LI5ehyxriVVcfdoxuuP8csi3kQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -704,12 +710,13 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.4.tgz", - "integrity": "sha512-0578bLRVDJOh+LdIoKvgNDz77+Bd85c5JrFgnlbI1SM3WmEQvsjxTA8ATu9Z9FCiIS/AliVAW2DV/BDwpXbtiQ==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.6.tgz", + "integrity": "sha512-L4druWmdFSZIIRhF+G60API5sFB7suTbDRhYWSjiw0RbE+15igQvE2g2+S973pMGvwN3guw7cJUjA/TmbPWTHQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -719,12 +726,13 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.4.tgz", - "integrity": "sha512-JgFCiV4libQavwII+kncMCl30st0JVxpPOtzWcAI2jtum4HjYaclobKhj+JsRu5tFqMtA5CJIa0MvYyuu9xjjQ==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.6.tgz", + "integrity": "sha512-s8w6EeqNmi6gdvM19tqKKWbCyOBvXFbndkGHl+c9YrzsLARRdCHsD9S1fMj8gsXm9v8vhC8s3N8rjuC/XrtkEg==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -734,12 +742,13 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.4.tgz", - "integrity": "sha512-xxsJy9wzq7FR5SqPCUqdgSXiNXrMuidgckBa8nH9HtjjxsilgcN6VgXF6tZ3uEWuVEadotQJI8/9EQ6guTC4Yw==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.6.tgz", + "integrity": "sha512-6xomMuu54FAFxttYr5PJbEfu96godcxBTRk1OhAvJq0/EnmFU/Ybiax30Snis4vdWZ9LGpf7Roy5fSs7v/5ROQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -1047,42 +1056,42 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.0.tgz", - "integrity": "sha512-tfG2uBvo6j6kDIPmntxwXggCOZAt7SkpAXJ6pTIYirNdk5FBqh/CZZ9BZPpgcl/tNFLs6zc4yghM76sqiELG9g==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.1.tgz", + "integrity": "sha512-lc+ly6PKHqgCVl7eO8D2JlV96Lks5bmL6pdtM6UasyUHLU2zmrOqU6jfgln120IVnCh3VC8GG/ca24xVTtSokw==", "license": "MIT", "dependencies": { "enhanced-resolve": "^5.18.0", "jiti": "^2.4.2", - "tailwindcss": "4.0.0" + "tailwindcss": "4.0.1" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.0.tgz", - "integrity": "sha512-W3FjpJgy4VV1JiL7iBYDf2n/WkeDg1Il+0Q7eWnqPyvkPPCo/Mbwc5BiaT7dfBNV6tQKAhVE34rU5xl8pSl50w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.1.tgz", + "integrity": "sha512-3z1SpWoDeaA6K6jd92CRrGyDghOcRILEgyWVHRhaUm/tcpiazwJpU9BSG0xB7GGGnl9capojaC+zme/nKsZd/w==", "license": "MIT", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.0.0", - "@tailwindcss/oxide-darwin-arm64": "4.0.0", - "@tailwindcss/oxide-darwin-x64": "4.0.0", - "@tailwindcss/oxide-freebsd-x64": "4.0.0", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.0", - "@tailwindcss/oxide-linux-arm64-gnu": "4.0.0", - "@tailwindcss/oxide-linux-arm64-musl": "4.0.0", - "@tailwindcss/oxide-linux-x64-gnu": "4.0.0", - "@tailwindcss/oxide-linux-x64-musl": "4.0.0", - "@tailwindcss/oxide-win32-arm64-msvc": "4.0.0", - "@tailwindcss/oxide-win32-x64-msvc": "4.0.0" + "@tailwindcss/oxide-android-arm64": "4.0.1", + "@tailwindcss/oxide-darwin-arm64": "4.0.1", + "@tailwindcss/oxide-darwin-x64": "4.0.1", + "@tailwindcss/oxide-freebsd-x64": "4.0.1", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.1", + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.1", + "@tailwindcss/oxide-linux-arm64-musl": "4.0.1", + "@tailwindcss/oxide-linux-x64-gnu": "4.0.1", + "@tailwindcss/oxide-linux-x64-musl": "4.0.1", + "@tailwindcss/oxide-win32-arm64-msvc": "4.0.1", + "@tailwindcss/oxide-win32-x64-msvc": "4.0.1" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.0.tgz", - "integrity": "sha512-EAhjU0+FIdyGPR+7MbBWubLLPtmOu+p7c2egTTFBRk/n//zYjNvVK0WhcBK5Y7oUB5mo4EjA2mCbY7dcEMWSRw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.1.tgz", + "integrity": "sha512-eP/rI9WaAElpeiiHDqGtDqga9iDsOClXxIqdHayHsw93F24F03b60CwgGhrGF9Io/EuWIpz3TMRhPVOLhoXivw==", "cpu": [ "arm64" ], @@ -1096,9 +1105,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.0.tgz", - "integrity": "sha512-hdz4xnSWS11cIp+7ye+3dGHqs0X33z+BXXTtgPOguDWVa+TdXUzwxonklSzf5wlJFuot3dv5eWzhlNai0oYYQg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.1.tgz", + "integrity": "sha512-jZVUo0kNd1IjxdCYwg4dwegDNsq7PoUx4LM814RmgY3gfJ63Y6GlpJXHOpd5FLv1igpeZox5LzRk2oz8MQoJwQ==", "cpu": [ "arm64" ], @@ -1112,9 +1121,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.0.tgz", - "integrity": "sha512-+dOUUaXTkPKKhtUI9QtVaYg+MpmLh2CN0dHohiYXaBirEyPMkjaT0zbRgzQlNnQWjCVVXPQluIEb0OMEjSTH+Q==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.1.tgz", + "integrity": "sha512-E31wHiIf4LB0aKRohrS4U6XfFSACCL9ifUFfPQ16FhcBIL4wU5rcBidvWvT9TQFGPkpE69n5dyXUcqiMrnF/Ig==", "cpu": [ "x64" ], @@ -1128,9 +1137,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.0.tgz", - "integrity": "sha512-CJhGDhxnrmu4SwyC62fA+wP24MhA/TZlIhRHqg1kRuIHoGoVR2uSSm1qxTxU37tSSZj8Up0q6jsBJCAP4k7rgQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.1.tgz", + "integrity": "sha512-8/3ZKLMYqgAsBzTeczOKWtT4geF02g9S7cntY5gvqQZ4E0ImX724cHcZJi9k6fkE6aLbvwxxHxaShFvRxblwKQ==", "cpu": [ "x64" ], @@ -1144,9 +1153,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.0.tgz", - "integrity": "sha512-Wy7Av0xzXfY2ujZBcYy4+7GQm25/J1iHvlQU2CfwdDCuPWfIjYzR6kggz+uVdSJyKV2s64znchBxRE8kV4uXSA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.1.tgz", + "integrity": "sha512-EYjbh225klQfWzy6LeIAfdjHCK+p71yLV/GjdPNW47Bfkkq05fTzIhHhCgshUvNp78EIA33iQU+ktWpW06NgHw==", "cpu": [ "arm" ], @@ -1160,9 +1169,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.0.tgz", - "integrity": "sha512-srwBo2l6pvM0swBntc1ucuhGsfFOLkqPRFQ3dWARRTfSkL1U9nAsob2MKc/n47Eva/W9pZZgMOuf7rDw8pK1Ew==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.1.tgz", + "integrity": "sha512-PrX2SwIqWNP5cYeSyQfrhbk4ffOM338T6CrEwIAGvLPoUZiklt19yknlsBme6bReSw7TSAMy+8KFdLLi5fcWNQ==", "cpu": [ "arm64" ], @@ -1176,9 +1185,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.0.tgz", - "integrity": "sha512-abhusswkduYWuezkBmgo0K0/erGq3M4Se5xP0fhc/0dKs0X/rJUYYCFWntHb3IGh3aVzdQ0SXJs93P76DbUqtw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.1.tgz", + "integrity": "sha512-iuoFGhKDojtfloi5uj6MIk4kxEOGcsAk/kPbZItF9Dp7TnzVhxo2U/718tXhxGrg6jSL3ST3cQHIjA6yw3OeXw==", "cpu": [ "arm64" ], @@ -1192,9 +1201,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.0.tgz", - "integrity": "sha512-hGtRYIUEx377/HlU49+jvVKKwU1MDSKYSMMs0JFO2Wp7LGxk5+0j5+RBk9NFnmp/lbp32yPTgIOO5m1BmDq36A==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.1.tgz", + "integrity": "sha512-pNUrGQYyE8RK+N9yvkPmHnlKDfFbni9A3lsi37u4RoA/6Yn+zWVoegvAQMZu3w+jqnpb2A/bYJ+LumcclUZ3yg==", "cpu": [ "x64" ], @@ -1208,9 +1217,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.0.tgz", - "integrity": "sha512-7xgQgSAThs0I14VAgmxpJnK6XFSZBxHMGoDXkLyYkEnu+8WRQMbCP93dkCUn2PIv+Q+JulRgc00PJ09uORSLXQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.1.tgz", + "integrity": "sha512-xSGWaDcT6SJ75su9zWXj8GYb2jM/przXwZGH96RTS7HGDIoI1tvgpls88YajG5Sx7hXaqAWCufjw5L/dlu+lzg==", "cpu": [ "x64" ], @@ -1224,9 +1233,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.0.tgz", - "integrity": "sha512-qEcgTIPcWY5ZE7f6VxQ/JPrSFMcehzVIlZj7sGE3mVd5YWreAT+Fl1vSP8q2pjnWXn0avZG3Iw7a2hJQAm+fTQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.1.tgz", + "integrity": "sha512-BUNL2isUZ2yWnbplPddggJpZxsqGHPZ1RJAYpu63W4znUnKCzI4m/jiy0WpyYqqOKL9jDM5q0QdsQ9mc3aw5YQ==", "cpu": [ "arm64" ], @@ -1240,9 +1249,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.0.tgz", - "integrity": "sha512-bqT0AY8RXb8GMDy28JtngvqaOSB2YixbLPLvUo6I6lkvvUwA6Eqh2Tj60e2Lh7O/k083f8tYiB0WEK4wmTI7Jg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.1.tgz", + "integrity": "sha512-ZtcVu+XXOddGsPlvO5nh2fnbKmwly2C07ZB1lcYCf/b8qIWF04QY9o6vy6/+6ioLRfbp3E7H/ipFio38DZX4oQ==", "cpu": [ "x64" ], @@ -1256,17 +1265,17 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.0.tgz", - "integrity": "sha512-lI2bPk4TvwavHdehjr5WiC6HnZ59hacM6ySEo4RM/H7tsjWd8JpqiNW9ThH7rO/yKtrn4mGBoXshpvn8clXjPg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.1.tgz", + "integrity": "sha512-fZHL49vCDauQymdm2U1jehuUeX8msYVDKB/2v+jWhTQleH3QE8J1dJ2dnL5tqRvB0udjBP4kwUC1ZIVIdv66YA==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "^4.0.0", - "@tailwindcss/oxide": "^4.0.0", + "@tailwindcss/node": "^4.0.1", + "@tailwindcss/oxide": "^4.0.1", "lightningcss": "^1.29.1", "postcss": "^8.4.41", - "tailwindcss": "4.0.0" + "tailwindcss": "4.0.1" } }, "node_modules/@types/estree": { @@ -1548,9 +1557,9 @@ } }, "node_modules/@vercel/otel": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@vercel/otel/-/otel-1.10.0.tgz", - "integrity": "sha512-bv1FXbFZlFbB89vyA2P9/kr6eZ42bMtXgqBJpgi+8yOrZU8rkg9wMi0TL//AgAf/qKtaryDm1sbCnkLHgCI3PQ==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@vercel/otel/-/otel-1.10.1.tgz", + "integrity": "sha512-jZrHSAP03WVUfu1yid4AkYAZ/pwde/txVBSovk5kxQ99Bmb8sqMmQ9RJCSbWuV1EvbTimrVotAP0Devi/qHXgw==", "license": "MIT", "engines": { "node": ">=18" @@ -4265,11 +4274,12 @@ "dev": true }, "node_modules/next": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/next/-/next-15.1.4.tgz", - "integrity": "sha512-mTaq9dwaSuwwOrcu3ebjDYObekkxRnXpuVL21zotM8qE2W0HBOdVIdg2Li9QjMEZrj73LN96LcWcz62V19FjAg==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/next/-/next-15.1.6.tgz", + "integrity": "sha512-Hch4wzbaX0vKQtalpXvUiw5sYivBy4cm5rzUKrBnUB/y436LGrvOUqYvlSeNVCWFO/770gDlltR9gqZH62ct4Q==", + "license": "MIT", "dependencies": { - "@next/env": "15.1.4", + "@next/env": "15.1.6", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.15", "busboy": "1.6.0", @@ -4284,14 +4294,14 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.1.4", - "@next/swc-darwin-x64": "15.1.4", - "@next/swc-linux-arm64-gnu": "15.1.4", - "@next/swc-linux-arm64-musl": "15.1.4", - "@next/swc-linux-x64-gnu": "15.1.4", - "@next/swc-linux-x64-musl": "15.1.4", - "@next/swc-win32-arm64-msvc": "15.1.4", - "@next/swc-win32-x64-msvc": "15.1.4", + "@next/swc-darwin-arm64": "15.1.6", + "@next/swc-darwin-x64": "15.1.6", + "@next/swc-linux-arm64-gnu": "15.1.6", + "@next/swc-linux-arm64-musl": "15.1.6", + "@next/swc-linux-x64-gnu": "15.1.6", + "@next/swc-linux-x64-musl": "15.1.6", + "@next/swc-win32-arm64-msvc": "15.1.6", + "@next/swc-win32-x64-msvc": "15.1.6", "sharp": "^0.33.5" }, "peerDependencies": { @@ -5392,9 +5402,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.0.tgz", - "integrity": "sha512-ULRPI3A+e39T7pSaf1xoi58AqqJxVCLg8F/uM5A3FadUbnyDTgltVnXJvdkTjwCOGA6NazqHVcwPJC5h2vRYVQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.1.tgz", + "integrity": "sha512-UK5Biiit/e+r3i0O223bisoS5+y7ZT1PM8Ojn0MxRHzXN1VPZ2KY6Lo6fhu1dOfCfyUAlK7Lt6wSxowRabATBw==", "license": "MIT" }, "node_modules/tapable": { diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 86b1f284ba..225353cca4 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -9,10 +9,10 @@ "lint": "next lint" }, "dependencies": { - "@tailwindcss/postcss": "^4.0.0", - "@vercel/otel": "^1.10.0", + "@tailwindcss/postcss": "^4.0.1", + "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", - "next": "15.1.4", + "next": "15.1.6", "react": "^19", "react-dom": "^19" }, diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 11ee50b7cd..95bf6d4982 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -14,7 +14,7 @@ "@openfeature/flagd-web-provider": "0.7.2", "@openfeature/react-sdk": "0.4.10", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.55.2", + "@opentelemetry/auto-instrumentations-node": "0.56.0", "@opentelemetry/auto-instrumentations-web": "0.45.0", "@opentelemetry/context-zone": "1.30.1", "@opentelemetry/core": "1.30.1", @@ -22,22 +22,22 @@ "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", "@opentelemetry/exporter-trace-otlp-http": "0.57.1", "@opentelemetry/instrumentation": "0.57.1", - "@opentelemetry/resource-detector-alibaba-cloud": "0.29.7", - "@opentelemetry/resource-detector-aws": "1.10.0", - "@opentelemetry/resource-detector-container": "0.5.3", - "@opentelemetry/resource-detector-gcp": "0.32.0", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", + "@opentelemetry/resource-detector-aws": "1.11.0", + "@opentelemetry/resource-detector-container": "0.6.0", + "@opentelemetry/resource-detector-gcp": "0.33.0", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-node": "0.57.1", "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.64.1", + "@tanstack/react-query": "5.65.1", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", "dotenv-expand": "12.0.1", - "next": "15.1.4", + "next": "15.1.6", "react": "19.0.0", "react-dom": "19.0.0", "sharp": "0.33.5", @@ -852,9 +852,9 @@ } }, "node_modules/@next/env": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.4.tgz", - "integrity": "sha512-2fZ5YZjedi5AGaeoaC0B20zGntEHRhi2SdWcu61i48BllODcAmmtj8n7YarSPt4DaTsJaBFdxQAVEVzgmx2Zpw==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.6.tgz", + "integrity": "sha512-d9AFQVPEYNr+aqokIiPLNK/MTyt3DWa/dpKveiAaVccUadFbhFEvY6FXYX2LJO2Hv7PHnLBu2oWwB4uBuHjr/w==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -898,9 +898,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.4.tgz", - "integrity": "sha512-wBEMBs+np+R5ozN1F8Y8d/Dycns2COhRnkxRc+rvnbXke5uZBHkUGFgWxfTXn5rx7OLijuUhyfB+gC/ap58dDw==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.6.tgz", + "integrity": "sha512-u7lg4Mpl9qWpKgy6NzEkz/w0/keEHtOybmIl0ykgItBxEM5mYotS5PmqTpo+Rhg8FiOiWgwr8USxmKQkqLBCrw==", "cpu": [ "arm64" ], @@ -914,9 +914,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.4.tgz", - "integrity": "sha512-7sgf5rM7Z81V9w48F02Zz6DgEJulavC0jadab4ZsJ+K2sxMNK0/BtF8J8J3CxnsJN3DGcIdC260wEKssKTukUw==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.6.tgz", + "integrity": "sha512-x1jGpbHbZoZ69nRuogGL2MYPLqohlhnT9OCU6E6QFewwup+z+M6r8oU47BTeJcWsF2sdBahp5cKiAcDbwwK/lg==", "cpu": [ "x64" ], @@ -930,9 +930,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.4.tgz", - "integrity": "sha512-JaZlIMNaJenfd55kjaLWMfok+vWBlcRxqnRoZrhFQrhM1uAehP3R0+Aoe+bZOogqlZvAz53nY/k3ZyuKDtT2zQ==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.6.tgz", + "integrity": "sha512-jar9sFw0XewXsBzPf9runGzoivajeWJUc/JkfbLTC4it9EhU8v7tCRLH7l5Y1ReTMN6zKJO0kKAGqDk8YSO2bg==", "cpu": [ "arm64" ], @@ -946,9 +946,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.4.tgz", - "integrity": "sha512-7EBBjNoyTO2ipMDgCiORpwwOf5tIueFntKjcN3NK+GAQD7OzFJe84p7a2eQUeWdpzZvhVXuAtIen8QcH71ZCOQ==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.6.tgz", + "integrity": "sha512-+n3u//bfsrIaZch4cgOJ3tXCTbSxz0s6brJtU3SzLOvkJlPQMJ+eHVRi6qM2kKKKLuMY+tcau8XD9CJ1OjeSQQ==", "cpu": [ "arm64" ], @@ -962,9 +962,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.4.tgz", - "integrity": "sha512-9TGEgOycqZFuADyFqwmK/9g6S0FYZ3tphR4ebcmCwhL8Y12FW8pIBKJvSwV+UBjMkokstGNH+9F8F031JZKpHw==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.6.tgz", + "integrity": "sha512-SpuDEXixM3PycniL4iVCLyUyvcl6Lt0mtv3am08sucskpG0tYkW1KlRhTgj4LI5ehyxriVVcfdoxuuP8csi3kQ==", "cpu": [ "x64" ], @@ -978,9 +978,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.4.tgz", - "integrity": "sha512-0578bLRVDJOh+LdIoKvgNDz77+Bd85c5JrFgnlbI1SM3WmEQvsjxTA8ATu9Z9FCiIS/AliVAW2DV/BDwpXbtiQ==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.6.tgz", + "integrity": "sha512-L4druWmdFSZIIRhF+G60API5sFB7suTbDRhYWSjiw0RbE+15igQvE2g2+S973pMGvwN3guw7cJUjA/TmbPWTHQ==", "cpu": [ "x64" ], @@ -994,9 +994,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.4.tgz", - "integrity": "sha512-JgFCiV4libQavwII+kncMCl30st0JVxpPOtzWcAI2jtum4HjYaclobKhj+JsRu5tFqMtA5CJIa0MvYyuu9xjjQ==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.6.tgz", + "integrity": "sha512-s8w6EeqNmi6gdvM19tqKKWbCyOBvXFbndkGHl+c9YrzsLARRdCHsD9S1fMj8gsXm9v8vhC8s3N8rjuC/XrtkEg==", "cpu": [ "arm64" ], @@ -1010,9 +1010,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.4.tgz", - "integrity": "sha512-xxsJy9wzq7FR5SqPCUqdgSXiNXrMuidgckBa8nH9HtjjxsilgcN6VgXF6tZ3uEWuVEadotQJI8/9EQ6guTC4Yw==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.6.tgz", + "integrity": "sha512-6xomMuu54FAFxttYr5PJbEfu96godcxBTRk1OhAvJq0/EnmFU/Ybiax30Snis4vdWZ9LGpf7Roy5fSs7v/5ROQ==", "cpu": [ "x64" ], @@ -1204,23 +1204,23 @@ } }, "node_modules/@opentelemetry/auto-instrumentations-node": { - "version": "0.55.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.55.2.tgz", - "integrity": "sha512-m6Wt1vlDYocFX4+m6Y3df1kAXRjYrY57Y8O0VjDRTP+kSHdjH/52/2KmlWGhk2NiDasOt2Pb+DZoMqkQLezZew==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.56.0.tgz", + "integrity": "sha512-d1X3DQY0+VmhNUir/3U3JO6Uh0FOSm8G91zsPzVVKc6NGDwmHP6Dn7PMVH70O6FZ0yErzlHqRx8vkNiAsTWt5A==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/instrumentation-amqplib": "^0.46.0", - "@opentelemetry/instrumentation-aws-lambda": "^0.50.1", + "@opentelemetry/instrumentation-aws-lambda": "^0.50.2", "@opentelemetry/instrumentation-aws-sdk": "^0.49.0", "@opentelemetry/instrumentation-bunyan": "^0.45.0", "@opentelemetry/instrumentation-cassandra-driver": "^0.45.0", "@opentelemetry/instrumentation-connect": "^0.43.0", - "@opentelemetry/instrumentation-cucumber": "^0.13.0", + "@opentelemetry/instrumentation-cucumber": "^0.14.0", "@opentelemetry/instrumentation-dataloader": "^0.16.0", "@opentelemetry/instrumentation-dns": "^0.43.0", "@opentelemetry/instrumentation-express": "^0.47.0", - "@opentelemetry/instrumentation-fastify": "^0.44.0", + "@opentelemetry/instrumentation-fastify": "^0.44.1", "@opentelemetry/instrumentation-fs": "^0.19.0", "@opentelemetry/instrumentation-generic-pool": "^0.43.0", "@opentelemetry/instrumentation-graphql": "^0.47.0", @@ -1236,10 +1236,10 @@ "@opentelemetry/instrumentation-mongodb": "^0.51.0", "@opentelemetry/instrumentation-mongoose": "^0.46.0", "@opentelemetry/instrumentation-mysql": "^0.45.0", - "@opentelemetry/instrumentation-mysql2": "^0.45.0", + "@opentelemetry/instrumentation-mysql2": "^0.45.1", "@opentelemetry/instrumentation-nestjs-core": "^0.44.0", "@opentelemetry/instrumentation-net": "^0.43.0", - "@opentelemetry/instrumentation-pg": "^0.50.0", + "@opentelemetry/instrumentation-pg": "^0.51.0", "@opentelemetry/instrumentation-pino": "^0.46.0", "@opentelemetry/instrumentation-redis": "^0.46.0", "@opentelemetry/instrumentation-redis-4": "^0.46.0", @@ -1249,11 +1249,11 @@ "@opentelemetry/instrumentation-tedious": "^0.18.0", "@opentelemetry/instrumentation-undici": "^0.10.0", "@opentelemetry/instrumentation-winston": "^0.44.0", - "@opentelemetry/resource-detector-alibaba-cloud": "^0.29.7", - "@opentelemetry/resource-detector-aws": "^1.10.0", - "@opentelemetry/resource-detector-azure": "^0.5.0", - "@opentelemetry/resource-detector-container": "^0.5.3", - "@opentelemetry/resource-detector-gcp": "^0.32.0", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", + "@opentelemetry/resource-detector-aws": "1.11.0", + "@opentelemetry/resource-detector-azure": "^0.6.0", + "@opentelemetry/resource-detector-container": "0.6.0", + "@opentelemetry/resource-detector-gcp": "0.33.0", "@opentelemetry/resources": "^1.24.0", "@opentelemetry/sdk-node": "^0.57.0" }, @@ -1674,9 +1674,9 @@ } }, "node_modules/@opentelemetry/instrumentation-cucumber": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.13.0.tgz", - "integrity": "sha512-ZBswBKONU2g7mhjEKF4vkTXxezq16QdvGaD5W4o01/t5KzvCZGQ6hYPsB34miJIj/hh6UrFLRDAjqb7nur5I3Q==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.14.0.tgz", + "integrity": "sha512-i/GlurL1IM+CnbmItW8kx59YxAp0wu/YQkzQQRU/YGmUjym5g+/dOVjnk/K46lAU49Nn1XyFd7S3ZNf83PHL2Q==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", @@ -2036,9 +2036,9 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql2": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.0.tgz", - "integrity": "sha512-qLslv/EPuLj0IXFvcE3b0EqhWI8LKmrgRPIa4gUd8DllbBpqJAvLNJSv3cC6vWwovpbSI3bagNO/3Q2SuXv2xA==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.1.tgz", + "integrity": "sha512-9R/vxEc02vlSqyQSmXRTvFMZVht8vgSJokKhiWA3z8Idu0mmdKFKeHiuW5yRGxM/WOi+7DWqQfYM7zw/cJc3sA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", @@ -2085,14 +2085,14 @@ } }, "node_modules/@opentelemetry/instrumentation-pg": { - "version": "0.50.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.50.0.tgz", - "integrity": "sha512-TtLxDdYZmBhFswm8UIsrDjh/HFBeDXd4BLmE8h2MxirNHewLJ0VS9UUddKKEverb5Sm2qFVjqRjcU+8Iw4FJ3w==", + "version": "0.51.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.51.0.tgz", + "integrity": "sha512-/NStIcUWUofc11dL7tSgMk25NqvhtbHDCncgm+yc4iJF8Ste2Q/lwUitjfxqj4qWM280uFmBEtcmtMMjbjRU7Q==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", "@opentelemetry/instrumentation": "^0.57.0", - "@opentelemetry/semantic-conventions": "1.27.0", + "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1", "@types/pg": "8.6.1", "@types/pg-pool": "2.0.6" @@ -2104,15 +2104,6 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", - "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", - "license": "Apache-2.0", - "engines": { - "node": ">=14" - } - }, "node_modules/@opentelemetry/instrumentation-pino": { "version": "0.46.0", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.46.0.tgz", @@ -2405,9 +2396,9 @@ } }, "node_modules/@opentelemetry/resource-detector-alibaba-cloud": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.29.7.tgz", - "integrity": "sha512-PExUl/R+reSQI6Y/eNtgAsk6RHk1ElYSzOa8/FHfdc/nLmx9sqMasBEpLMkETkzDP7t27ORuXe4F9vwkV2uwwg==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.30.0.tgz", + "integrity": "sha512-CniMuVcJENb7e6ljXC8BuE8xyHKV6kjHjFzAjbeK7BIq2JSPOqfvC+jjhUYnnSGFnDyoZxJCIbt6XIdwPWRPhg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", @@ -2422,9 +2413,9 @@ } }, "node_modules/@opentelemetry/resource-detector-aws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.10.0.tgz", - "integrity": "sha512-cTF2R6r+m4/vXEZwiAeoIZ3XOPmtQpGrMY4mSltshwKYhZwdJVJOC6l/MWm4cF7hB9+Hp/VRBjJiNw7OgCLbOg==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.11.0.tgz", + "integrity": "sha512-j7qQ75enAJrlSPkPowasScuukZ2ffFG659rhxOpUM4dBe/O8Jpq+dy4pIdFtjWKkM9i7LgisdUt/GW7wGIWoEQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", @@ -2439,9 +2430,9 @@ } }, "node_modules/@opentelemetry/resource-detector-azure": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.5.0.tgz", - "integrity": "sha512-FKcSmAKBKTD04b0CVQxY+H32Y0sWCUD9U8v1BYXStmwiS9DfQ5Lqr73qcmXvKIs8HXZtxYfHzXZY+BgcPTFKww==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.6.0.tgz", + "integrity": "sha512-cQbR/x9IhCYk47GWt4uC1G5yQN8JJ02Ec8uT38fj7uIXRbAARulwGr7Ax0dUo0eAtXEKQ+fXdzkLR1Am8cw4mg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.25.1", @@ -2456,9 +2447,9 @@ } }, "node_modules/@opentelemetry/resource-detector-container": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.5.3.tgz", - "integrity": "sha512-x5DxWu+ZALBuFpxwO2viv9ktH4Y3Gk9LaYKn2U8J+aeD412iy/OcGLPbQ76Px7pQ8qaJ5rnjcevBOHYT4aA+zQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.6.0.tgz", + "integrity": "sha512-HxOzOsGlIjAbnTjwRBWQOsjrQIZ4NnQaaBc6noO8fW0v9ahyRxzwDFVr/3X1kSYLnpr2RGeWmMGDX6VcHECsLA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", @@ -2473,9 +2464,9 @@ } }, "node_modules/@opentelemetry/resource-detector-gcp": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.32.0.tgz", - "integrity": "sha512-+WdWSG4sZAfsk5DvRj/OUmatsHc+7Rdz8xdmxQdr1jpfUWjcKwOkGA4rondIf2ou/qPLOeYCs6hLLexsRdZaUw==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.33.0.tgz", + "integrity": "sha512-y368hq2UM6j42Py7xlR4rTfl+wC4CdGNGT38nqW+6BwGTQso0NC/GeifcwqorEKs/JWU9azA6XNDyUBNEjFpGA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", @@ -2812,9 +2803,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.64.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.64.1.tgz", - "integrity": "sha512-978Wx4Wl4UJZbmvU/rkaM9cQtXXrbhK0lsz/UZhYIbyKYA8E4LdomTwyh2GHZ4oU0BKKoDH4YlKk2VscCUgNmg==", + "version": "5.65.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.65.0.tgz", + "integrity": "sha512-Bnnq/1axf00r2grRT6gUyIkZRKzhHs+p4DijrCQ3wMlA3D3TTT71gtaSLtqnzGddj73/7X5JDGyjiSLdjvQN4w==", "license": "MIT", "funding": { "type": "github", @@ -2822,12 +2813,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.64.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.64.1.tgz", - "integrity": "sha512-vW5ggHpIO2Yjj44b4sB+Fd3cdnlMJppXRBJkEHvld6FXh3j5dwWJoQo7mGtKI2RbSFyiyu/PhGAy0+Vv5ev9Eg==", + "version": "5.65.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.65.1.tgz", + "integrity": "sha512-BSpjo4RQdJ75Mw3pqM1AJYNhanNxJE3ct7RmCZUAv9cUJg/Qmonzc/Xy2kKXeQA1InuKATSuc6pOZciWOF8TYQ==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.64.1" + "@tanstack/query-core": "5.65.0" }, "funding": { "type": "github", @@ -7221,12 +7212,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/next/-/next-15.1.4.tgz", - "integrity": "sha512-mTaq9dwaSuwwOrcu3ebjDYObekkxRnXpuVL21zotM8qE2W0HBOdVIdg2Li9QjMEZrj73LN96LcWcz62V19FjAg==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/next/-/next-15.1.6.tgz", + "integrity": "sha512-Hch4wzbaX0vKQtalpXvUiw5sYivBy4cm5rzUKrBnUB/y436LGrvOUqYvlSeNVCWFO/770gDlltR9gqZH62ct4Q==", "license": "MIT", "dependencies": { - "@next/env": "15.1.4", + "@next/env": "15.1.6", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.15", "busboy": "1.6.0", @@ -7241,14 +7232,14 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.1.4", - "@next/swc-darwin-x64": "15.1.4", - "@next/swc-linux-arm64-gnu": "15.1.4", - "@next/swc-linux-arm64-musl": "15.1.4", - "@next/swc-linux-x64-gnu": "15.1.4", - "@next/swc-linux-x64-musl": "15.1.4", - "@next/swc-win32-arm64-msvc": "15.1.4", - "@next/swc-win32-x64-msvc": "15.1.4", + "@next/swc-darwin-arm64": "15.1.6", + "@next/swc-darwin-x64": "15.1.6", + "@next/swc-linux-arm64-gnu": "15.1.6", + "@next/swc-linux-arm64-musl": "15.1.6", + "@next/swc-linux-x64-gnu": "15.1.6", + "@next/swc-linux-x64-musl": "15.1.6", + "@next/swc-win32-arm64-msvc": "15.1.6", + "@next/swc-win32-x64-msvc": "15.1.6", "sharp": "^0.33.5" }, "peerDependencies": { diff --git a/src/frontend/package.json b/src/frontend/package.json index 845a11ebed..716aa1a979 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -17,7 +17,7 @@ "@openfeature/flagd-web-provider": "0.7.2", "@openfeature/react-sdk": "0.4.10", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.55.2", + "@opentelemetry/auto-instrumentations-node": "0.56.0", "@opentelemetry/auto-instrumentations-web": "0.45.0", "@opentelemetry/context-zone": "1.30.1", "@opentelemetry/core": "1.30.1", @@ -25,22 +25,22 @@ "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", "@opentelemetry/exporter-trace-otlp-http": "0.57.1", "@opentelemetry/instrumentation": "0.57.1", - "@opentelemetry/resource-detector-alibaba-cloud": "0.29.7", - "@opentelemetry/resource-detector-aws": "1.10.0", - "@opentelemetry/resource-detector-container": "0.5.3", - "@opentelemetry/resource-detector-gcp": "0.32.0", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", + "@opentelemetry/resource-detector-aws": "1.11.0", + "@opentelemetry/resource-detector-container": "0.6.0", + "@opentelemetry/resource-detector-gcp": "0.33.0", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-node": "0.57.1", "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.64.1", + "@tanstack/react-query": "5.65.1", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", "dotenv-expand": "12.0.1", - "next": "15.1.4", + "next": "15.1.6", "react": "19.0.0", "react-dom": "19.0.0", "sharp": "0.33.5", diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index 81247e732a..7c7ee9215b 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -13,15 +13,15 @@ "@openfeature/flagd-provider": "0.13.2", "@openfeature/server-sdk": "1.17.0", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.55.2", + "@opentelemetry/auto-instrumentations-node": "0.56.0", "@opentelemetry/core": "1.30.1", "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", "@opentelemetry/instrumentation-runtime-node": "0.12.1", - "@opentelemetry/resource-detector-alibaba-cloud": "0.29.7", - "@opentelemetry/resource-detector-aws": "1.10.0", - "@opentelemetry/resource-detector-container": "0.5.3", - "@opentelemetry/resource-detector-gcp": "0.32.0", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", + "@opentelemetry/resource-detector-aws": "1.11.0", + "@opentelemetry/resource-detector-container": "0.6.0", + "@opentelemetry/resource-detector-gcp": "0.33.0", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-node": "0.57.1", @@ -161,22 +161,23 @@ } }, "node_modules/@opentelemetry/auto-instrumentations-node": { - "version": "0.55.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.55.2.tgz", - "integrity": "sha512-m6Wt1vlDYocFX4+m6Y3df1kAXRjYrY57Y8O0VjDRTP+kSHdjH/52/2KmlWGhk2NiDasOt2Pb+DZoMqkQLezZew==", + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.56.0.tgz", + "integrity": "sha512-d1X3DQY0+VmhNUir/3U3JO6Uh0FOSm8G91zsPzVVKc6NGDwmHP6Dn7PMVH70O6FZ0yErzlHqRx8vkNiAsTWt5A==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/instrumentation-amqplib": "^0.46.0", - "@opentelemetry/instrumentation-aws-lambda": "^0.50.1", + "@opentelemetry/instrumentation-aws-lambda": "^0.50.2", "@opentelemetry/instrumentation-aws-sdk": "^0.49.0", "@opentelemetry/instrumentation-bunyan": "^0.45.0", "@opentelemetry/instrumentation-cassandra-driver": "^0.45.0", "@opentelemetry/instrumentation-connect": "^0.43.0", - "@opentelemetry/instrumentation-cucumber": "^0.13.0", + "@opentelemetry/instrumentation-cucumber": "^0.14.0", "@opentelemetry/instrumentation-dataloader": "^0.16.0", "@opentelemetry/instrumentation-dns": "^0.43.0", "@opentelemetry/instrumentation-express": "^0.47.0", - "@opentelemetry/instrumentation-fastify": "^0.44.0", + "@opentelemetry/instrumentation-fastify": "^0.44.1", "@opentelemetry/instrumentation-fs": "^0.19.0", "@opentelemetry/instrumentation-generic-pool": "^0.43.0", "@opentelemetry/instrumentation-graphql": "^0.47.0", @@ -192,10 +193,10 @@ "@opentelemetry/instrumentation-mongodb": "^0.51.0", "@opentelemetry/instrumentation-mongoose": "^0.46.0", "@opentelemetry/instrumentation-mysql": "^0.45.0", - "@opentelemetry/instrumentation-mysql2": "^0.45.0", + "@opentelemetry/instrumentation-mysql2": "^0.45.1", "@opentelemetry/instrumentation-nestjs-core": "^0.44.0", "@opentelemetry/instrumentation-net": "^0.43.0", - "@opentelemetry/instrumentation-pg": "^0.50.0", + "@opentelemetry/instrumentation-pg": "^0.51.0", "@opentelemetry/instrumentation-pino": "^0.46.0", "@opentelemetry/instrumentation-redis": "^0.46.0", "@opentelemetry/instrumentation-redis-4": "^0.46.0", @@ -205,11 +206,11 @@ "@opentelemetry/instrumentation-tedious": "^0.18.0", "@opentelemetry/instrumentation-undici": "^0.10.0", "@opentelemetry/instrumentation-winston": "^0.44.0", - "@opentelemetry/resource-detector-alibaba-cloud": "0.29.7", - "@opentelemetry/resource-detector-aws": "1.10.0", - "@opentelemetry/resource-detector-azure": "^0.5.0", - "@opentelemetry/resource-detector-container": "0.5.3", - "@opentelemetry/resource-detector-gcp": "0.32.0", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", + "@opentelemetry/resource-detector-aws": "1.11.0", + "@opentelemetry/resource-detector-azure": "^0.6.0", + "@opentelemetry/resource-detector-container": "0.6.0", + "@opentelemetry/resource-detector-gcp": "0.33.0", "@opentelemetry/resources": "^1.24.0", "@opentelemetry/sdk-node": "^0.57.0" }, @@ -483,9 +484,10 @@ } }, "node_modules/@opentelemetry/instrumentation-aws-lambda": { - "version": "0.50.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.50.1.tgz", - "integrity": "sha512-Kk+9tdmsLeX4QeOvL4A2gSOfEqIKVMLbVO76CbTjmlIcL9rQjHefwxp1m62YO/nwujuZ0JKTJbz264e8foTMeQ==", + "version": "0.50.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.50.2.tgz", + "integrity": "sha512-jz1a7t2q0SsiztEMyZjFLEFC4pOQ+1C588gWzl878k9Qr6TI1Wu3sa7/dikxJmeRIETcOTUilaa2Otxh6HUVlA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", @@ -564,9 +566,10 @@ } }, "node_modules/@opentelemetry/instrumentation-cucumber": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.13.0.tgz", - "integrity": "sha512-ZBswBKONU2g7mhjEKF4vkTXxezq16QdvGaD5W4o01/t5KzvCZGQ6hYPsB34miJIj/hh6UrFLRDAjqb7nur5I3Q==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.14.0.tgz", + "integrity": "sha512-i/GlurL1IM+CnbmItW8kx59YxAp0wu/YQkzQQRU/YGmUjym5g+/dOVjnk/K46lAU49Nn1XyFd7S3ZNf83PHL2Q==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" @@ -623,9 +626,10 @@ } }, "node_modules/@opentelemetry/instrumentation-fastify": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.44.0.tgz", - "integrity": "sha512-mO2iyzyrk8GibUOSW8ffvFeau/frFONpSzDq3sEPbsHXIbHOXiM6VX3Q7oydnwaAxHDmxClOCRuYDNbXSO1rSA==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.44.1.tgz", + "integrity": "sha512-RoVeMGKcNttNfXMSl6W4fsYoCAYP1vi6ZAWIGhBY+o7R9Y0afA7f9JJL0j8LHbyb0P0QhSYk+6O56OwI2k4iRQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.0", @@ -870,9 +874,10 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql2": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.0.tgz", - "integrity": "sha512-qLslv/EPuLj0IXFvcE3b0EqhWI8LKmrgRPIa4gUd8DllbBpqJAvLNJSv3cC6vWwovpbSI3bagNO/3Q2SuXv2xA==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.1.tgz", + "integrity": "sha512-9R/vxEc02vlSqyQSmXRTvFMZVht8vgSJokKhiWA3z8Idu0mmdKFKeHiuW5yRGxM/WOi+7DWqQfYM7zw/cJc3sA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", @@ -916,13 +921,14 @@ } }, "node_modules/@opentelemetry/instrumentation-pg": { - "version": "0.50.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.50.0.tgz", - "integrity": "sha512-TtLxDdYZmBhFswm8UIsrDjh/HFBeDXd4BLmE8h2MxirNHewLJ0VS9UUddKKEverb5Sm2qFVjqRjcU+8Iw4FJ3w==", + "version": "0.51.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.51.0.tgz", + "integrity": "sha512-/NStIcUWUofc11dL7tSgMk25NqvhtbHDCncgm+yc4iJF8Ste2Q/lwUitjfxqj4qWM280uFmBEtcmtMMjbjRU7Q==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", "@opentelemetry/instrumentation": "^0.57.0", - "@opentelemetry/semantic-conventions": "1.27.0", + "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1", "@types/pg": "8.6.1", "@types/pg-pool": "2.0.6" @@ -934,14 +940,6 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", - "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", - "engines": { - "node": ">=14" - } - }, "node_modules/@opentelemetry/instrumentation-pino": { "version": "0.46.0", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.46.0.tgz", @@ -1196,9 +1194,10 @@ } }, "node_modules/@opentelemetry/resource-detector-alibaba-cloud": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.29.7.tgz", - "integrity": "sha512-PExUl/R+reSQI6Y/eNtgAsk6RHk1ElYSzOa8/FHfdc/nLmx9sqMasBEpLMkETkzDP7t27ORuXe4F9vwkV2uwwg==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.30.0.tgz", + "integrity": "sha512-CniMuVcJENb7e6ljXC8BuE8xyHKV6kjHjFzAjbeK7BIq2JSPOqfvC+jjhUYnnSGFnDyoZxJCIbt6XIdwPWRPhg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", "@opentelemetry/resources": "^1.10.0", @@ -1212,9 +1211,10 @@ } }, "node_modules/@opentelemetry/resource-detector-aws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.10.0.tgz", - "integrity": "sha512-cTF2R6r+m4/vXEZwiAeoIZ3XOPmtQpGrMY4mSltshwKYhZwdJVJOC6l/MWm4cF7hB9+Hp/VRBjJiNw7OgCLbOg==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.11.0.tgz", + "integrity": "sha512-j7qQ75enAJrlSPkPowasScuukZ2ffFG659rhxOpUM4dBe/O8Jpq+dy4pIdFtjWKkM9i7LgisdUt/GW7wGIWoEQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", "@opentelemetry/resources": "^1.10.0", @@ -1228,9 +1228,10 @@ } }, "node_modules/@opentelemetry/resource-detector-azure": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.5.0.tgz", - "integrity": "sha512-FKcSmAKBKTD04b0CVQxY+H32Y0sWCUD9U8v1BYXStmwiS9DfQ5Lqr73qcmXvKIs8HXZtxYfHzXZY+BgcPTFKww==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.6.0.tgz", + "integrity": "sha512-cQbR/x9IhCYk47GWt4uC1G5yQN8JJ02Ec8uT38fj7uIXRbAARulwGr7Ax0dUo0eAtXEKQ+fXdzkLR1Am8cw4mg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.25.1", "@opentelemetry/resources": "^1.10.1", @@ -1244,9 +1245,10 @@ } }, "node_modules/@opentelemetry/resource-detector-container": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.5.3.tgz", - "integrity": "sha512-x5DxWu+ZALBuFpxwO2viv9ktH4Y3Gk9LaYKn2U8J+aeD412iy/OcGLPbQ76Px7pQ8qaJ5rnjcevBOHYT4aA+zQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.6.0.tgz", + "integrity": "sha512-HxOzOsGlIjAbnTjwRBWQOsjrQIZ4NnQaaBc6noO8fW0v9ahyRxzwDFVr/3X1kSYLnpr2RGeWmMGDX6VcHECsLA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", "@opentelemetry/resources": "^1.10.0", @@ -1260,9 +1262,10 @@ } }, "node_modules/@opentelemetry/resource-detector-gcp": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.32.0.tgz", - "integrity": "sha512-+WdWSG4sZAfsk5DvRj/OUmatsHc+7Rdz8xdmxQdr1jpfUWjcKwOkGA4rondIf2ou/qPLOeYCs6hLLexsRdZaUw==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.33.0.tgz", + "integrity": "sha512-y368hq2UM6j42Py7xlR4rTfl+wC4CdGNGT38nqW+6BwGTQso0NC/GeifcwqorEKs/JWU9azA6XNDyUBNEjFpGA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", "@opentelemetry/resources": "^1.10.0", @@ -1403,6 +1406,7 @@ "version": "0.40.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz", "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.1.0" }, @@ -1470,7 +1474,8 @@ "node_modules/@types/aws-lambda": { "version": "8.10.143", "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.143.tgz", - "integrity": "sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==" + "integrity": "sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==", + "license": "MIT" }, "node_modules/@types/bunyan": { "version": "1.8.9", @@ -1517,6 +1522,7 @@ "version": "8.6.1", "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", + "license": "MIT", "dependencies": { "@types/node": "*", "pg-protocol": "*", @@ -1527,6 +1533,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz", "integrity": "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==", + "license": "MIT", "dependencies": { "@types/pg": "*" } @@ -1986,6 +1993,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", "engines": { "node": ">=4.0.0" } @@ -1993,12 +2001,14 @@ "node_modules/pg-protocol": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz", - "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==" + "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==", + "license": "MIT" }, "node_modules/pg-types": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", @@ -2050,6 +2060,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", "engines": { "node": ">=4" } @@ -2058,6 +2069,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2066,6 +2078,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2074,6 +2087,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", "dependencies": { "xtend": "^4.0.0" }, @@ -2330,6 +2344,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", "engines": { "node": ">=0.4" } diff --git a/src/payment/package.json b/src/payment/package.json index 92bc9ec4a4..ea45b4bdc5 100644 --- a/src/payment/package.json +++ b/src/payment/package.json @@ -14,15 +14,15 @@ "@openfeature/flagd-provider": "0.13.2", "@openfeature/server-sdk": "1.17.0", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.55.2", + "@opentelemetry/auto-instrumentations-node": "0.56.0", "@opentelemetry/core": "1.30.1", "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", "@opentelemetry/instrumentation-runtime-node": "0.12.1", - "@opentelemetry/resource-detector-alibaba-cloud": "0.29.7", - "@opentelemetry/resource-detector-aws": "1.10.0", - "@opentelemetry/resource-detector-container": "0.5.3", - "@opentelemetry/resource-detector-gcp": "0.32.0", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", + "@opentelemetry/resource-detector-aws": "1.11.0", + "@opentelemetry/resource-detector-container": "0.6.0", + "@opentelemetry/resource-detector-gcp": "0.33.0", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-node": "0.57.1", From 81a15fb063976c8ff33947423cc22bbd09a25375 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2025 15:30:17 +0100 Subject: [PATCH 096/178] build(deps): bump the pip-production-dependencies group across 2 directories with 1 update (#1981) Bumps the pip-production-dependencies group with 1 update in the /src directory: [pyzmq](https://github.com/zeromq/pyzmq). Bumps the pip-production-dependencies group with 1 update in the /src/load-generator directory: [pyzmq](https://github.com/zeromq/pyzmq). Updates `pyzmq` from 26.2.0 to 26.2.1 - [Release notes](https://github.com/zeromq/pyzmq/releases) - [Commits](https://github.com/zeromq/pyzmq/compare/v26.2.0...v26.2.1) Updates `pyzmq` from 26.2.0 to 26.2.1 - [Release notes](https://github.com/zeromq/pyzmq/releases) - [Commits](https://github.com/zeromq/pyzmq/compare/v26.2.0...v26.2.1) --- updated-dependencies: - dependency-name: pyzmq dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: pyzmq dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/load-generator/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/load-generator/requirements.txt b/src/load-generator/requirements.txt index 9c0d5be564..a371e42b1e 100644 --- a/src/load-generator/requirements.txt +++ b/src/load-generator/requirements.txt @@ -35,7 +35,7 @@ openfeature-provider-flagd==0.1.5 openfeature-hooks-opentelemetry==0.1.3 protobuf==5.29.3 psutil==6.1.1 -pyzmq==26.2.0 +pyzmq==26.2.1 requests==2.32.3 roundrobin==0.0.4 six==1.17.0 From 41443f9db620ed2406285e954e10e30ebb30706f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2025 16:20:57 +0100 Subject: [PATCH 097/178] build(deps-dev): bump the npm-development-dependencies group across 2 directories with 1 update (#1980) Bumps the npm-development-dependencies group with 1 update in the /src/flagd-ui directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react). Bumps the npm-development-dependencies group with 1 update in the /src/frontend directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react). Updates `@types/react` from 19.0.7 to 19.0.8 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `@types/react` from 19.0.7 to 19.0.8 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/flagd-ui/package-lock.json | 9 +++++---- src/flagd-ui/package.json | 2 +- src/frontend/package-lock.json | 8 ++++---- src/frontend/package.json | 2 +- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 31f7e6ac7f..ba6f214140 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -18,7 +18,7 @@ "devDependencies": { "@types/json5": "^2.2.0", "@types/node": "^22", - "@types/react": "^19.0.7", + "@types/react": "^19.0.8", "@types/react-dom": "^19.0.3", "autoprefixer": "^10.4.20", "eslint": "^9", @@ -1313,10 +1313,11 @@ } }, "node_modules/@types/react": { - "version": "19.0.7", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.7.tgz", - "integrity": "sha512-MoFsEJKkAtZCrC1r6CM8U22GzhG7u2Wir8ons/aCKH6MBdD1ibV24zOSSkdZVUKqN5i396zG5VKLYZ3yaUZdLA==", + "version": "19.0.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz", + "integrity": "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==", "dev": true, + "license": "MIT", "dependencies": { "csstype": "^3.0.2" } diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 225353cca4..7046ae47ea 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -19,7 +19,7 @@ "devDependencies": { "@types/json5": "^2.2.0", "@types/node": "^22", - "@types/react": "^19.0.7", + "@types/react": "^19.0.8", "@types/react-dom": "^19.0.3", "autoprefixer": "^10.4.20", "eslint": "^9", diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 95bf6d4982..17504f0544 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -46,7 +46,7 @@ }, "devDependencies": { "@types/node": "22.12.0", - "@types/react": "19.0.7", + "@types/react": "19.0.8", "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", @@ -2932,9 +2932,9 @@ } }, "node_modules/@types/react": { - "version": "19.0.7", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.7.tgz", - "integrity": "sha512-MoFsEJKkAtZCrC1r6CM8U22GzhG7u2Wir8ons/aCKH6MBdD1ibV24zOSSkdZVUKqN5i396zG5VKLYZ3yaUZdLA==", + "version": "19.0.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz", + "integrity": "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==", "dev": true, "license": "MIT", "dependencies": { diff --git a/src/frontend/package.json b/src/frontend/package.json index 716aa1a979..da2bb568b6 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -49,7 +49,7 @@ }, "devDependencies": { "@types/node": "22.12.0", - "@types/react": "19.0.7", + "@types/react": "19.0.8", "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", From 68c76851951fed310a52b859e7d787efb6a2485e Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Sat, 1 Feb 2025 04:11:02 +0100 Subject: [PATCH 098/178] [chore] Updated k8s manifests based on last Helm changes (#1982) Co-authored-by: Pierre Tessier --- kubernetes/opentelemetry-demo.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubernetes/opentelemetry-demo.yaml b/kubernetes/opentelemetry-demo.yaml index 782b916a5c..d236ca4066 100644 --- a/kubernetes/opentelemetry-demo.yaml +++ b/kubernetes/opentelemetry-demo.yaml @@ -9453,7 +9453,7 @@ spec: - --web.console.libraries=/etc/prometheus/console_libraries - --web.console.templates=/etc/prometheus/consoles - --enable-feature=exemplar-storage - - --enable-feature=otlp-write-receiver + - --web.enable-otlp-receiver ports: - containerPort: 9090 readinessProbe: From 0d4d243f49a77446c549fd65b1d5c421287fd2f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Kie=C5=82kowicz?= Date: Thu, 6 Feb 2025 04:59:49 +0100 Subject: [PATCH 099/178] [accounting] Bump OTel .NET Auto to 1.10.0 (#1998) --- CHANGELOG.md | 2 ++ src/accounting/Accounting.csproj | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d73481afe..851cd3cc62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -82,6 +82,8 @@ the release. ([#1936](https://github.com/open-telemetry/opentelemetry-demo/pull/1936)) * [chore] Generate protobuf code for Typescript service - Frontend ([#1954](https://github.com/open-telemetry/opentelemetry-demo/pull/1954)) +* [accounting] bump OpenTelemetry .NET Automatic Instrumentation to 1.10.0 + ([#1998](https://github.com/open-telemetry/opentelemetry-demo/pull/1998)) ## 1.12.0 diff --git a/src/accounting/Accounting.csproj b/src/accounting/Accounting.csproj index a95098ad49..c2e433a46f 100644 --- a/src/accounting/Accounting.csproj +++ b/src/accounting/Accounting.csproj @@ -17,7 +17,7 @@ - + From 91e958684c2302555987dc1db563d87aa31f788b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Feb 2025 15:21:47 +0100 Subject: [PATCH 100/178] build(deps): bump gradle/actions (#1987) Bumps the actions-production-dependencies group with 1 update in the / directory: [gradle/actions](https://github.com/gradle/actions). Updates `gradle/actions` from 4.2.2 to 4.3.0 - [Release notes](https://github.com/gradle/actions/releases) - [Commits](https://github.com/gradle/actions/compare/v4.2.2...v4.3.0) --- updated-dependencies: - dependency-name: gradle/actions dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/gradle-wrapper-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index 3f608ba7d8..13fc3b57c8 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -15,4 +15,4 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: gradle/actions/wrapper-validation@v4.2.2 + - uses: gradle/actions/wrapper-validation@v4.3.0 From bbc22abd1b129666a69513525d87ebf321c39643 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Feb 2025 20:12:04 +0100 Subject: [PATCH 101/178] build(deps): bump the pip-production-dependencies group across 2 directories with 15 updates (#1996) Bumps the pip-production-dependencies group with 15 updates in the /src directory: | Package | From | To | | --- | --- | --- | | [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.1.31` | | [locust](https://github.com/locustio/locust) | `2.32.6` | `2.32.8` | | [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.29.0` | `1.30.0` | | [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.29.0` | `1.30.0` | | [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.29.0` | `1.30.0` | | [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.29.0` | `1.30.0` | | [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.50b0` | `0.51b0` | | [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [openfeature-sdk](https://github.com/open-feature/python-sdk) | `0.7.4` | `0.7.5` | | [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | Bumps the pip-production-dependencies group with 14 updates in the /src/load-generator directory: | Package | From | To | | --- | --- | --- | | [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.1.31` | | [locust](https://github.com/locustio/locust) | `2.32.6` | `2.32.8` | | [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.29.0` | `1.30.0` | | [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.29.0` | `1.30.0` | | [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [opentelemetry-instrumentation-jinja2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.29.0` | `1.30.0` | | [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.29.0` | `1.30.0` | | [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.50b0` | `0.51b0` | | [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.50b0` | `0.51b0` | | [openfeature-sdk](https://github.com/open-feature/python-sdk) | `0.7.4` | `0.7.5` | Updates `certifi` from 2024.12.14 to 2025.1.31 - [Commits](https://github.com/certifi/python-certifi/compare/2024.12.14...2025.01.31) Updates `locust` from 2.32.6 to 2.32.8 - [Release notes](https://github.com/locustio/locust/releases) - [Changelog](https://github.com/locustio/locust/blob/master/CHANGELOG.md) - [Commits](https://github.com/locustio/locust/compare/2.32.6...2.32.8) Updates `opentelemetry-api` from 1.29.0 to 1.30.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.29.0...v1.30.0) Updates `opentelemetry-exporter-otlp-proto-grpc` from 1.29.0 to 1.30.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.29.0...v1.30.0) Updates `opentelemetry-instrumentation` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-jinja2` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-requests` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-system-metrics` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-urllib3` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-proto` from 1.29.0 to 1.30.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.29.0...v1.30.0) Updates `opentelemetry-sdk` from 1.29.0 to 1.30.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.29.0...v1.30.0) Updates `opentelemetry-semantic-conventions` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/commits) Updates `opentelemetry-util-http` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `openfeature-sdk` from 0.7.4 to 0.7.5 - [Release notes](https://github.com/open-feature/python-sdk/releases) - [Changelog](https://github.com/open-feature/python-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/python-sdk/compare/v0.7.4...v0.7.5) Updates `opentelemetry-distro` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `certifi` from 2024.12.14 to 2025.1.31 - [Commits](https://github.com/certifi/python-certifi/compare/2024.12.14...2025.01.31) Updates `locust` from 2.32.6 to 2.32.8 - [Release notes](https://github.com/locustio/locust/releases) - [Changelog](https://github.com/locustio/locust/blob/master/CHANGELOG.md) - [Commits](https://github.com/locustio/locust/compare/2.32.6...2.32.8) Updates `opentelemetry-api` from 1.29.0 to 1.30.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.29.0...v1.30.0) Updates `opentelemetry-exporter-otlp-proto-grpc` from 1.29.0 to 1.30.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.29.0...v1.30.0) Updates `opentelemetry-instrumentation` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-jinja2` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-requests` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-system-metrics` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-urllib3` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-proto` from 1.29.0 to 1.30.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.29.0...v1.30.0) Updates `opentelemetry-sdk` from 1.29.0 to 1.30.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.29.0...v1.30.0) Updates `opentelemetry-semantic-conventions` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/commits) Updates `opentelemetry-util-http` from 0.50b0 to 0.51b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `openfeature-sdk` from 0.7.4 to 0.7.5 - [Release notes](https://github.com/open-feature/python-sdk/releases) - [Changelog](https://github.com/open-feature/python-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/python-sdk/compare/v0.7.4...v0.7.5) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: locust dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: opentelemetry-api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-exporter-otlp-proto-grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-jinja2 dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-requests dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-system-metrics dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-urllib3 dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-proto dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-semantic-conventions dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-util-http dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: openfeature-sdk dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: opentelemetry-distro dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: certifi dependency-type: direct:production update-type: version-update:semver-major dependency-group: pip-production-dependencies - dependency-name: locust dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: opentelemetry-api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-exporter-otlp-proto-grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-jinja2 dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-requests dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-system-metrics dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-instrumentation-urllib3 dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-proto dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: opentelemetry-semantic-conventions dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: opentelemetry-util-http dependency-type: direct:production dependency-group: pip-production-dependencies - dependency-name: openfeature-sdk dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/load-generator/requirements.txt | 28 ++++++++++++++-------------- src/recommendation/requirements.txt | 6 +++--- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/load-generator/requirements.txt b/src/load-generator/requirements.txt index a371e42b1e..366434fe0a 100644 --- a/src/load-generator/requirements.txt +++ b/src/load-generator/requirements.txt @@ -1,6 +1,6 @@ backoff==2.2.1 brotli==1.1.0 -certifi==2024.12.14 +certifi==2025.1.31 charset-normalizer==3.4.1 click==8.1.8 configargparse==1.7 @@ -15,22 +15,22 @@ greenlet==3.1.1 idna==3.10 itsdangerous==2.2.0 jinja2==3.1.5 -locust==2.32.6 +locust==2.32.8 locust-plugins[playwright]==4.5.3 markupsafe==3.0.2 msgpack==1.1.0 -opentelemetry-api==1.29.0 -opentelemetry-exporter-otlp-proto-grpc==1.29.0 -opentelemetry-instrumentation==0.50b0 -opentelemetry-instrumentation-jinja2==0.50b0 -opentelemetry-instrumentation-requests==0.50b0 -opentelemetry-instrumentation-system-metrics==0.50b0 -opentelemetry-instrumentation-urllib3==0.50b0 -opentelemetry-proto==1.29.0 -opentelemetry-sdk==1.29.0 -opentelemetry-semantic-conventions==0.50b0 -opentelemetry-util-http==0.50b0 -openfeature-sdk==0.7.4 +opentelemetry-api==1.30.0 +opentelemetry-exporter-otlp-proto-grpc==1.30.0 +opentelemetry-instrumentation==0.51b0 +opentelemetry-instrumentation-jinja2==0.51b0 +opentelemetry-instrumentation-requests==0.51b0 +opentelemetry-instrumentation-system-metrics==0.51b0 +opentelemetry-instrumentation-urllib3==0.51b0 +opentelemetry-proto==1.30.0 +opentelemetry-sdk==1.30.0 +opentelemetry-semantic-conventions==0.51b0 +opentelemetry-util-http==0.51b0 +openfeature-sdk==0.7.5 openfeature-provider-flagd==0.1.5 openfeature-hooks-opentelemetry==0.1.3 protobuf==5.29.3 diff --git a/src/recommendation/requirements.txt b/src/recommendation/requirements.txt index 43d60d8dce..6795d39373 100644 --- a/src/recommendation/requirements.txt +++ b/src/recommendation/requirements.txt @@ -1,10 +1,10 @@ grpcio-health-checking==1.70.0 grpcio==1.70.0 -opentelemetry-distro==0.50b0 -opentelemetry-exporter-otlp-proto-grpc==1.29.0 +opentelemetry-distro==0.51b0 +opentelemetry-exporter-otlp-proto-grpc==1.30.0 python-dotenv==1.0.1 python-json-logger==3.2.1 -openfeature-sdk==0.7.4 +openfeature-sdk==0.7.5 openfeature-provider-flagd==0.1.5 openfeature-hooks-opentelemetry==0.1.3 psutil==6.1.1 # Importing this will also import opentelemetry-instrumentation-system-metrics when running opentelemetry-bootstrap From 83fef19ef71bf490452310fd90dfe113316af9a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Feb 2025 20:37:41 +0100 Subject: [PATCH 102/178] build(deps): bump the nuget-production-dependencies group across 2 directories with 1 update (#1997) Bumps the nuget-production-dependencies group with 1 update in the /src/cart/src directory: [OpenFeature](https://github.com/open-feature/dotnet-sdk). Bumps the nuget-production-dependencies group with 1 update in the /src/cart/tests directory: [OpenFeature](https://github.com/open-feature/dotnet-sdk). Updates `OpenFeature` from 2.2.0 to 2.3.1 - [Release notes](https://github.com/open-feature/dotnet-sdk/releases) - [Changelog](https://github.com/open-feature/dotnet-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/dotnet-sdk/compare/v2.2.0...v2.3.1) Updates `OpenFeature` from 2.2.0 to 2.3.1 - [Release notes](https://github.com/open-feature/dotnet-sdk/releases) - [Changelog](https://github.com/open-feature/dotnet-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/dotnet-sdk/compare/v2.2.0...v2.3.1) --- updated-dependencies: - dependency-name: OpenFeature dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: OpenFeature dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/cart/src/cart.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cart/src/cart.csproj b/src/cart/src/cart.csproj index fbdab6c588..33ae586d5b 100644 --- a/src/cart/src/cart.csproj +++ b/src/cart/src/cart.csproj @@ -30,7 +30,7 @@ - + From c884acc8b5457b445dea8a2ee7ec0201a5575dc4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Feb 2025 21:05:07 +0100 Subject: [PATCH 103/178] build(deps): bump the go-production-dependencies group across 2 directories with 1 update (#2001) * build(deps): bump the go-production-dependencies group across 2 directories with 1 update Bumps the go-production-dependencies group with 1 update in the /src/checkout directory: google.golang.org/protobuf. Bumps the go-production-dependencies group with 1 update in the /src/product-catalog directory: google.golang.org/protobuf. Updates `google.golang.org/protobuf` from 1.36.4 to 1.36.5 Updates `google.golang.org/protobuf` from 1.36.4 to 1.36.5 --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] * chore: update protobuf Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/checkout/genproto/oteldemo/demo.pb.go | 2 +- src/checkout/go.mod | 2 +- src/checkout/go.sum | 4 ++-- src/product-catalog/genproto/oteldemo/demo.pb.go | 2 +- src/product-catalog/go.mod | 2 +- src/product-catalog/go.sum | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/checkout/genproto/oteldemo/demo.pb.go b/src/checkout/genproto/oteldemo/demo.pb.go index 2fce7ef1bf..0ccac30cc5 100644 --- a/src/checkout/genproto/oteldemo/demo.pb.go +++ b/src/checkout/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.4 +// protoc-gen-go v1.36.5 // protoc v4.24.4 // source: demo.proto diff --git a/src/checkout/go.mod b/src/checkout/go.mod index 4b6f849766..040b36557f 100644 --- a/src/checkout/go.mod +++ b/src/checkout/go.mod @@ -22,7 +22,7 @@ require ( go.opentelemetry.io/otel/trace v1.34.0 google.golang.org/grpc v1.70.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.36.4 + google.golang.org/protobuf v1.36.5 ) require ( diff --git a/src/checkout/go.sum b/src/checkout/go.sum index 4b16198be1..d5baba9232 100644 --- a/src/checkout/go.sum +++ b/src/checkout/go.sum @@ -265,8 +265,8 @@ google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ= google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM= -google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/src/product-catalog/genproto/oteldemo/demo.pb.go b/src/product-catalog/genproto/oteldemo/demo.pb.go index 2fce7ef1bf..0ccac30cc5 100644 --- a/src/product-catalog/genproto/oteldemo/demo.pb.go +++ b/src/product-catalog/genproto/oteldemo/demo.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.4 +// protoc-gen-go v1.36.5 // protoc v4.24.4 // source: demo.proto diff --git a/src/product-catalog/go.mod b/src/product-catalog/go.mod index 9df73a2330..1d03fc1136 100644 --- a/src/product-catalog/go.mod +++ b/src/product-catalog/go.mod @@ -19,7 +19,7 @@ require ( go.opentelemetry.io/otel/trace v1.34.0 google.golang.org/grpc v1.70.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.36.4 + google.golang.org/protobuf v1.36.5 ) require ( diff --git a/src/product-catalog/go.sum b/src/product-catalog/go.sum index 1ba7ca1229..7bbe326cd6 100644 --- a/src/product-catalog/go.sum +++ b/src/product-catalog/go.sum @@ -193,8 +193,8 @@ google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ= google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM= -google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 49488a94739b15baa7546d7f35f6d0a0f07f5c13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Feb 2025 21:09:58 +0100 Subject: [PATCH 104/178] build(deps): bump the composer-production-dependencies group across 1 directory with 2 updates (#2002) Updates the requirements on [open-telemetry/api](https://github.com/opentelemetry-php/api) and [open-telemetry/sdk](https://github.com/opentelemetry-php/sdk) to permit the latest version. Updates `open-telemetry/api` to 1.2.2 - [Release notes](https://github.com/opentelemetry-php/api/releases) - [Commits](https://github.com/opentelemetry-php/api/compare/1.2.1...1.2.2) Updates `open-telemetry/sdk` to 1.2.2 - [Release notes](https://github.com/opentelemetry-php/sdk/releases) - [Commits](https://github.com/opentelemetry-php/sdk/compare/1.2.1...1.2.2) --- updated-dependencies: - dependency-name: open-telemetry/api dependency-type: direct:production dependency-group: composer-production-dependencies - dependency-name: open-telemetry/sdk dependency-type: direct:production dependency-group: composer-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/quote/composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/quote/composer.json b/src/quote/composer.json index 36161781b0..3c83afac93 100644 --- a/src/quote/composer.json +++ b/src/quote/composer.json @@ -7,8 +7,8 @@ "ext-json": "*", "ext-pcntl": "*", "monolog/monolog": "3.8.1", - "open-telemetry/api": "1.2.1", - "open-telemetry/sdk": "1.2.1", + "open-telemetry/api": "1.2.2", + "open-telemetry/sdk": "1.2.2", "open-telemetry/exporter-otlp": "1.2.0", "open-telemetry/opentelemetry-auto-slim": "1.0.7", "open-telemetry/detector-container": "1.0.0", From 873215c5ee7c051312c8bacaabd986dedc4e92a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Feb 2025 21:27:18 +0100 Subject: [PATCH 105/178] build(deps): bump the npm-production-dependencies group across 1 directory with 3 updates (#2003) Bumps the npm-production-dependencies group with 3 updates in the /src/frontend directory: [@grpc/grpc-js](https://github.com/grpc/grpc-node), [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) and [styled-components](https://github.com/styled-components/styled-components). Updates `@grpc/grpc-js` from 1.12.5 to 1.12.6 - [Release notes](https://github.com/grpc/grpc-node/releases) - [Commits](https://github.com/grpc/grpc-node/compare/@grpc/grpc-js@1.12.5...@grpc/grpc-js@1.12.6) Updates `@tanstack/react-query` from 5.65.1 to 5.66.0 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.66.0/packages/react-query) Updates `styled-components` from 6.1.14 to 6.1.15 - [Release notes](https://github.com/styled-components/styled-components/releases) - [Commits](https://github.com/styled-components/styled-components/compare/styled-components@6.1.14...styled-components@6.1.15) --- updated-dependencies: - dependency-name: "@grpc/grpc-js" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: styled-components dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/frontend/package-lock.json | 44 +++++++++++++++++----------------- src/frontend/package.json | 6 ++--- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 17504f0544..dd6200fcfe 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.0", "dependencies": { "@bufbuild/protobuf": "^2.2.3", - "@grpc/grpc-js": "1.12.5", + "@grpc/grpc-js": "1.12.6", "@openfeature/flagd-provider": "0.13.2", "@openfeature/flagd-web-provider": "0.7.2", "@openfeature/react-sdk": "0.4.10", @@ -32,7 +32,7 @@ "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.65.1", + "@tanstack/react-query": "5.66.0", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", @@ -41,7 +41,7 @@ "react": "19.0.0", "react-dom": "19.0.0", "sharp": "0.33.5", - "styled-components": "6.1.14", + "styled-components": "6.1.15", "uuid": "11.0.5" }, "devDependencies": { @@ -384,9 +384,9 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.12.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz", - "integrity": "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==", + "version": "1.12.6", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.6.tgz", + "integrity": "sha512-JXUj6PI0oqqzTGvKtzOkxtpsyPRNsrmhh41TtIz/zEB6J+AUiZZ0dxWzcMwO9Ns5rmSPuMdghlTbUuqIM48d3Q==", "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.13", @@ -2803,9 +2803,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.65.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.65.0.tgz", - "integrity": "sha512-Bnnq/1axf00r2grRT6gUyIkZRKzhHs+p4DijrCQ3wMlA3D3TTT71gtaSLtqnzGddj73/7X5JDGyjiSLdjvQN4w==", + "version": "5.66.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.66.0.tgz", + "integrity": "sha512-J+JeBtthiKxrpzUu7rfIPDzhscXF2p5zE/hVdrqkACBP8Yu0M96mwJ5m/8cPPYQE9aRNvXztXHlNwIh4FEeMZw==", "license": "MIT", "funding": { "type": "github", @@ -2813,12 +2813,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.65.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.65.1.tgz", - "integrity": "sha512-BSpjo4RQdJ75Mw3pqM1AJYNhanNxJE3ct7RmCZUAv9cUJg/Qmonzc/Xy2kKXeQA1InuKATSuc6pOZciWOF8TYQ==", + "version": "5.66.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.0.tgz", + "integrity": "sha512-z3sYixFQJe8hndFnXgWu7C79ctL+pI0KAelYyW+khaNJ1m22lWrhJU2QrsTcRKMuVPtoZvfBYrTStIdKo+x0Xw==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.65.0" + "@tanstack/query-core": "5.66.0" }, "funding": { "type": "github", @@ -8758,9 +8758,9 @@ } }, "node_modules/styled-components": { - "version": "6.1.14", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.14.tgz", - "integrity": "sha512-KtfwhU5jw7UoxdM0g6XU9VZQFV4do+KrM8idiVCH5h4v49W+3p3yMe0icYwJgZQZepa5DbH04Qv8P0/RdcLcgg==", + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.15.tgz", + "integrity": "sha512-PpOTEztW87Ua2xbmLa7yssjNyUF9vE7wdldRfn1I2E6RTkqknkBYpj771OxM/xrvRGinLy2oysa7GOd7NcZZIA==", "license": "MIT", "dependencies": { "@emotion/is-prop-valid": "1.2.2", @@ -8768,7 +8768,7 @@ "@types/stylis": "4.2.5", "css-to-react-native": "3.2.0", "csstype": "3.1.3", - "postcss": "8.4.38", + "postcss": "8.4.49", "shallowequal": "1.1.0", "stylis": "4.3.2", "tslib": "2.6.2" @@ -8786,9 +8786,9 @@ } }, "node_modules/styled-components/node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "funding": [ { "type": "opencollective", @@ -8806,8 +8806,8 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" diff --git a/src/frontend/package.json b/src/frontend/package.json index da2bb568b6..af374f2b62 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@bufbuild/protobuf": "^2.2.3", - "@grpc/grpc-js": "1.12.5", + "@grpc/grpc-js": "1.12.6", "@openfeature/flagd-provider": "0.13.2", "@openfeature/flagd-web-provider": "0.7.2", "@openfeature/react-sdk": "0.4.10", @@ -35,7 +35,7 @@ "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.65.1", + "@tanstack/react-query": "5.66.0", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", @@ -44,7 +44,7 @@ "react": "19.0.0", "react-dom": "19.0.0", "sharp": "0.33.5", - "styled-components": "6.1.14", + "styled-components": "6.1.15", "uuid": "11.0.5" }, "devDependencies": { From 0f43a6e771e91805fb64b63fa441dae62958dcc7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Feb 2025 04:08:45 +0100 Subject: [PATCH 106/178] build(deps): bump the npm-development-dependencies group across 3 directories with 6 updates (#2005) Bumps the npm-development-dependencies group with 4 updates in the /src/flagd-ui directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss), [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Bumps the npm-development-dependencies group with 5 updates in the /src/frontend directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.12.0` | `22.13.1` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.22.0` | `8.23.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.22.0` | `8.23.0` | | [cypress](https://github.com/cypress-io/cypress) | `14.0.1` | `14.0.2` | | [openapi-typescript](https://github.com/openapi-ts/openapi-typescript/tree/HEAD/packages/openapi-typescript) | `7.6.0` | `7.6.1` | Bumps the npm-development-dependencies group with 1 update in the /src/payment directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Updates `@types/node` from 22.12.0 to 22.13.1 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `tailwindcss` from 4.0.1 to 4.0.4 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.0.4/packages/tailwindcss) Updates `@typescript-eslint/eslint-plugin` from 8.22.0 to 8.23.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.23.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.22.0 to 8.23.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.23.0/packages/parser) Updates `@types/node` from 22.12.0 to 22.13.1 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@typescript-eslint/eslint-plugin` from 8.22.0 to 8.23.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.23.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.22.0 to 8.23.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.23.0/packages/parser) Updates `cypress` from 14.0.1 to 14.0.2 - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v14.0.1...v14.0.2) Updates `openapi-typescript` from 7.6.0 to 7.6.1 - [Release notes](https://github.com/openapi-ts/openapi-typescript/releases) - [Changelog](https://github.com/openapi-ts/openapi-typescript/blob/main/packages/openapi-typescript/CHANGELOG.md) - [Commits](https://github.com/openapi-ts/openapi-typescript/commits/openapi-typescript@7.6.1/packages/openapi-typescript) Updates `@types/node` from 22.12.0 to 22.13.1 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: tailwindcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: cypress dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: openapi-typescript dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/flagd-ui/package-lock.json | 124 +++++++++++++++------------ src/flagd-ui/package.json | 2 +- src/frontend/package-lock.json | 151 ++++++++++++++++----------------- src/frontend/package.json | 10 +-- src/payment/package-lock.json | 6 +- 5 files changed, 153 insertions(+), 140 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index ba6f214140..36cc34dca1 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -26,7 +26,7 @@ "postcss": "^8.5.1", "prettier": "^3.4.2", "prettier-plugin-tailwindcss": "^0.6.11", - "tailwindcss": "^4.0.0", + "tailwindcss": "^4.0.4", "typescript": "^5" } }, @@ -1066,6 +1066,12 @@ "tailwindcss": "4.0.1" } }, + "node_modules/@tailwindcss/node/node_modules/tailwindcss": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.1.tgz", + "integrity": "sha512-UK5Biiit/e+r3i0O223bisoS5+y7ZT1PM8Ojn0MxRHzXN1VPZ2KY6Lo6fhu1dOfCfyUAlK7Lt6wSxowRabATBw==", + "license": "MIT" + }, "node_modules/@tailwindcss/oxide": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.1.tgz", @@ -1278,6 +1284,12 @@ "tailwindcss": "4.0.1" } }, + "node_modules/@tailwindcss/postcss/node_modules/tailwindcss": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.1.tgz", + "integrity": "sha512-UK5Biiit/e+r3i0O223bisoS5+y7ZT1PM8Ojn0MxRHzXN1VPZ2KY6Lo6fhu1dOfCfyUAlK7Lt6wSxowRabATBw==", + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -1303,9 +1315,9 @@ } }, "node_modules/@types/node": { - "version": "22.12.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", - "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", + "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", "dev": true, "license": "MIT", "dependencies": { @@ -1339,21 +1351,21 @@ "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.22.0.tgz", - "integrity": "sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.23.0.tgz", + "integrity": "sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.22.0", - "@typescript-eslint/type-utils": "8.22.0", - "@typescript-eslint/utils": "8.22.0", - "@typescript-eslint/visitor-keys": "8.22.0", + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/type-utils": "8.23.0", + "@typescript-eslint/utils": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1369,16 +1381,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.22.0.tgz", - "integrity": "sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.23.0.tgz", + "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.22.0", - "@typescript-eslint/types": "8.22.0", - "@typescript-eslint/typescript-estree": "8.22.0", - "@typescript-eslint/visitor-keys": "8.22.0", + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/typescript-estree": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", "debug": "^4.3.4" }, "engines": { @@ -1394,14 +1406,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.22.0.tgz", - "integrity": "sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz", + "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.22.0", - "@typescript-eslint/visitor-keys": "8.22.0" + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1412,16 +1424,16 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.22.0.tgz", - "integrity": "sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.23.0.tgz", + "integrity": "sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.22.0", - "@typescript-eslint/utils": "8.22.0", + "@typescript-eslint/typescript-estree": "8.23.0", + "@typescript-eslint/utils": "8.23.0", "debug": "^4.3.4", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1436,9 +1448,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.22.0.tgz", - "integrity": "sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", + "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", "dev": true, "license": "MIT", "engines": { @@ -1450,20 +1462,20 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.22.0.tgz", - "integrity": "sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", + "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.22.0", - "@typescript-eslint/visitor-keys": "8.22.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1503,16 +1515,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.22.0.tgz", - "integrity": "sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz", + "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.22.0", - "@typescript-eslint/types": "8.22.0", - "@typescript-eslint/typescript-estree": "8.22.0" + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/typescript-estree": "8.23.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1527,13 +1539,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.22.0.tgz", - "integrity": "sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", + "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/types": "8.23.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -5403,9 +5415,10 @@ } }, "node_modules/tailwindcss": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.1.tgz", - "integrity": "sha512-UK5Biiit/e+r3i0O223bisoS5+y7ZT1PM8Ojn0MxRHzXN1VPZ2KY6Lo6fhu1dOfCfyUAlK7Lt6wSxowRabATBw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.4.tgz", + "integrity": "sha512-/ezDLEkOLf1lXkr9F2iI5BHJbexJpty5zkV2B8bGHCqAdbc9vk85Jgdkq+ZOvNkNPa3yAaqJ8DjRt584Bc84kw==", + "dev": true, "license": "MIT" }, "node_modules/tapable": { @@ -5429,10 +5442,11 @@ } }, "node_modules/ts-api-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", - "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", "dev": true, + "license": "MIT", "engines": { "node": ">=18.12" }, diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 7046ae47ea..855a60d418 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -27,7 +27,7 @@ "postcss": "^8.5.1", "prettier": "^3.4.2", "prettier-plugin-tailwindcss": "^0.6.11", - "tailwindcss": "^4.0.0", + "tailwindcss": "^4.0.4", "typescript": "^5" } } diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index dd6200fcfe..79f58861ce 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -45,19 +45,19 @@ "uuid": "11.0.5" }, "devDependencies": { - "@types/node": "22.12.0", + "@types/node": "22.13.1", "@types/react": "19.0.8", "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.22.0", - "@typescript-eslint/parser": "8.22.0", - "cypress": "14.0.1", + "@typescript-eslint/eslint-plugin": "8.23.0", + "@typescript-eslint/parser": "8.23.0", + "cypress": "14.0.2", "eslint": "9.19.0", "eslint-config-next": "15.1.6", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", - "openapi-typescript": "7.6.0", + "openapi-typescript": "7.6.1", "ts-proto": "2.6.1", "typescript": "5.7.3" } @@ -2724,33 +2724,32 @@ } }, "node_modules/@redocly/config": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.20.1.tgz", - "integrity": "sha512-TYiTDtuItiv95YMsrRxyCs1HKLrDPtTvpaD3+kDKXBnFDeJuYKZ+eHXpCr6YeN4inxfVBs7DLhHsQcs9srddyQ==", + "version": "0.20.3", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.20.3.tgz", + "integrity": "sha512-Nyyv1Bj7GgYwj/l46O0nkH1GTKWbO3Ixe7KFcn021aZipkZd+z8Vlu1BwkhqtVgivcKaClaExtWU/lDHkjBzag==", "dev": true, "license": "MIT" }, "node_modules/@redocly/openapi-core": { - "version": "1.27.2", - "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.27.2.tgz", - "integrity": "sha512-qVrDc27DHpeO2NRCMeRdb4299nijKQE3BY0wrA+WUHlOLScorIi/y7JzammLk22IaTvjR9Mv9aTAdjE1aUwJnA==", + "version": "1.28.3", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.28.3.tgz", + "integrity": "sha512-PtUnjtU9rYA+72PlN3MiR/J++PQI0q6AMV7hIHJQmtsEMtB1OU8l3duT5Txkpc6JJi7deHg66UpzVznImz3OCw==", "dev": true, "license": "MIT", "dependencies": { "@redocly/ajv": "^8.11.2", "@redocly/config": "^0.20.1", "colorette": "^1.2.0", - "https-proxy-agent": "^7.0.4", + "https-proxy-agent": "^7.0.5", "js-levenshtein": "^1.1.6", "js-yaml": "^4.1.0", "minimatch": "^5.0.1", - "node-fetch": "^2.6.1", "pluralize": "^8.0.0", "yaml-ast-parser": "0.0.43" }, "engines": { - "node": ">=14.19.0", - "npm": ">=7.0.0" + "node": ">=18.17.0", + "npm": ">=9.5.0" } }, "node_modules/@redocly/openapi-core/node_modules/colorette": { @@ -2903,9 +2902,9 @@ } }, "node_modules/@types/node": { - "version": "22.12.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", - "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", + "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -3017,21 +3016,21 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.22.0.tgz", - "integrity": "sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.23.0.tgz", + "integrity": "sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.22.0", - "@typescript-eslint/type-utils": "8.22.0", - "@typescript-eslint/utils": "8.22.0", - "@typescript-eslint/visitor-keys": "8.22.0", + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/type-utils": "8.23.0", + "@typescript-eslint/utils": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3047,16 +3046,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.22.0.tgz", - "integrity": "sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.23.0.tgz", + "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.22.0", - "@typescript-eslint/types": "8.22.0", - "@typescript-eslint/typescript-estree": "8.22.0", - "@typescript-eslint/visitor-keys": "8.22.0", + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/typescript-estree": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", "debug": "^4.3.4" }, "engines": { @@ -3072,14 +3071,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.22.0.tgz", - "integrity": "sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz", + "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.22.0", - "@typescript-eslint/visitor-keys": "8.22.0" + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3090,16 +3089,16 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.22.0.tgz", - "integrity": "sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.23.0.tgz", + "integrity": "sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.22.0", - "@typescript-eslint/utils": "8.22.0", + "@typescript-eslint/typescript-estree": "8.23.0", + "@typescript-eslint/utils": "8.23.0", "debug": "^4.3.4", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3114,9 +3113,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.22.0.tgz", - "integrity": "sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", + "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", "dev": true, "license": "MIT", "engines": { @@ -3128,20 +3127,20 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.22.0.tgz", - "integrity": "sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", + "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.22.0", - "@typescript-eslint/visitor-keys": "8.22.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3155,9 +3154,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, "license": "ISC", "bin": { @@ -3168,16 +3167,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.22.0.tgz", - "integrity": "sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz", + "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.22.0", - "@typescript-eslint/types": "8.22.0", - "@typescript-eslint/typescript-estree": "8.22.0" + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/typescript-estree": "8.23.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3192,13 +3191,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.22.0.tgz", - "integrity": "sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", + "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/types": "8.23.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -4220,9 +4219,9 @@ "license": "BSD-2-Clause" }, "node_modules/cypress": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.0.1.tgz", - "integrity": "sha512-gBAvKZE3f6eBaW1v8OtrwAFP90rjNZjjOO40M2KvOvmwVXk96Ps5Yjyck1EzGkXmNCaC/8kXFOY/1KD/wsaWpQ==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.0.2.tgz", + "integrity": "sha512-3qqTU2JoVY262qkYg9I2nohwxcfsJk0dSVp/LXAjD94Jz2y6411Mf/l5uHEHiaANrOmMcHbzYgOd/ueDsZlS7A==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -7456,13 +7455,13 @@ } }, "node_modules/openapi-typescript": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.6.0.tgz", - "integrity": "sha512-p/xxKcWFR7aZDOAdnqYBQ1NdNyWdine+gHKHKvjxGXmlq8JT1G9+SkY8I5csKaktLHMbDDH6ZDeWQpydwBHa+Q==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.6.1.tgz", + "integrity": "sha512-F7RXEeo/heF3O9lOXo2bNjCOtfp7u+D6W3a3VNEH2xE6v+fxLtn5nq0uvUcA1F5aT+CMhNeC5Uqtg5tlXFX/ag==", "dev": true, "license": "MIT", "dependencies": { - "@redocly/openapi-core": "^1.27.2", + "@redocly/openapi-core": "^1.28.0", "ansi-colors": "^4.1.3", "change-case": "^5.4.4", "parse-json": "^8.1.0", @@ -8976,9 +8975,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", - "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", "dev": true, "license": "MIT", "engines": { diff --git a/src/frontend/package.json b/src/frontend/package.json index af374f2b62..76fb963c8e 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -48,19 +48,19 @@ "uuid": "11.0.5" }, "devDependencies": { - "@types/node": "22.12.0", + "@types/node": "22.13.1", "@types/react": "19.0.8", "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.22.0", - "@typescript-eslint/parser": "8.22.0", - "cypress": "14.0.1", + "@typescript-eslint/eslint-plugin": "8.23.0", + "@typescript-eslint/parser": "8.23.0", + "cypress": "14.0.2", "eslint": "9.19.0", "eslint-config-next": "15.1.6", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", - "openapi-typescript": "7.6.0", + "openapi-typescript": "7.6.1", "ts-proto": "2.6.1", "typescript": "5.7.3" } diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index 7c7ee9215b..5fe8555dd8 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -1510,9 +1510,9 @@ } }, "node_modules/@types/node": { - "version": "22.12.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", - "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", + "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" From 5eb5426ba3c151ccab67801e086bb481b97dbaca Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Fri, 7 Feb 2025 01:45:37 -0500 Subject: [PATCH 107/178] [grafana] add description panel to dashboards (#1989) * add description panel to dashboards * Update src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json Co-authored-by: Mikko Viitanen <74129181+mviitane@users.noreply.github.com> --------- Co-authored-by: Mikko Viitanen <74129181+mviitane@users.noreply.github.com> Co-authored-by: Juliano Costa --- .../dashboards/demo/demo-dashboard.json | 79 ++++--- .../dashboards/demo/exemplars-dashboard.json | 212 ++++++++++-------- .../opentelemetry-collector-data-flow.json | 170 +++++++------- .../demo/opentelemetry-collector.json | 130 ++++++----- .../demo/spanmetrics-dashboard.json | 70 ++++-- 5 files changed, 378 insertions(+), 283 deletions(-) diff --git a/src/grafana/provisioning/dashboards/demo/demo-dashboard.json b/src/grafana/provisioning/dashboards/demo/demo-dashboard.json index e32fc40cbb..46814412e7 100644 --- a/src/grafana/provisioning/dashboards/demo/demo-dashboard.json +++ b/src/grafana/provisioning/dashboards/demo/demo-dashboard.json @@ -24,16 +24,41 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 2, + "id": 4, "links": [], "panels": [ + { + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 21, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "This dashboard shows RED metrics for the selected service, as generated by the spanmetrics connector in the OpenTelemetry Collector.\nIf the selected service emits logs, the logs will also be displayed.\nCustom metrics generated by some services are also displayed.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "mode": "html" + }, + "pluginVersion": "11.4.0", + "title": "", + "type": "text" + }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 0 + "y": 2 }, "id": 14, "panels": [], @@ -106,7 +131,7 @@ "h": 8, "w": 12, "x": 0, - "y": 1 + "y": 3 }, "id": 2, "interval": "2m", @@ -122,7 +147,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -244,7 +269,7 @@ "h": 8, "w": 12, "x": 12, - "y": 1 + "y": 3 }, "id": 10, "interval": "2m", @@ -260,7 +285,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -343,7 +368,7 @@ "h": 8, "w": 12, "x": 0, - "y": 9 + "y": 11 }, "id": 12, "interval": "2m", @@ -359,7 +384,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -382,7 +407,7 @@ "h": 1, "w": 24, "x": 0, - "y": 17 + "y": 19 }, "id": 19, "panels": [], @@ -441,7 +466,7 @@ "h": 8, "w": 4, "x": 0, - "y": 18 + "y": 20 }, "id": 20, "options": { @@ -456,7 +481,7 @@ }, "showHeader": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "alias": "", @@ -541,7 +566,7 @@ "h": 8, "w": 20, "x": 4, - "y": 18 + "y": 20 }, "id": 17, "options": { @@ -562,7 +587,7 @@ } ] }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "alias": "", @@ -603,7 +628,7 @@ "h": 1, "w": 24, "x": 0, - "y": 26 + "y": 28 }, "id": 18, "panels": [], @@ -658,8 +683,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -675,7 +699,7 @@ "h": 8, "w": 12, "x": 0, - "y": 27 + "y": 29 }, "id": 6, "options": { @@ -779,8 +803,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -796,7 +819,7 @@ "h": 8, "w": 12, "x": 12, - "y": 27 + "y": 29 }, "id": 8, "options": { @@ -885,8 +908,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -901,7 +923,7 @@ "h": 8, "w": 12, "x": 0, - "y": 35 + "y": 37 }, "id": 4, "options": { @@ -982,8 +1004,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -998,7 +1019,7 @@ "h": 8, "w": 12, "x": 12, - "y": 35 + "y": 37 }, "id": 16, "interval": "2m", @@ -1022,7 +1043,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "rate(otel_trace_span_processor_spans{job=\"opentelemetry-demo/quote\"}[2m])*120", + "expr": "rate(otel_trace_span_processor_spans{job=\"quote\"}[2m])*120", "interval": "2m", "legendFormat": "{{state}}", "range": true, @@ -1071,6 +1092,6 @@ "timezone": "", "title": "Demo Dashboard", "uid": "W2gX2zHVk", - "version": 1, + "version": 2, "weekStart": "" -} +} \ No newline at end of file diff --git a/src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json b/src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json index 9d8ed82061..6ac22bc780 100644 --- a/src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json +++ b/src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json @@ -21,19 +21,126 @@ "id": 5, "links": [], "panels": [ + { + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 8, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "This dashboard shows the use of metric exemplars.\nExemplars can be used to look up a trace in Jaeger.\nOnly the most recent exemplars may still be available in Jaeger.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "mode": "html" + }, + "pluginVersion": "11.4.0", + "title": "", + "type": "text" + }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 0 + "y": 2 }, "id": 4, "panels": [], "title": "GetCart Exemplars", "type": "row" }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + } + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 3 + }, + "id": 2, + "interval": "2m", + "options": { + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": false, + "scale": "exponential", + "scheme": "Spectral", + "steps": 64 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false + } + }, + "pluginVersion": "11.4.0", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": true, + "expr": "sum by(le) (rate(app_cart_get_cart_latency_bucket[$__rate_interval]))", + "format": "heatmap", + "fullMetaSearch": false, + "includeNullMetadata": false, + "instant": true, + "legendFormat": "{{le}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "GetCart Latency Heatmap with Exemplars", + "type": "heatmap" + }, { "datasource": { "type": "prometheus", @@ -98,7 +205,7 @@ "h": 10, "w": 24, "x": 0, - "y": 10 + "y": 12 }, "id": 5, "interval": "2m", @@ -114,7 +221,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -136,95 +243,13 @@ "title": "95th Pct Cart GetCart Latency with Exemplars", "type": "timeseries" }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - } - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 1 - }, - "id": 2, - "interval": "2m", - "options": { - "calculate": false, - "cellGap": 1, - "color": { - "exponent": 0.5, - "fill": "dark-orange", - "mode": "scheme", - "reverse": false, - "scale": "exponential", - "scheme": "Spectral", - "steps": 64 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-9 - }, - "legend": { - "show": true - }, - "rowsFrame": { - "layout": "auto" - }, - "tooltip": { - "mode": "single", - "showColorScale": false, - "yHistogram": false - }, - "yAxis": { - "axisPlacement": "left", - "reverse": false - } - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": true, - "expr": "sum by(le) (rate(app_cart_get_cart_latency_bucket[$__rate_interval]))", - "format": "heatmap", - "fullMetaSearch": false, - "includeNullMetadata": false, - "instant": true, - "legendFormat": "{{le}}", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "GetCart Latency Heatmap with Exemplars", - "type": "heatmap" - }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 20 + "y": 22 }, "id": 3, "panels": [], @@ -255,7 +280,7 @@ "h": 9, "w": 24, "x": 0, - "y": 21 + "y": 23 }, "id": 6, "interval": "2m", @@ -293,7 +318,7 @@ "reverse": false } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "disableTextWrap": false, @@ -361,8 +386,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -377,7 +401,7 @@ "h": 10, "w": 24, "x": 0, - "y": 30 + "y": 32 }, "id": 1, "interval": "2m", @@ -393,7 +417,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -430,6 +454,6 @@ "timezone": "browser", "title": "Cart Service Exemplars", "uid": "ce6sd46kfkglca", - "version": 1, + "version": 3, "weekStart": "" -} +} \ No newline at end of file diff --git a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json index 2a987af76b..fbcc7df945 100644 --- a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json +++ b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json @@ -25,16 +25,41 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 3, + "id": 6, "links": [], "panels": [ + { + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 56, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "This dashboard is used to understand the data flows for the OpenTelemetry Collector's metrics and traces pipelines.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "mode": "html" + }, + "pluginVersion": "11.4.0", + "title": "", + "type": "text" + }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 0 + "y": 2 }, "id": 8, "panels": [], @@ -73,7 +98,7 @@ "h": 4, "w": 3, "x": 0, - "y": 1 + "y": 3 }, "id": 6, "options": { @@ -93,7 +118,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -143,7 +168,7 @@ "h": 4, "w": 3, "x": 3, - "y": 1 + "y": 3 }, "id": 24, "options": { @@ -161,7 +186,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -211,7 +236,7 @@ "h": 4, "w": 3, "x": 6, - "y": 1 + "y": 3 }, "id": 38, "options": { @@ -229,7 +254,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -256,7 +281,7 @@ "h": 4, "w": 15, "x": 9, - "y": 1 + "y": 3 }, "id": 32, "options": { @@ -268,7 +293,7 @@ "content": "## Opentelemetry Collector Data Ingress/Egress\n\n`service_version:` ${service_version}\n\n`opentelemetry collector:` contrib\n\n", "mode": "markdown" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "title": "", "type": "text" }, @@ -278,7 +303,7 @@ "h": 1, "w": 24, "x": 0, - "y": 5 + "y": 7 }, "id": 10, "panels": [], @@ -335,7 +360,7 @@ "h": 19, "w": 3, "x": 0, - "y": 6 + "y": 8 }, "id": 55, "options": { @@ -353,7 +378,7 @@ "showThresholdMarkers": false, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -412,7 +437,7 @@ "h": 11, "w": 21, "x": 3, - "y": 6 + "y": 8 }, "id": 4, "options": { @@ -421,7 +446,7 @@ "mainStatUnit": "flops" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -486,7 +511,7 @@ "h": 5, "w": 5, "x": 3, - "y": 17 + "y": 19 }, "id": 12, "options": { @@ -506,7 +531,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -551,7 +576,7 @@ "h": 5, "w": 3, "x": 8, - "y": 17 + "y": 19 }, "id": 13, "options": { @@ -569,7 +594,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -619,7 +644,7 @@ "h": 5, "w": 5, "x": 11, - "y": 17 + "y": 19 }, "id": 15, "options": { @@ -640,7 +665,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -684,7 +709,7 @@ "h": 5, "w": 3, "x": 16, - "y": 17 + "y": 19 }, "id": 14, "options": { @@ -702,7 +727,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -751,7 +776,7 @@ "h": 5, "w": 5, "x": 19, - "y": 17 + "y": 19 }, "id": 30, "options": { @@ -771,7 +796,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -820,7 +845,7 @@ "h": 3, "w": 5, "x": 3, - "y": 22 + "y": 24 }, "id": 17, "options": { @@ -840,7 +865,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -885,7 +910,7 @@ "h": 3, "w": 3, "x": 8, - "y": 22 + "y": 24 }, "id": 18, "options": { @@ -903,7 +928,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -948,7 +973,7 @@ "h": 3, "w": 3, "x": 16, - "y": 22 + "y": 24 }, "id": 19, "options": { @@ -966,7 +991,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -1015,7 +1040,7 @@ "h": 3, "w": 5, "x": 19, - "y": 22 + "y": 24 }, "id": 20, "options": { @@ -1035,7 +1060,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -1061,7 +1086,7 @@ "h": 1, "w": 24, "x": 0, - "y": 25 + "y": 27 }, "id": 22, "panels": [], @@ -1085,8 +1110,7 @@ "mode": "absolute", "steps": [ { - "color": "light-blue", - "value": null + "color": "light-blue" }, { "color": "semi-dark-red", @@ -1118,7 +1142,7 @@ "h": 19, "w": 3, "x": 0, - "y": 26 + "y": 28 }, "id": 54, "options": { @@ -1232,7 +1256,7 @@ "h": 11, "w": 21, "x": 3, - "y": 26 + "y": 28 }, "id": 25, "options": { @@ -1293,8 +1317,7 @@ "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] }, @@ -1306,7 +1329,7 @@ "h": 5, "w": 5, "x": 3, - "y": 37 + "y": 39 }, "id": 26, "options": { @@ -1359,8 +1382,7 @@ "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] } @@ -1371,7 +1393,7 @@ "h": 5, "w": 3, "x": 8, - "y": 37 + "y": 39 }, "id": 27, "options": { @@ -1421,8 +1443,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "#EAB839", @@ -1438,7 +1459,7 @@ "h": 5, "w": 5, "x": 11, - "y": 37 + "y": 39 }, "id": 28, "options": { @@ -1492,8 +1513,7 @@ "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] } @@ -1504,7 +1524,7 @@ "h": 5, "w": 3, "x": 16, - "y": 37 + "y": 39 }, "id": 29, "options": { @@ -1558,8 +1578,7 @@ "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] }, @@ -1571,7 +1590,7 @@ "h": 5, "w": 5, "x": 19, - "y": 37 + "y": 39 }, "id": 16, "options": { @@ -1627,8 +1646,7 @@ "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] }, @@ -1640,7 +1658,7 @@ "h": 3, "w": 5, "x": 3, - "y": 42 + "y": 44 }, "id": 47, "options": { @@ -1693,8 +1711,7 @@ "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] } @@ -1705,7 +1722,7 @@ "h": 3, "w": 3, "x": 8, - "y": 42 + "y": 44 }, "id": 48, "options": { @@ -1756,8 +1773,7 @@ "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] } @@ -1768,7 +1784,7 @@ "h": 3, "w": 3, "x": 16, - "y": 42 + "y": 44 }, "id": 49, "options": { @@ -1822,8 +1838,7 @@ "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] }, @@ -1835,7 +1850,7 @@ "h": 3, "w": 5, "x": 19, - "y": 42 + "y": 44 }, "id": 50, "options": { @@ -1881,7 +1896,7 @@ "h": 1, "w": 24, "x": 0, - "y": 45 + "y": 47 }, "id": 35, "panels": [], @@ -1905,8 +1920,7 @@ "mode": "absolute", "steps": [ { - "color": "light-blue", - "value": null + "color": "light-blue" }, { "color": "semi-dark-red", @@ -1938,7 +1952,7 @@ "h": 9, "w": 3, "x": 0, - "y": 46 + "y": 48 }, "id": 53, "options": { @@ -2037,8 +2051,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2053,7 +2066,7 @@ "h": 9, "w": 5, "x": 3, - "y": 46 + "y": 48 }, "id": 37, "options": { @@ -2109,8 +2122,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2125,7 +2137,7 @@ "h": 9, "w": 3, "x": 8, - "y": 46 + "y": 48 }, "id": 42, "options": { @@ -2192,7 +2204,7 @@ "h": 9, "w": 8, "x": 11, - "y": 46 + "y": 48 }, "id": 41, "options": { @@ -2257,7 +2269,7 @@ "h": 9, "w": 5, "x": 19, - "y": 46 + "y": 48 }, "id": 52, "options": { @@ -2315,6 +2327,6 @@ "timezone": "", "title": "Opentelemetry Collector Data Flow", "uid": "rl5_tea4k", - "version": 1, + "version": 2, "weekStart": "" -} +} \ No newline at end of file diff --git a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json index 353cb7c32e..529c269785 100644 --- a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json +++ b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json @@ -25,16 +25,41 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, - "id": 3, + "id": 2, "links": [], "panels": [ + { + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 62, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "This dashboard uses the metrics generated by the OpenTelemetry Collector.\nIt is used to understand the overall performance and health of the OpenTelemetry Collector.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "mode": "markdown" + }, + "pluginVersion": "11.4.0", + "title": "", + "type": "text" + }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 0 + "y": 2 }, "id": 23, "panels": [], @@ -125,7 +150,7 @@ "h": 8, "w": 8, "x": 0, - "y": 1 + "y": 3 }, "id": 28, "interval": "$minstep", @@ -145,7 +170,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -266,7 +291,7 @@ "h": 8, "w": 8, "x": 8, - "y": 1 + "y": 3 }, "id": 32, "interval": "$minstep", @@ -286,7 +311,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -407,7 +432,7 @@ "h": 8, "w": 8, "x": 16, - "y": 1 + "y": 3 }, "id": 47, "interval": "$minstep", @@ -427,7 +452,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -470,7 +495,7 @@ "h": 1, "w": 24, "x": 0, - "y": 9 + "y": 11 }, "id": 34, "panels": [], @@ -576,7 +601,7 @@ "h": 8, "w": 8, "x": 0, - "y": 10 + "y": 12 }, "id": 36, "interval": "$minstep", @@ -596,7 +621,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -660,7 +685,7 @@ "h": 8, "w": 8, "x": 8, - "y": 10 + "y": 12 }, "id": 49, "interval": "$minstep", @@ -699,7 +724,7 @@ "reverse": false } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -820,7 +845,7 @@ "h": 8, "w": 8, "x": 16, - "y": 10 + "y": 12 }, "id": 56, "interval": "$minstep", @@ -840,7 +865,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -884,7 +909,7 @@ "h": 1, "w": 24, "x": 0, - "y": 18 + "y": 20 }, "id": 25, "panels": [], @@ -975,7 +1000,7 @@ "h": 9, "w": 8, "x": 0, - "y": 19 + "y": 21 }, "id": 37, "interval": "$minstep", @@ -995,7 +1020,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -1132,7 +1157,7 @@ "h": 9, "w": 8, "x": 8, - "y": 19 + "y": 21 }, "id": 38, "interval": "$minstep", @@ -1152,7 +1177,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -1289,7 +1314,7 @@ "h": 9, "w": 8, "x": 16, - "y": 19 + "y": 21 }, "id": 48, "interval": "$minstep", @@ -1309,7 +1334,7 @@ "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -1412,8 +1437,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1429,7 +1453,7 @@ "h": 9, "w": 12, "x": 0, - "y": 28 + "y": 30 }, "id": 10, "options": { @@ -1519,8 +1543,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1536,7 +1559,7 @@ "h": 9, "w": 12, "x": 12, - "y": 28 + "y": 30 }, "id": 55, "options": { @@ -1582,7 +1605,7 @@ "h": 1, "w": 24, "x": 0, - "y": 37 + "y": 39 }, "id": 21, "panels": [], @@ -1640,8 +1663,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1727,7 +1749,7 @@ "h": 9, "w": 8, "x": 0, - "y": 38 + "y": 40 }, "id": 40, "interval": "$minstep", @@ -1851,8 +1873,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1938,7 +1959,7 @@ "h": 9, "w": 8, "x": 8, - "y": 38 + "y": 40 }, "id": 52, "interval": "$minstep", @@ -2062,8 +2083,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2149,7 +2169,7 @@ "h": 9, "w": 8, "x": 16, - "y": 38 + "y": 40 }, "id": 53, "interval": "$minstep", @@ -2273,8 +2293,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2356,7 +2375,7 @@ "h": 9, "w": 8, "x": 0, - "y": 47 + "y": 49 }, "id": 39, "interval": "$minstep", @@ -2481,8 +2500,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2498,7 +2516,7 @@ "h": 9, "w": 8, "x": 8, - "y": 47 + "y": 49 }, "id": 41, "interval": "$minstep", @@ -2591,8 +2609,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2608,7 +2625,7 @@ "h": 9, "w": 8, "x": 16, - "y": 47 + "y": 49 }, "id": 54, "interval": "$minstep", @@ -2675,8 +2692,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2692,7 +2708,7 @@ "h": 5, "w": 24, "x": 0, - "y": 56 + "y": 58 }, "id": 57, "interval": "$minstep", @@ -2750,7 +2766,7 @@ "h": 1, "w": 24, "x": 0, - "y": 61 + "y": 63 }, "id": 59, "panels": [], @@ -2771,7 +2787,7 @@ "h": 9, "w": 8, "x": 0, - "y": 62 + "y": 64 }, "id": 58, "options": { @@ -2853,7 +2869,7 @@ "h": 9, "w": 8, "x": 8, - "y": 62 + "y": 64 }, "id": 60, "options": { @@ -2935,7 +2951,7 @@ "h": 9, "w": 8, "x": 16, - "y": 62 + "y": 64 }, "id": 61, "options": { @@ -3012,7 +3028,7 @@ "h": 3, "w": 24, "x": 0, - "y": 71 + "y": 73 }, "id": 45, "options": { @@ -3234,6 +3250,6 @@ "timezone": "utc", "title": "OpenTelemetry Collector", "uid": "BKf2sowmj", - "version": 1, + "version": 2, "weekStart": "" -} +} \ No newline at end of file diff --git a/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json b/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json index d4ba33c992..c7a11f1c10 100644 --- a/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json +++ b/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json @@ -25,16 +25,41 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 5, + "id": 3, "links": [], "panels": [ + { + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 26, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "This dashboard uses RED metrics generated for all services by the spanmetrics connector configured in the OpenTelemetry Collector.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "mode": "html" + }, + "pluginVersion": "11.4.0", + "title": "", + "type": "text" + }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 0 + "y": 2 }, "id": 24, "panels": [], @@ -85,7 +110,7 @@ "h": 20, "w": 12, "x": 0, - "y": 1 + "y": 3 }, "id": 2, "interval": "5m", @@ -104,7 +129,7 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -210,7 +235,7 @@ "h": 13, "w": 12, "x": 12, - "y": 1 + "y": 3 }, "id": 4, "interval": "5m", @@ -239,7 +264,7 @@ "text": {}, "valueMode": "color" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -297,7 +322,7 @@ "h": 7, "w": 12, "x": 12, - "y": 14 + "y": 16 }, "id": 15, "interval": "5m", @@ -326,7 +351,7 @@ "text": {}, "valueMode": "color" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -352,7 +377,7 @@ "h": 1, "w": 24, "x": 0, - "y": 21 + "y": 23 }, "id": 14, "panels": [], @@ -478,7 +503,7 @@ "h": 11, "w": 24, "x": 0, - "y": 22 + "y": 24 }, "id": 22, "interval": "5m", @@ -495,7 +520,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -621,7 +646,7 @@ "h": 1, "w": 24, "x": 0, - "y": 33 + "y": 35 }, "id": 20, "panels": [], @@ -643,8 +668,7 @@ "mode": "absolute", "steps": [ { - "color": "blue", - "value": null + "color": "blue" }, { "color": "green", @@ -672,7 +696,7 @@ "h": 13, "w": 12, "x": 0, - "y": 34 + "y": 36 }, "id": 25, "interval": "5m", @@ -772,8 +796,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -789,7 +812,7 @@ "h": 13, "w": 12, "x": 12, - "y": 34 + "y": 36 }, "id": 10, "interval": "5m", @@ -826,7 +849,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "topk(7, sum by (span_name,service_name)(increase(duration_milliseconds_sum{service_name=~\"${service}\", span_name=~\"$span_name\"}[5m]) / increase(traces_span_metrics_duration_milliseconds_count{service_name=~\"${service}\",span_name=~\"$span_name\"}[5m\n])))", + "expr": "topk(7, sum by (span_name,service_name)(increase(traces_span_metrics_duration_milliseconds_sum{service_name=~\"${service}\", span_name=~\"$span_name\"}[5m]) / increase(traces_span_metrics_duration_milliseconds_count{service_name=~\"${service}\",span_name=~\"$span_name\"}[5m\n])))", "instant": true, "interval": "", "legendFormat": "{{span_name}} [{{service_name}}]", @@ -885,8 +908,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -902,7 +924,7 @@ "h": 12, "w": 24, "x": 0, - "y": 47 + "y": 49 }, "id": 16, "interval": "5m", @@ -1007,6 +1029,6 @@ "timezone": "", "title": "Spanmetrics Demo Dashboard", "uid": "W2gX2zHVk48", - "version": 1, + "version": 2, "weekStart": "" -} +} \ No newline at end of file From 9b381842ca57011b5929bde9fd63c403fca94c7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Feb 2025 17:47:51 +0100 Subject: [PATCH 108/178] build(deps): bump the npm-production-dependencies group across 2 directories with 2 updates (#2008) Bumps the npm-production-dependencies group with 1 update in the /src/flagd-ui directory: [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss). Bumps the npm-production-dependencies group with 1 update in the /src/payment directory: [@grpc/grpc-js](https://github.com/grpc/grpc-node). Updates `@tailwindcss/postcss` from 4.0.1 to 4.0.4 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.0.4/packages/@tailwindcss-postcss) Updates `@grpc/grpc-js` from 1.12.5 to 1.12.6 - [Release notes](https://github.com/grpc/grpc-node/releases) - [Commits](https://github.com/grpc/grpc-node/compare/@grpc/grpc-js@1.12.5...@grpc/grpc-js@1.12.6) --- updated-dependencies: - dependency-name: "@tailwindcss/postcss" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@grpc/grpc-js" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/flagd-ui/package-lock.json | 129 +++++++++++++++------------------ src/flagd-ui/package.json | 2 +- src/payment/package-lock.json | 9 ++- src/payment/package.json | 2 +- 4 files changed, 65 insertions(+), 77 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 36cc34dca1..5c2b619f90 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -8,7 +8,7 @@ "name": "flagd-ui", "version": "0.1.0", "dependencies": { - "@tailwindcss/postcss": "^4.0.1", + "@tailwindcss/postcss": "^4.0.4", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", "next": "15.1.6", @@ -1056,48 +1056,42 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.1.tgz", - "integrity": "sha512-lc+ly6PKHqgCVl7eO8D2JlV96Lks5bmL6pdtM6UasyUHLU2zmrOqU6jfgln120IVnCh3VC8GG/ca24xVTtSokw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.4.tgz", + "integrity": "sha512-VLFq80IyoV1hsHPcCm1mmlyPyUT6NlovQLoO2y7PGm84mW94ZrNJ7ax5H6K4M7Aj/fdMfem5IX7Ka+LXWZpDGg==", "license": "MIT", "dependencies": { "enhanced-resolve": "^5.18.0", "jiti": "^2.4.2", - "tailwindcss": "4.0.1" + "tailwindcss": "4.0.4" } }, - "node_modules/@tailwindcss/node/node_modules/tailwindcss": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.1.tgz", - "integrity": "sha512-UK5Biiit/e+r3i0O223bisoS5+y7ZT1PM8Ojn0MxRHzXN1VPZ2KY6Lo6fhu1dOfCfyUAlK7Lt6wSxowRabATBw==", - "license": "MIT" - }, "node_modules/@tailwindcss/oxide": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.1.tgz", - "integrity": "sha512-3z1SpWoDeaA6K6jd92CRrGyDghOcRILEgyWVHRhaUm/tcpiazwJpU9BSG0xB7GGGnl9capojaC+zme/nKsZd/w==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.4.tgz", + "integrity": "sha512-vPpu30KFLiGyPOoElkYt8WRvzGKVrrOz49KpfiGGtnQGmyUpL8VCbJzzEEcpKT5BpaaQidhFok+OXscf6hHjOQ==", "license": "MIT", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.0.1", - "@tailwindcss/oxide-darwin-arm64": "4.0.1", - "@tailwindcss/oxide-darwin-x64": "4.0.1", - "@tailwindcss/oxide-freebsd-x64": "4.0.1", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.1", - "@tailwindcss/oxide-linux-arm64-gnu": "4.0.1", - "@tailwindcss/oxide-linux-arm64-musl": "4.0.1", - "@tailwindcss/oxide-linux-x64-gnu": "4.0.1", - "@tailwindcss/oxide-linux-x64-musl": "4.0.1", - "@tailwindcss/oxide-win32-arm64-msvc": "4.0.1", - "@tailwindcss/oxide-win32-x64-msvc": "4.0.1" + "@tailwindcss/oxide-android-arm64": "4.0.4", + "@tailwindcss/oxide-darwin-arm64": "4.0.4", + "@tailwindcss/oxide-darwin-x64": "4.0.4", + "@tailwindcss/oxide-freebsd-x64": "4.0.4", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.4", + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.4", + "@tailwindcss/oxide-linux-arm64-musl": "4.0.4", + "@tailwindcss/oxide-linux-x64-gnu": "4.0.4", + "@tailwindcss/oxide-linux-x64-musl": "4.0.4", + "@tailwindcss/oxide-win32-arm64-msvc": "4.0.4", + "@tailwindcss/oxide-win32-x64-msvc": "4.0.4" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.1.tgz", - "integrity": "sha512-eP/rI9WaAElpeiiHDqGtDqga9iDsOClXxIqdHayHsw93F24F03b60CwgGhrGF9Io/EuWIpz3TMRhPVOLhoXivw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.4.tgz", + "integrity": "sha512-hiGUA8d15ynH/LdurQNObnuTjri7i4ApAzhesusNxoz4br7vhZ6QO5CFgniYAYNZvf8Q8wCTBg0nj61RalBeVQ==", "cpu": [ "arm64" ], @@ -1111,9 +1105,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.1.tgz", - "integrity": "sha512-jZVUo0kNd1IjxdCYwg4dwegDNsq7PoUx4LM814RmgY3gfJ63Y6GlpJXHOpd5FLv1igpeZox5LzRk2oz8MQoJwQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.4.tgz", + "integrity": "sha512-vTca+ysNl8BYmYJTni9pLC+L3S4bvrj0ai1eUV3yYXYa5Cpugr5Fni6ylV0gcTZOyETm2RCCJ/0azU6MgqE6HA==", "cpu": [ "arm64" ], @@ -1127,9 +1121,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.1.tgz", - "integrity": "sha512-E31wHiIf4LB0aKRohrS4U6XfFSACCL9ifUFfPQ16FhcBIL4wU5rcBidvWvT9TQFGPkpE69n5dyXUcqiMrnF/Ig==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.4.tgz", + "integrity": "sha512-rxPWb5AQJ/aAM/5UDCjaQaMYIcrZHe/Dr9xZu9+P9nJf3WAweNsGi+e+SW9EYGRiF3hkBtP2dvxVNAkTiEbNQQ==", "cpu": [ "x64" ], @@ -1143,9 +1137,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.1.tgz", - "integrity": "sha512-8/3ZKLMYqgAsBzTeczOKWtT4geF02g9S7cntY5gvqQZ4E0ImX724cHcZJi9k6fkE6aLbvwxxHxaShFvRxblwKQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.4.tgz", + "integrity": "sha512-UOnRHzlS5V5cxaMgBo6rk1E92tTDUtO/falc9vOpNiRdWhNcofYNN9zvZP63Wuo5FC6/XCyAnJo6OXUm18TwrQ==", "cpu": [ "x64" ], @@ -1159,9 +1153,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.1.tgz", - "integrity": "sha512-EYjbh225klQfWzy6LeIAfdjHCK+p71yLV/GjdPNW47Bfkkq05fTzIhHhCgshUvNp78EIA33iQU+ktWpW06NgHw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.4.tgz", + "integrity": "sha512-0Ry9Qfnf22rmJwHxsCFmHQIl5RZw+yOUUGHaqNT42REL8r308cU/bi4UqdrjqVRfAlu51gOGxTRf2NRueczuIA==", "cpu": [ "arm" ], @@ -1175,9 +1169,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.1.tgz", - "integrity": "sha512-PrX2SwIqWNP5cYeSyQfrhbk4ffOM338T6CrEwIAGvLPoUZiklt19yknlsBme6bReSw7TSAMy+8KFdLLi5fcWNQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.4.tgz", + "integrity": "sha512-5a7WD30nVdI7Rl1ohZ0Ojj9t5yRnZkJBizvh3uIW52h9UeNpon8TfoknF6rU/TwD32dQ0Cjo5CcCHtQ2wW9PCA==", "cpu": [ "arm64" ], @@ -1191,9 +1185,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.1.tgz", - "integrity": "sha512-iuoFGhKDojtfloi5uj6MIk4kxEOGcsAk/kPbZItF9Dp7TnzVhxo2U/718tXhxGrg6jSL3ST3cQHIjA6yw3OeXw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.4.tgz", + "integrity": "sha512-m6s5jKSqos07l6NtHFd49Ljcaw4jIWHE7jq6eNPNz9SCzQqRzs4esP1t7jH8UljQ7JffKOl7yZPwK5Nf+irliw==", "cpu": [ "arm64" ], @@ -1207,9 +1201,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.1.tgz", - "integrity": "sha512-pNUrGQYyE8RK+N9yvkPmHnlKDfFbni9A3lsi37u4RoA/6Yn+zWVoegvAQMZu3w+jqnpb2A/bYJ+LumcclUZ3yg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.4.tgz", + "integrity": "sha512-K5dBjGHzby9eyUBwy9YHFhKY+5i8fzIBZM1NBWp6L2xpM7OzW9WJDgNcgESkZami9g+EozkQLt3ZmMZHAieXkw==", "cpu": [ "x64" ], @@ -1223,9 +1217,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.1.tgz", - "integrity": "sha512-xSGWaDcT6SJ75su9zWXj8GYb2jM/przXwZGH96RTS7HGDIoI1tvgpls88YajG5Sx7hXaqAWCufjw5L/dlu+lzg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.4.tgz", + "integrity": "sha512-J8sskt+fA5ooq+kxy0Tf4E2TRWZD9Y8j3K+pnBwp9zdilLmSd8OHrB3e0/rO78KveZ6BE9ae75cKOWrT6wONmw==", "cpu": [ "x64" ], @@ -1239,9 +1233,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.1.tgz", - "integrity": "sha512-BUNL2isUZ2yWnbplPddggJpZxsqGHPZ1RJAYpu63W4znUnKCzI4m/jiy0WpyYqqOKL9jDM5q0QdsQ9mc3aw5YQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.4.tgz", + "integrity": "sha512-flFaaMc77NQbz0Fq73wBs9EH2lX1Oc2Z/3JuxoewpnGHpAGJ/j05tvBNMyTaGrKcHvf/+dk+mCDxb6+PmzGgnQ==", "cpu": [ "arm64" ], @@ -1255,9 +1249,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.1.tgz", - "integrity": "sha512-ZtcVu+XXOddGsPlvO5nh2fnbKmwly2C07ZB1lcYCf/b8qIWF04QY9o6vy6/+6ioLRfbp3E7H/ipFio38DZX4oQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.4.tgz", + "integrity": "sha512-WzMA0aL/24/JyNrv2Yhr/Og24QGRPWJMjRyCJ4HRoGMs6/8svOQKrnnZ/9LUFwn56irAndFBjWWnlaqykH+g5Q==", "cpu": [ "x64" ], @@ -1271,25 +1265,19 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.1.tgz", - "integrity": "sha512-fZHL49vCDauQymdm2U1jehuUeX8msYVDKB/2v+jWhTQleH3QE8J1dJ2dnL5tqRvB0udjBP4kwUC1ZIVIdv66YA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.4.tgz", + "integrity": "sha512-Up8fB+DUhy8qvDqlHgZAWaL5iVEbypcuOjzlW4K6EyU+aGEvXK0/wrcKBKOTvg3KKP5givJMexJ0aG1hDPOuRg==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "^4.0.1", - "@tailwindcss/oxide": "^4.0.1", + "@tailwindcss/node": "^4.0.4", + "@tailwindcss/oxide": "^4.0.4", "lightningcss": "^1.29.1", "postcss": "^8.4.41", - "tailwindcss": "4.0.1" + "tailwindcss": "4.0.4" } }, - "node_modules/@tailwindcss/postcss/node_modules/tailwindcss": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.1.tgz", - "integrity": "sha512-UK5Biiit/e+r3i0O223bisoS5+y7ZT1PM8Ojn0MxRHzXN1VPZ2KY6Lo6fhu1dOfCfyUAlK7Lt6wSxowRabATBw==", - "license": "MIT" - }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -5418,7 +5406,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.4.tgz", "integrity": "sha512-/ezDLEkOLf1lXkr9F2iI5BHJbexJpty5zkV2B8bGHCqAdbc9vk85Jgdkq+ZOvNkNPa3yAaqJ8DjRt584Bc84kw==", - "dev": true, "license": "MIT" }, "node_modules/tapable": { diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 855a60d418..bdd92134c4 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@tailwindcss/postcss": "^4.0.1", + "@tailwindcss/postcss": "^4.0.4", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", "next": "15.1.6", diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index 5fe8555dd8..f84f27c630 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -8,7 +8,7 @@ "name": "payment", "license": "ISC", "dependencies": { - "@grpc/grpc-js": "1.12.5", + "@grpc/grpc-js": "1.12.6", "@grpc/proto-loader": "0.7.13", "@openfeature/flagd-provider": "0.13.2", "@openfeature/server-sdk": "1.17.0", @@ -32,9 +32,10 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.12.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz", - "integrity": "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==", + "version": "1.12.6", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.6.tgz", + "integrity": "sha512-JXUj6PI0oqqzTGvKtzOkxtpsyPRNsrmhh41TtIz/zEB6J+AUiZZ0dxWzcMwO9Ns5rmSPuMdghlTbUuqIM48d3Q==", + "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" diff --git a/src/payment/package.json b/src/payment/package.json index ea45b4bdc5..c1d2056192 100644 --- a/src/payment/package.json +++ b/src/payment/package.json @@ -9,7 +9,7 @@ "author": "Jonathan Lui", "license": "ISC", "dependencies": { - "@grpc/grpc-js": "1.12.5", + "@grpc/grpc-js": "1.12.6", "@grpc/proto-loader": "0.7.13", "@openfeature/flagd-provider": "0.13.2", "@openfeature/server-sdk": "1.17.0", From 056b789dda4de7a8dcd644db6efe9736c96af512 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Feb 2025 18:02:54 +0100 Subject: [PATCH 109/178] build(deps): bump the nuget-production-dependencies group across 2 directories with 1 update (#2009) Bumps the nuget-production-dependencies group with 1 update in the /src/cart directory: [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit). Bumps the nuget-production-dependencies group with 1 update in the /src/cart/tests directory: [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit). Updates `xunit.runner.visualstudio` from 3.0.1 to 3.0.2 - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/compare/3.0.1...3.0.2) Updates `xunit.runner.visualstudio` from 3.0.1 to 3.0.2 - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/compare/3.0.1...3.0.2) --- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/cart/tests/cart.tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cart/tests/cart.tests.csproj b/src/cart/tests/cart.tests.csproj index d384b8d408..e5c5e0c912 100644 --- a/src/cart/tests/cart.tests.csproj +++ b/src/cart/tests/cart.tests.csproj @@ -9,7 +9,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive From ce759700d4f0611e2e44f246231f9713f64a2d6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2025 21:46:53 +0100 Subject: [PATCH 110/178] build(deps): bump the go-production-dependencies group across 2 directories with 1 update (#2011) Bumps the go-production-dependencies group with 1 update in the /src/checkout directory: [github.com/open-feature/go-sdk-contrib/providers/flagd](https://github.com/open-feature/go-sdk-contrib). Bumps the go-production-dependencies group with 1 update in the /src/product-catalog directory: [github.com/open-feature/go-sdk-contrib/providers/flagd](https://github.com/open-feature/go-sdk-contrib). Updates `github.com/open-feature/go-sdk-contrib/providers/flagd` from 0.2.3 to 0.2.4 - [Release notes](https://github.com/open-feature/go-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/go-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/go-sdk-contrib/compare/providers/flagd/v0.2.3...providers/flagd/v0.2.4) Updates `github.com/open-feature/go-sdk-contrib/providers/flagd` from 0.2.3 to 0.2.4 - [Release notes](https://github.com/open-feature/go-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/go-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/go-sdk-contrib/compare/providers/flagd/v0.2.3...providers/flagd/v0.2.4) --- updated-dependencies: - dependency-name: github.com/open-feature/go-sdk-contrib/providers/flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: github.com/open-feature/go-sdk-contrib/providers/flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/checkout/go.mod | 2 +- src/checkout/go.sum | 4 ++-- src/product-catalog/go.mod | 2 +- src/product-catalog/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/checkout/go.mod b/src/checkout/go.mod index 040b36557f..57bf59f2ee 100644 --- a/src/checkout/go.mod +++ b/src/checkout/go.mod @@ -9,7 +9,7 @@ require ( github.com/google/uuid v1.6.0 github.com/open-feature/go-sdk v1.14.1 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 - github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 + github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4 github.com/sirupsen/logrus v1.9.3 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 diff --git a/src/checkout/go.sum b/src/checkout/go.sum index d5baba9232..463ade2157 100644 --- a/src/checkout/go.sum +++ b/src/checkout/go.sum @@ -116,8 +116,8 @@ github.com/open-feature/go-sdk v1.14.1 h1:jcxjCIG5Up3XkgYwWN5Y/WWfc6XobOhqrIwjyD github.com/open-feature/go-sdk v1.14.1/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 h1:Kzt0WkUtrLeFgJn2wkGhBVJZTOBVFGwXGuGs27uM9KQ= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3/go.mod h1:lZnG8SjETq2kyHvOInmdqTuofg53GNbY6YupgwP4LTA= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4 h1:Iskgw8GubUlnZ9G+4iLbCY8pBbx78n7unEfwzfhvTiw= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4/go.mod h1:4w1Xk0Ym0S8ObjGo+mt4sLDXzDMC699kbjFd/a5cjqo= github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= diff --git a/src/product-catalog/go.mod b/src/product-catalog/go.mod index 1d03fc1136..aa87c21966 100644 --- a/src/product-catalog/go.mod +++ b/src/product-catalog/go.mod @@ -7,7 +7,7 @@ toolchain go1.22.9 require ( github.com/open-feature/go-sdk v1.14.1 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 - github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 + github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4 github.com/sirupsen/logrus v1.9.3 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0 diff --git a/src/product-catalog/go.sum b/src/product-catalog/go.sum index 7bbe326cd6..ccdf5297c1 100644 --- a/src/product-catalog/go.sum +++ b/src/product-catalog/go.sum @@ -78,8 +78,8 @@ github.com/open-feature/go-sdk v1.14.1 h1:jcxjCIG5Up3XkgYwWN5Y/WWfc6XobOhqrIwjyD github.com/open-feature/go-sdk v1.14.1/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3 h1:Kzt0WkUtrLeFgJn2wkGhBVJZTOBVFGwXGuGs27uM9KQ= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.3/go.mod h1:lZnG8SjETq2kyHvOInmdqTuofg53GNbY6YupgwP4LTA= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4 h1:Iskgw8GubUlnZ9G+4iLbCY8pBbx78n7unEfwzfhvTiw= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4/go.mod h1:4w1Xk0Ym0S8ObjGo+mt4sLDXzDMC699kbjFd/a5cjqo= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= From 1d9091147d9f70f0d5065fdeae9e642a04a87ea3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2025 22:41:19 +0100 Subject: [PATCH 111/178] build(deps): bump the nuget-production-dependencies group across 2 directories with 1 update (#2015) Bumps the nuget-production-dependencies group with 1 update in the /src/cart directory: [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest). Bumps the nuget-production-dependencies group with 1 update in the /src/cart/tests directory: [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest). Updates `Microsoft.NET.Test.Sdk` from 17.12.0 to 17.13.0 - [Release notes](https://github.com/microsoft/vstest/releases) - [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md) - [Commits](https://github.com/microsoft/vstest/compare/v17.12.0...v17.13.0) Updates `Microsoft.NET.Test.Sdk` from 17.12.0 to 17.13.0 - [Release notes](https://github.com/microsoft/vstest/releases) - [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md) - [Commits](https://github.com/microsoft/vstest/compare/v17.12.0...v17.13.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuget-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/cart/tests/cart.tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cart/tests/cart.tests.csproj b/src/cart/tests/cart.tests.csproj index e5c5e0c912..c952e7bf6f 100644 --- a/src/cart/tests/cart.tests.csproj +++ b/src/cart/tests/cart.tests.csproj @@ -7,7 +7,7 @@ - + all From 7ccf843a003a186b787193acdd4d6f4a3c331491 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2025 22:55:22 +0100 Subject: [PATCH 112/178] build(deps): bump the pip-production-dependencies group across 2 directories with 1 update (#2012) Bumps the pip-production-dependencies group with 1 update in the /src directory: [locust](https://github.com/locustio/locust). Bumps the pip-production-dependencies group with 1 update in the /src/load-generator directory: [locust](https://github.com/locustio/locust). Updates `locust` from 2.32.8 to 2.32.9 - [Release notes](https://github.com/locustio/locust/releases) - [Changelog](https://github.com/locustio/locust/blob/master/docs/changelog.rst) - [Commits](https://github.com/locustio/locust/compare/2.32.8...2.32.9) Updates `locust` from 2.32.8 to 2.32.9 - [Release notes](https://github.com/locustio/locust/releases) - [Changelog](https://github.com/locustio/locust/blob/master/docs/changelog.rst) - [Commits](https://github.com/locustio/locust/compare/2.32.8...2.32.9) --- updated-dependencies: - dependency-name: locust dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: locust dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/load-generator/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/load-generator/requirements.txt b/src/load-generator/requirements.txt index 366434fe0a..bbb292b4b3 100644 --- a/src/load-generator/requirements.txt +++ b/src/load-generator/requirements.txt @@ -15,7 +15,7 @@ greenlet==3.1.1 idna==3.10 itsdangerous==2.2.0 jinja2==3.1.5 -locust==2.32.8 +locust==2.32.9 locust-plugins[playwright]==4.5.3 markupsafe==3.0.2 msgpack==1.1.0 From d1614f377475274bc28eff9297d553492d456b70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2025 23:24:16 +0100 Subject: [PATCH 113/178] build(deps): bump the npm-production-dependencies group across 3 directories with 4 updates (#2018) Bumps the npm-production-dependencies group with 1 update in the /src/flagd-ui directory: [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss). Bumps the npm-production-dependencies group with 3 updates in the /src/frontend directory: @openfeature/flagd-provider, [@openfeature/react-sdk](https://github.com/open-feature/js-sdk) and [@openfeature/server-sdk](https://github.com/open-feature/js-sdk). Bumps the npm-production-dependencies group with 2 updates in the /src/payment directory: @openfeature/flagd-provider and [@openfeature/server-sdk](https://github.com/open-feature/js-sdk). Updates `@tailwindcss/postcss` from 4.0.4 to 4.0.6 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.0.6/packages/@tailwindcss-postcss) Updates `@openfeature/flagd-provider` from 0.13.2 to 0.13.3 Updates `@openfeature/react-sdk` from 0.4.10 to 0.4.11 - [Release notes](https://github.com/open-feature/js-sdk/releases) - [Changelog](https://github.com/open-feature/js-sdk/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.10...web-sdk-v0.4.11) Updates `@openfeature/server-sdk` from 1.17.0 to 1.17.1 - [Release notes](https://github.com/open-feature/js-sdk/releases) - [Changelog](https://github.com/open-feature/js-sdk/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.17.0...server-sdk-v1.17.1) Updates `@openfeature/flagd-provider` from 0.13.2 to 0.13.3 Updates `@openfeature/server-sdk` from 1.17.0 to 1.17.1 - [Release notes](https://github.com/open-feature/js-sdk/releases) - [Changelog](https://github.com/open-feature/js-sdk/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.17.0...server-sdk-v1.17.1) --- updated-dependencies: - dependency-name: "@tailwindcss/postcss" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@openfeature/flagd-provider" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@openfeature/react-sdk" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@openfeature/server-sdk" dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@openfeature/flagd-provider" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@openfeature/server-sdk" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/flagd-ui/package-lock.json | 122 ++++++++++++++++----------------- src/flagd-ui/package.json | 2 +- src/frontend/package-lock.json | 40 +++++------ src/frontend/package.json | 4 +- src/payment/package-lock.json | 29 ++++---- src/payment/package.json | 4 +- 6 files changed, 102 insertions(+), 99 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 5c2b619f90..d4454dd869 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -8,7 +8,7 @@ "name": "flagd-ui", "version": "0.1.0", "dependencies": { - "@tailwindcss/postcss": "^4.0.4", + "@tailwindcss/postcss": "^4.0.6", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", "next": "15.1.6", @@ -1056,42 +1056,42 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.4.tgz", - "integrity": "sha512-VLFq80IyoV1hsHPcCm1mmlyPyUT6NlovQLoO2y7PGm84mW94ZrNJ7ax5H6K4M7Aj/fdMfem5IX7Ka+LXWZpDGg==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.6.tgz", + "integrity": "sha512-jb6E0WeSq7OQbVYcIJ6LxnZTeC4HjMvbzFBMCrQff4R50HBlo/obmYNk6V2GCUXDeqiXtvtrQgcIbT+/boB03Q==", "license": "MIT", "dependencies": { "enhanced-resolve": "^5.18.0", "jiti": "^2.4.2", - "tailwindcss": "4.0.4" + "tailwindcss": "4.0.6" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.4.tgz", - "integrity": "sha512-vPpu30KFLiGyPOoElkYt8WRvzGKVrrOz49KpfiGGtnQGmyUpL8VCbJzzEEcpKT5BpaaQidhFok+OXscf6hHjOQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.6.tgz", + "integrity": "sha512-lVyKV2y58UE9CeKVcYykULe9QaE1dtKdxDEdrTPIdbzRgBk6bdxHNAoDqvcqXbIGXubn3VOl1O/CFF77v/EqSA==", "license": "MIT", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.0.4", - "@tailwindcss/oxide-darwin-arm64": "4.0.4", - "@tailwindcss/oxide-darwin-x64": "4.0.4", - "@tailwindcss/oxide-freebsd-x64": "4.0.4", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.4", - "@tailwindcss/oxide-linux-arm64-gnu": "4.0.4", - "@tailwindcss/oxide-linux-arm64-musl": "4.0.4", - "@tailwindcss/oxide-linux-x64-gnu": "4.0.4", - "@tailwindcss/oxide-linux-x64-musl": "4.0.4", - "@tailwindcss/oxide-win32-arm64-msvc": "4.0.4", - "@tailwindcss/oxide-win32-x64-msvc": "4.0.4" + "@tailwindcss/oxide-android-arm64": "4.0.6", + "@tailwindcss/oxide-darwin-arm64": "4.0.6", + "@tailwindcss/oxide-darwin-x64": "4.0.6", + "@tailwindcss/oxide-freebsd-x64": "4.0.6", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.6", + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.6", + "@tailwindcss/oxide-linux-arm64-musl": "4.0.6", + "@tailwindcss/oxide-linux-x64-gnu": "4.0.6", + "@tailwindcss/oxide-linux-x64-musl": "4.0.6", + "@tailwindcss/oxide-win32-arm64-msvc": "4.0.6", + "@tailwindcss/oxide-win32-x64-msvc": "4.0.6" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.4.tgz", - "integrity": "sha512-hiGUA8d15ynH/LdurQNObnuTjri7i4ApAzhesusNxoz4br7vhZ6QO5CFgniYAYNZvf8Q8wCTBg0nj61RalBeVQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.6.tgz", + "integrity": "sha512-xDbym6bDPW3D2XqQqX3PjqW3CKGe1KXH7Fdkc60sX5ZLVUbzPkFeunQaoP+BuYlLc2cC1FoClrIRYnRzof9Sow==", "cpu": [ "arm64" ], @@ -1105,9 +1105,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.4.tgz", - "integrity": "sha512-vTca+ysNl8BYmYJTni9pLC+L3S4bvrj0ai1eUV3yYXYa5Cpugr5Fni6ylV0gcTZOyETm2RCCJ/0azU6MgqE6HA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.6.tgz", + "integrity": "sha512-1f71/ju/tvyGl5c2bDkchZHy8p8EK/tDHCxlpYJ1hGNvsYihZNurxVpZ0DefpN7cNc9RTT8DjrRoV8xXZKKRjg==", "cpu": [ "arm64" ], @@ -1121,9 +1121,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.4.tgz", - "integrity": "sha512-rxPWb5AQJ/aAM/5UDCjaQaMYIcrZHe/Dr9xZu9+P9nJf3WAweNsGi+e+SW9EYGRiF3hkBtP2dvxVNAkTiEbNQQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.6.tgz", + "integrity": "sha512-s/hg/ZPgxFIrGMb0kqyeaqZt505P891buUkSezmrDY6lxv2ixIELAlOcUVTkVh245SeaeEiUVUPiUN37cwoL2g==", "cpu": [ "x64" ], @@ -1137,9 +1137,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.4.tgz", - "integrity": "sha512-UOnRHzlS5V5cxaMgBo6rk1E92tTDUtO/falc9vOpNiRdWhNcofYNN9zvZP63Wuo5FC6/XCyAnJo6OXUm18TwrQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.6.tgz", + "integrity": "sha512-Z3Wo8FWZnmio8+xlcbb7JUo/hqRMSmhQw8IGIRoRJ7GmLR0C+25Wq+bEX/135xe/yEle2lFkhu9JBHd4wZYiig==", "cpu": [ "x64" ], @@ -1153,9 +1153,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.4.tgz", - "integrity": "sha512-0Ry9Qfnf22rmJwHxsCFmHQIl5RZw+yOUUGHaqNT42REL8r308cU/bi4UqdrjqVRfAlu51gOGxTRf2NRueczuIA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.6.tgz", + "integrity": "sha512-SNSwkkim1myAgmnbHs4EjXsPL7rQbVGtjcok5EaIzkHkCAVK9QBQsWeP2Jm2/JJhq4wdx8tZB9Y7psMzHYWCkA==", "cpu": [ "arm" ], @@ -1169,9 +1169,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.4.tgz", - "integrity": "sha512-5a7WD30nVdI7Rl1ohZ0Ojj9t5yRnZkJBizvh3uIW52h9UeNpon8TfoknF6rU/TwD32dQ0Cjo5CcCHtQ2wW9PCA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.6.tgz", + "integrity": "sha512-tJ+mevtSDMQhKlwCCuhsFEFg058kBiSy4TkoeBG921EfrHKmexOaCyFKYhVXy4JtkaeeOcjJnCLasEeqml4i+Q==", "cpu": [ "arm64" ], @@ -1185,9 +1185,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.4.tgz", - "integrity": "sha512-m6s5jKSqos07l6NtHFd49Ljcaw4jIWHE7jq6eNPNz9SCzQqRzs4esP1t7jH8UljQ7JffKOl7yZPwK5Nf+irliw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.6.tgz", + "integrity": "sha512-IoArz1vfuTR4rALXMUXI/GWWfx2EaO4gFNtBNkDNOYhlTD4NVEwE45nbBoojYiTulajI4c2XH8UmVEVJTOJKxA==", "cpu": [ "arm64" ], @@ -1201,9 +1201,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.4.tgz", - "integrity": "sha512-K5dBjGHzby9eyUBwy9YHFhKY+5i8fzIBZM1NBWp6L2xpM7OzW9WJDgNcgESkZami9g+EozkQLt3ZmMZHAieXkw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.6.tgz", + "integrity": "sha512-QtsUfLkEAeWAC3Owx9Kg+7JdzE+k9drPhwTAXbXugYB9RZUnEWWx5x3q/au6TvUYcL+n0RBqDEO2gucZRvRFgQ==", "cpu": [ "x64" ], @@ -1217,9 +1217,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.4.tgz", - "integrity": "sha512-J8sskt+fA5ooq+kxy0Tf4E2TRWZD9Y8j3K+pnBwp9zdilLmSd8OHrB3e0/rO78KveZ6BE9ae75cKOWrT6wONmw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.6.tgz", + "integrity": "sha512-QthvJqIji2KlGNwLcK/PPYo7w1Wsi/8NK0wAtRGbv4eOPdZHkQ9KUk+oCoP20oPO7i2a6X1aBAFQEL7i08nNMA==", "cpu": [ "x64" ], @@ -1233,9 +1233,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.4.tgz", - "integrity": "sha512-flFaaMc77NQbz0Fq73wBs9EH2lX1Oc2Z/3JuxoewpnGHpAGJ/j05tvBNMyTaGrKcHvf/+dk+mCDxb6+PmzGgnQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.6.tgz", + "integrity": "sha512-+oka+dYX8jy9iP00DJ9Y100XsqvbqR5s0yfMZJuPR1H/lDVtDfsZiSix1UFBQ3X1HWxoEEl6iXNJHWd56TocVw==", "cpu": [ "arm64" ], @@ -1249,9 +1249,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.4.tgz", - "integrity": "sha512-WzMA0aL/24/JyNrv2Yhr/Og24QGRPWJMjRyCJ4HRoGMs6/8svOQKrnnZ/9LUFwn56irAndFBjWWnlaqykH+g5Q==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.6.tgz", + "integrity": "sha512-+o+juAkik4p8Ue/0LiflQXPmVatl6Av3LEZXpBTfg4qkMIbZdhCGWFzHdt2NjoMiLOJCFDddoV6GYaimvK1Olw==", "cpu": [ "x64" ], @@ -1265,17 +1265,17 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.4.tgz", - "integrity": "sha512-Up8fB+DUhy8qvDqlHgZAWaL5iVEbypcuOjzlW4K6EyU+aGEvXK0/wrcKBKOTvg3KKP5givJMexJ0aG1hDPOuRg==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.6.tgz", + "integrity": "sha512-noTaGPHjGCXTCc487TWnfAEN0VMjqDAecssWDOsfxV2hFrcZR0AHthX7IdY/0xHTg/EtpmIPdssddlZ5/B7JnQ==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "^4.0.4", - "@tailwindcss/oxide": "^4.0.4", + "@tailwindcss/node": "^4.0.6", + "@tailwindcss/oxide": "^4.0.6", "lightningcss": "^1.29.1", "postcss": "^8.4.41", - "tailwindcss": "4.0.4" + "tailwindcss": "4.0.6" } }, "node_modules/@types/estree": { @@ -5403,9 +5403,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.4.tgz", - "integrity": "sha512-/ezDLEkOLf1lXkr9F2iI5BHJbexJpty5zkV2B8bGHCqAdbc9vk85Jgdkq+ZOvNkNPa3yAaqJ8DjRt584Bc84kw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.6.tgz", + "integrity": "sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw==", "license": "MIT" }, "node_modules/tapable": { diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index bdd92134c4..f88246c50d 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@tailwindcss/postcss": "^4.0.4", + "@tailwindcss/postcss": "^4.0.6", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", "next": "15.1.6", diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 79f58861ce..69b9ec34ac 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -10,9 +10,9 @@ "dependencies": { "@bufbuild/protobuf": "^2.2.3", "@grpc/grpc-js": "1.12.6", - "@openfeature/flagd-provider": "0.13.2", + "@openfeature/flagd-provider": "0.13.3", "@openfeature/flagd-web-provider": "0.7.2", - "@openfeature/react-sdk": "0.4.10", + "@openfeature/react-sdk": "0.4.11", "@opentelemetry/api": "1.9.0", "@opentelemetry/auto-instrumentations-node": "0.56.0", "@opentelemetry/auto-instrumentations-web": "0.45.0", @@ -1074,9 +1074,9 @@ } }, "node_modules/@openfeature/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-1.6.0.tgz", - "integrity": "sha512-QYAtwdreZU9Mi/LXLRzXsUA7PhbtT7+UJfRBMIAy6MidZjMgIbNfoh6+MncXb3UocThn0OsYa8WLfWD9q43eCQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-1.7.0.tgz", + "integrity": "sha512-Qg0+KpkNRyiFzBXORaZa/4F+Ds577LNgakCtauy7Asn7U8lyK3PP1nZ8yZWMKsInCXa1IEn3JZ+xkkoUd0Weng==", "license": "Apache-2.0", "peer": true }, @@ -1098,9 +1098,9 @@ } }, "node_modules/@openfeature/flagd-provider": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@openfeature/flagd-provider/-/flagd-provider-0.13.2.tgz", - "integrity": "sha512-T5IIjPc1VvOuwBQU8jWdf3IhaK9ceMOt1oVGScIVWHgQSns2QjOv6ATxLZ8ciPenavoUQW6YnphmbVaEb1ft3w==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@openfeature/flagd-provider/-/flagd-provider-0.13.3.tgz", + "integrity": "sha512-8aYURWAMsOcjY3lX5UMJRC4h76m1SDLMnb72wid+VFx1By4UL2yR28fO50i7x2CpVDANd2L5kArDAIA2HvU7MA==", "license": "Apache-2.0", "dependencies": { "@openfeature/flagd-core": "^1.0.0", @@ -1150,36 +1150,36 @@ } }, "node_modules/@openfeature/react-sdk": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/@openfeature/react-sdk/-/react-sdk-0.4.10.tgz", - "integrity": "sha512-t0DU5tR7s6Z3Oi3nbiWgdSuOs1hN9NH28fcnb3vvYdILetY3tCuhUI07xedzGsU6LCbOgNr65a9sEtTjrXjb5w==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/@openfeature/react-sdk/-/react-sdk-0.4.11.tgz", + "integrity": "sha512-IReKmrgcJeh2Q/Vq0ptho6aINDvjW1PhTETNRUTreMkYRDkaXRBm5yOjd1yK/CBinM/LP1aGj1XkgF/eb/IrDg==", "license": "Apache-2.0", "peerDependencies": { - "@openfeature/web-sdk": "^1.3.0", + "@openfeature/web-sdk": "^1.4.1", "react": ">=16.8.0" } }, "node_modules/@openfeature/server-sdk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.17.0.tgz", - "integrity": "sha512-M5Dcw6/IROlvIVPzzgPEpq5JhbIGyGY7oVlN6cJMd9EbhJtQzmMQBuXKCqoar59OgQXKH/u2LQxEhS1ccaR/RA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.17.1.tgz", + "integrity": "sha512-z5MaVvSNnk1SpRSuU02usnoX9rY9BtnLBNp9T08JOitwiuXs4byR8R5Es4WpsGRnnzBSoBQJL1iGIIYEeeEyxw==", "license": "Apache-2.0", "peer": true, "engines": { "node": ">=18" }, "peerDependencies": { - "@openfeature/core": "^1.6.0" + "@openfeature/core": "^1.7.0" } }, "node_modules/@openfeature/web-sdk": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@openfeature/web-sdk/-/web-sdk-1.4.0.tgz", - "integrity": "sha512-cMCt5jszLiZ9mLacS7XjMTEpbIS3asttSpyrPJ8rAdwDk86UjzfPwzMTSiccVolJqS299hWGXC1FGbu4IHX40Q==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@openfeature/web-sdk/-/web-sdk-1.4.1.tgz", + "integrity": "sha512-MgM55G/Ps8dNDsT75Yh6TYbp8XUVk0TdqSGSuo+6D9s4GyDzYHZHkcepp+j76Vvl4WwZPobdhADocUmUGskL1w==", "license": "Apache-2.0", "peer": true, "peerDependencies": { - "@openfeature/core": "^1.6.0" + "@openfeature/core": "^1.7.0" } }, "node_modules/@opentelemetry/api": { diff --git a/src/frontend/package.json b/src/frontend/package.json index 76fb963c8e..8b71013742 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -13,9 +13,9 @@ "dependencies": { "@bufbuild/protobuf": "^2.2.3", "@grpc/grpc-js": "1.12.6", - "@openfeature/flagd-provider": "0.13.2", + "@openfeature/flagd-provider": "0.13.3", "@openfeature/flagd-web-provider": "0.7.2", - "@openfeature/react-sdk": "0.4.10", + "@openfeature/react-sdk": "0.4.11", "@opentelemetry/api": "1.9.0", "@opentelemetry/auto-instrumentations-node": "0.56.0", "@opentelemetry/auto-instrumentations-web": "0.45.0", diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index f84f27c630..838f3d5cd4 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -10,8 +10,8 @@ "dependencies": { "@grpc/grpc-js": "1.12.6", "@grpc/proto-loader": "0.7.13", - "@openfeature/flagd-provider": "0.13.2", - "@openfeature/server-sdk": "1.17.0", + "@openfeature/flagd-provider": "0.13.3", + "@openfeature/server-sdk": "1.17.1", "@opentelemetry/api": "1.9.0", "@opentelemetry/auto-instrumentations-node": "0.56.0", "@opentelemetry/core": "1.30.1", @@ -71,9 +71,10 @@ } }, "node_modules/@openfeature/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-1.6.0.tgz", - "integrity": "sha512-QYAtwdreZU9Mi/LXLRzXsUA7PhbtT7+UJfRBMIAy6MidZjMgIbNfoh6+MncXb3UocThn0OsYa8WLfWD9q43eCQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@openfeature/core/-/core-1.7.0.tgz", + "integrity": "sha512-Qg0+KpkNRyiFzBXORaZa/4F+Ds577LNgakCtauy7Asn7U8lyK3PP1nZ8yZWMKsInCXa1IEn3JZ+xkkoUd0Weng==", + "license": "Apache-2.0", "peer": true }, "node_modules/@openfeature/flagd-core": { @@ -118,27 +119,29 @@ } }, "node_modules/@openfeature/flagd-provider": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@openfeature/flagd-provider/-/flagd-provider-0.13.2.tgz", - "integrity": "sha512-T5IIjPc1VvOuwBQU8jWdf3IhaK9ceMOt1oVGScIVWHgQSns2QjOv6ATxLZ8ciPenavoUQW6YnphmbVaEb1ft3w==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@openfeature/flagd-provider/-/flagd-provider-0.13.3.tgz", + "integrity": "sha512-8aYURWAMsOcjY3lX5UMJRC4h76m1SDLMnb72wid+VFx1By4UL2yR28fO50i7x2CpVDANd2L5kArDAIA2HvU7MA==", + "license": "Apache-2.0", "dependencies": { "@openfeature/flagd-core": "^1.0.0", "lru-cache": "^11.0.0" }, "peerDependencies": { "@grpc/grpc-js": "~1.8.0 || ~1.9.0 || ~1.10.0 || ~1.11.0 || ~1.12.0", - "@openfeature/server-sdk": "1.17.0" + "@openfeature/server-sdk": "^1.17.0" } }, "node_modules/@openfeature/server-sdk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.17.0.tgz", - "integrity": "sha512-M5Dcw6/IROlvIVPzzgPEpq5JhbIGyGY7oVlN6cJMd9EbhJtQzmMQBuXKCqoar59OgQXKH/u2LQxEhS1ccaR/RA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@openfeature/server-sdk/-/server-sdk-1.17.1.tgz", + "integrity": "sha512-z5MaVvSNnk1SpRSuU02usnoX9rY9BtnLBNp9T08JOitwiuXs4byR8R5Es4WpsGRnnzBSoBQJL1iGIIYEeeEyxw==", + "license": "Apache-2.0", "engines": { "node": ">=18" }, "peerDependencies": { - "@openfeature/core": "^1.6.0" + "@openfeature/core": "^1.7.0" } }, "node_modules/@opentelemetry/api": { diff --git a/src/payment/package.json b/src/payment/package.json index c1d2056192..f289e33452 100644 --- a/src/payment/package.json +++ b/src/payment/package.json @@ -11,8 +11,8 @@ "dependencies": { "@grpc/grpc-js": "1.12.6", "@grpc/proto-loader": "0.7.13", - "@openfeature/flagd-provider": "0.13.2", - "@openfeature/server-sdk": "1.17.0", + "@openfeature/flagd-provider": "0.13.3", + "@openfeature/server-sdk": "1.17.1", "@opentelemetry/api": "1.9.0", "@opentelemetry/auto-instrumentations-node": "0.56.0", "@opentelemetry/core": "1.30.1", From 8e092eb86f0b50ff175e3f1747144c1ed7c9350a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2025 23:41:50 +0100 Subject: [PATCH 114/178] build(deps): bump the gradle-production-dependencies group across 2 directories with 5 updates (#2020) Bumps the gradle-production-dependencies group with 3 updates in the /src/ad directory: [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java), [com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java) and [io.netty:netty-tcnative-boringssl-static](https://github.com/netty/netty-tcnative). Bumps the gradle-production-dependencies group with 3 updates in the /src/fraud-detection directory: [com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java), [io.opentelemetry:opentelemetry-api](https://github.com/open-telemetry/opentelemetry-java) and [io.opentelemetry:opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-java). Updates `io.opentelemetry:opentelemetry-bom` from 1.46.0 to 1.47.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.46.0...v1.47.0) Updates `com.google.api.grpc:proto-google-common-protos` from 2.51.0 to 2.52.0 - [Release notes](https://github.com/googleapis/sdk-platform-java/releases) - [Changelog](https://github.com/googleapis/sdk-platform-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/googleapis/sdk-platform-java/compare/v2.51.0...v2.52.0) Updates `io.netty:netty-tcnative-boringssl-static` from 2.0.69.Final to 2.0.70.Final - [Release notes](https://github.com/netty/netty-tcnative/releases) - [Commits](https://github.com/netty/netty-tcnative/compare/netty-tcnative-parent-2.0.69.Final...netty-tcnative-parent-2.0.70.Final) Updates `com.google.api.grpc:proto-google-common-protos` from 2.51.0 to 2.52.0 - [Release notes](https://github.com/googleapis/sdk-platform-java/releases) - [Changelog](https://github.com/googleapis/sdk-platform-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/googleapis/sdk-platform-java/compare/v2.51.0...v2.52.0) Updates `io.opentelemetry:opentelemetry-api` from 1.46.0 to 1.47.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.46.0...v1.47.0) Updates `io.opentelemetry:opentelemetry-sdk` from 1.46.0 to 1.47.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.46.0...v1.47.0) --- updated-dependencies: - dependency-name: io.opentelemetry:opentelemetry-bom dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.google.api.grpc:proto-google-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.netty:netty-tcnative-boringssl-static dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: com.google.api.grpc:proto-google-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.opentelemetry:opentelemetry-api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.opentelemetry:opentelemetry-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/ad/build.gradle | 6 +++--- src/fraud-detection/build.gradle.kts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ad/build.gradle b/src/ad/build.gradle index 2cc35f6ff6..82fd0bc82a 100644 --- a/src/ad/build.gradle +++ b/src/ad/build.gradle @@ -16,7 +16,7 @@ description = 'Ad Service' group = "ad" version = "0.1.0-SNAPSHOT" -def opentelemetryVersion = "1.46.0" +def opentelemetryVersion = "1.47.0" def opentelemetryInstrumentationVersion = "2.12.0" def grpcVersion = "1.70.0" def jacksonVersion = "2.18.2" @@ -40,7 +40,7 @@ dependencies { implementation platform("io.opentelemetry:opentelemetry-bom:${opentelemetryVersion}") implementation platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:${opentelemetryInstrumentationVersion}") - implementation "com.google.api.grpc:proto-google-common-protos:2.51.0", + implementation "com.google.api.grpc:proto-google-common-protos:2.52.0", "com.google.protobuf:protobuf-java:${protocVersion}", "javax.annotation:javax.annotation-api:1.3.2", "io.grpc:grpc-protobuf:${grpcVersion}", @@ -56,7 +56,7 @@ dependencies { runtimeOnly "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}", "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}", - "io.netty:netty-tcnative-boringssl-static:2.0.69.Final" + "io.netty:netty-tcnative-boringssl-static:2.0.70.Final" } } diff --git a/src/fraud-detection/build.gradle.kts b/src/fraud-detection/build.gradle.kts index 6d74c58167..c83b46f226 100644 --- a/src/fraud-detection/build.gradle.kts +++ b/src/fraud-detection/build.gradle.kts @@ -31,13 +31,13 @@ dependencies { testImplementation(kotlin("test")) implementation(kotlin("script-runtime")) implementation("org.apache.kafka:kafka-clients:3.9.0") - implementation("com.google.api.grpc:proto-google-common-protos:2.51.0") + implementation("com.google.api.grpc:proto-google-common-protos:2.52.0") implementation("io.grpc:grpc-protobuf:${grpcVersion}") implementation("io.grpc:grpc-stub:${grpcVersion}") implementation("io.grpc:grpc-netty:${grpcVersion}") implementation("io.grpc:grpc-services:${grpcVersion}") - implementation("io.opentelemetry:opentelemetry-api:1.46.0") - implementation("io.opentelemetry:opentelemetry-sdk:1.46.0") + implementation("io.opentelemetry:opentelemetry-api:1.47.0") + implementation("io.opentelemetry:opentelemetry-sdk:1.47.0") implementation("io.opentelemetry:opentelemetry-extension-annotations:1.18.0") implementation("org.apache.logging.log4j:log4j-core:2.24.3") implementation("org.slf4j:slf4j-api:2.0.16") From c24f73fe3874ccdac8c9b7424c95cb054ad3644d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Kie=C5=82kowicz?= Date: Tue, 11 Feb 2025 07:33:31 +0100 Subject: [PATCH 115/178] [chore] [cart] Bump not-stable dotnet-contrib packages (#2021) --- src/cart/src/cart.csproj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cart/src/cart.csproj b/src/cart/src/cart.csproj index 33ae586d5b..887e2b6599 100644 --- a/src/cart/src/cart.csproj +++ b/src/cart/src/cart.csproj @@ -20,13 +20,13 @@ - + - - + + - - + + From c82095f29d9790bea380313beda53c1f3618c016 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 07:57:53 +0100 Subject: [PATCH 116/178] build(deps-dev): bump the npm-development-dependencies group across 2 directories with 6 updates (#2022) Bumps the npm-development-dependencies group with 6 updates in the /src/flagd-ui directory: | Package | From | To | | --- | --- | --- | | [eslint](https://github.com/eslint/eslint) | `9.19.0` | `9.20.0` | | [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.1.6` | `15.1.7` | | [postcss](https://github.com/postcss/postcss) | `8.5.1` | `8.5.2` | | [prettier](https://github.com/prettier/prettier) | `3.4.2` | `3.5.0` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.23.0` | `8.24.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.23.0` | `8.24.0` | Bumps the npm-development-dependencies group with 4 updates in the /src/frontend directory: [eslint](https://github.com/eslint/eslint), [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next), [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `eslint` from 9.19.0 to 9.20.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.19.0...v9.20.0) Updates `eslint-config-next` from 15.1.6 to 15.1.7 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.1.7/packages/eslint-config-next) Updates `postcss` from 8.5.1 to 8.5.2 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.5.1...8.5.2) Updates `prettier` from 3.4.2 to 3.5.0 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.4.2...3.5.0) Updates `@typescript-eslint/eslint-plugin` from 8.23.0 to 8.24.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.23.0 to 8.24.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.0/packages/parser) Updates `eslint` from 9.19.0 to 9.20.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.19.0...v9.20.0) Updates `eslint-config-next` from 15.1.6 to 15.1.7 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.1.7/packages/eslint-config-next) Updates `@typescript-eslint/eslint-plugin` from 8.23.0 to 8.24.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.23.0 to 8.24.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.0/packages/parser) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: postcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/flagd-ui/package-lock.json | 146 ++++++++++++++++++--------------- src/flagd-ui/package.json | 6 +- src/frontend/package-lock.json | 135 ++++++++++++++++-------------- src/frontend/package.json | 8 +- 4 files changed, 161 insertions(+), 134 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index d4454dd869..d17e83f3ce 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -22,9 +22,9 @@ "@types/react-dom": "^19.0.3", "autoprefixer": "^10.4.20", "eslint": "^9", - "eslint-config-next": "15.1.6", - "postcss": "^8.5.1", - "prettier": "^3.4.2", + "eslint-config-next": "15.1.7", + "postcss": "^8.5.2", + "prettier": "^3.5.0", "prettier-plugin-tailwindcss": "^0.6.11", "tailwindcss": "^4.0.4", "typescript": "^5" @@ -148,9 +148,9 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "9.19.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", - "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", + "version": "9.20.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.20.0.tgz", + "integrity": "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==", "dev": true, "license": "MIT", "engines": { @@ -590,9 +590,9 @@ "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.6.tgz", - "integrity": "sha512-+slMxhTgILUntZDGNgsKEYHUvpn72WP1YTlkmEhS51vnVd7S9jEEy0n9YAMcI21vUG4akTw9voWH02lrClt/yw==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.7.tgz", + "integrity": "sha512-kRP7RjSxfTO13NE317ek3mSGzoZlI33nc/i5hs1KaWpK+egs85xg0DJ4p32QEiHnR0mVjuUfhRIun7awqfL7pQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1339,17 +1339,17 @@ "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.23.0.tgz", - "integrity": "sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.0.tgz", + "integrity": "sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/type-utils": "8.23.0", - "@typescript-eslint/utils": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/type-utils": "8.24.0", + "@typescript-eslint/utils": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1369,16 +1369,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.23.0.tgz", - "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.0.tgz", + "integrity": "sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/typescript-estree": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/typescript-estree": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "debug": "^4.3.4" }, "engines": { @@ -1394,14 +1394,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz", - "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.0.tgz", + "integrity": "sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0" + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1412,14 +1412,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.23.0.tgz", - "integrity": "sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.0.tgz", + "integrity": "sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.23.0", - "@typescript-eslint/utils": "8.23.0", + "@typescript-eslint/typescript-estree": "8.24.0", + "@typescript-eslint/utils": "8.24.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -1436,9 +1436,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", - "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.0.tgz", + "integrity": "sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==", "dev": true, "license": "MIT", "engines": { @@ -1450,14 +1450,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", - "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.0.tgz", + "integrity": "sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -1503,16 +1503,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz", - "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.0.tgz", + "integrity": "sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/typescript-estree": "8.23.0" + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/typescript-estree": "8.24.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1527,13 +1527,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", - "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz", + "integrity": "sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/types": "8.24.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -2477,18 +2477,18 @@ } }, "node_modules/eslint": { - "version": "9.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", - "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", + "version": "9.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.0.tgz", + "integrity": "sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.10.0", + "@eslint/core": "^0.11.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.19.0", + "@eslint/js": "9.20.0", "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -2537,13 +2537,13 @@ } }, "node_modules/eslint-config-next": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.6.tgz", - "integrity": "sha512-Wd1uy6y7nBbXUSg9QAuQ+xYEKli5CgUhLjz1QHW11jLDis5vK5XB3PemL6jEmy7HrdhaRFDz+GTZ/3FoH+EUjg==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.7.tgz", + "integrity": "sha512-zXoMnYUIy3XHaAoOhrcYkT9UQWvXqWju2K7NNsmb5wd/7XESDwof61eUdW4QhERr3eJ9Ko/vnXqIrj8kk/drYw==", "dev": true, "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.1.6", + "@next/eslint-plugin-next": "15.1.7", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -2847,6 +2847,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/@eslint/core": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.11.0.tgz", + "integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -4612,9 +4625,9 @@ } }, "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", "funding": [ { "type": "opencollective", @@ -4655,10 +4668,11 @@ } }, "node_modules/prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.0.tgz", + "integrity": "sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index f88246c50d..69cfffc286 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -23,9 +23,9 @@ "@types/react-dom": "^19.0.3", "autoprefixer": "^10.4.20", "eslint": "^9", - "eslint-config-next": "15.1.6", - "postcss": "^8.5.1", - "prettier": "^3.4.2", + "eslint-config-next": "15.1.7", + "postcss": "^8.5.2", + "prettier": "^3.5.0", "prettier-plugin-tailwindcss": "^0.6.11", "tailwindcss": "^4.0.4", "typescript": "^5" diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 69b9ec34ac..11d4e4f023 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -50,11 +50,11 @@ "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.23.0", - "@typescript-eslint/parser": "8.23.0", + "@typescript-eslint/eslint-plugin": "8.24.0", + "@typescript-eslint/parser": "8.24.0", "cypress": "14.0.2", - "eslint": "9.19.0", - "eslint-config-next": "15.1.6", + "eslint": "9.20.0", + "eslint-config-next": "15.1.7", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", "openapi-typescript": "7.6.1", @@ -350,9 +350,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.19.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", - "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", + "version": "9.20.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.20.0.tgz", + "integrity": "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==", "dev": true, "license": "MIT", "engines": { @@ -858,9 +858,9 @@ "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.6.tgz", - "integrity": "sha512-+slMxhTgILUntZDGNgsKEYHUvpn72WP1YTlkmEhS51vnVd7S9jEEy0n9YAMcI21vUG4akTw9voWH02lrClt/yw==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.7.tgz", + "integrity": "sha512-kRP7RjSxfTO13NE317ek3mSGzoZlI33nc/i5hs1KaWpK+egs85xg0DJ4p32QEiHnR0mVjuUfhRIun7awqfL7pQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3016,17 +3016,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.23.0.tgz", - "integrity": "sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.0.tgz", + "integrity": "sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/type-utils": "8.23.0", - "@typescript-eslint/utils": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/type-utils": "8.24.0", + "@typescript-eslint/utils": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3046,16 +3046,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.23.0.tgz", - "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.0.tgz", + "integrity": "sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/typescript-estree": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/typescript-estree": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "debug": "^4.3.4" }, "engines": { @@ -3071,14 +3071,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz", - "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.0.tgz", + "integrity": "sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0" + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3089,14 +3089,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.23.0.tgz", - "integrity": "sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.0.tgz", + "integrity": "sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.23.0", - "@typescript-eslint/utils": "8.23.0", + "@typescript-eslint/typescript-estree": "8.24.0", + "@typescript-eslint/utils": "8.24.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -3113,9 +3113,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", - "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.0.tgz", + "integrity": "sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==", "dev": true, "license": "MIT", "engines": { @@ -3127,14 +3127,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", - "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.0.tgz", + "integrity": "sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3167,16 +3167,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz", - "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.0.tgz", + "integrity": "sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/typescript-estree": "8.23.0" + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/typescript-estree": "8.24.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3191,13 +3191,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", - "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz", + "integrity": "sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/types": "8.24.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -4765,18 +4765,18 @@ } }, "node_modules/eslint": { - "version": "9.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", - "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", + "version": "9.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.0.tgz", + "integrity": "sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.10.0", + "@eslint/core": "^0.11.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.19.0", + "@eslint/js": "9.20.0", "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -4825,13 +4825,13 @@ } }, "node_modules/eslint-config-next": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.6.tgz", - "integrity": "sha512-Wd1uy6y7nBbXUSg9QAuQ+xYEKli5CgUhLjz1QHW11jLDis5vK5XB3PemL6jEmy7HrdhaRFDz+GTZ/3FoH+EUjg==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.7.tgz", + "integrity": "sha512-zXoMnYUIy3XHaAoOhrcYkT9UQWvXqWju2K7NNsmb5wd/7XESDwof61eUdW4QhERr3eJ9Ko/vnXqIrj8kk/drYw==", "dev": true, "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.1.6", + "@next/eslint-plugin-next": "15.1.7", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -5198,6 +5198,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/@eslint/core": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.11.0.tgz", + "integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", diff --git a/src/frontend/package.json b/src/frontend/package.json index 8b71013742..403c8c31b2 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -53,11 +53,11 @@ "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.23.0", - "@typescript-eslint/parser": "8.23.0", + "@typescript-eslint/eslint-plugin": "8.24.0", + "@typescript-eslint/parser": "8.24.0", "cypress": "14.0.2", - "eslint": "9.19.0", - "eslint-config-next": "15.1.6", + "eslint": "9.20.0", + "eslint-config-next": "15.1.7", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", "openapi-typescript": "7.6.1", From fded15dcb8fd7ed9c13c56ba341cd6d1253a3642 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Wed, 12 Feb 2025 03:31:41 -0500 Subject: [PATCH 117/178] remove renovate (#2024) --- renovate.json5 | 137 ------------------------------------------------- 1 file changed, 137 deletions(-) delete mode 100644 renovate.json5 diff --git a/renovate.json5 b/renovate.json5 deleted file mode 100644 index 401cfce8d7..0000000000 --- a/renovate.json5 +++ /dev/null @@ -1,137 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - - "schedule": "every weekend", - - // double PR and branch limits - prConcurrentLimit: 20, - branchConcurrentLimit: 20, - labels: ['dependencies'], - - // put by default dependency update all in one group - groupName: "config-no-service", - - "assigneesFromCodeOwners": true, - - "packageRules": [ - { - "matchFileNames": ["src/accounting/**"], - "groupName": "accounting", - }, - { - "matchFileNames": ["src/ad/**"], - "groupName": "ad", - }, - { - "matchFileNames": ["src/cart/**"], - "groupName": "cart", - }, - { - "matchFileNames": ["src/checkout/**"], - "groupName": "checkout", - }, - { - "matchFileNames": ["src/currency/**"], - "groupName": "currency", - }, - { - "matchFileNames": ["src/email/**"], - "groupName": "email", - }, - { - "matchFileNames": ["src/featureflagservice/**"], - "groupName": "featureflagservice", - }, - { - "matchFileNames": ["src/fraud-detection/**"], - "groupName": "fraud-detection", - }, - { - "matchFileNames": ["src/frontend/**"], - "groupName": "frontend", - }, - { - "matchFileNames": ["src/frontend-proxy/**"], - "groupName": "frontend-proxy", - }, - { - "matchFileNames": ["src/grafana/**"], - "groupName": "grafana", - }, - { - "matchFileNames": ["src/kafka/**"], - "groupName": "kafka", - }, - { - "matchFileNames": ["src/load-generator/**"], - "groupName": "load-generator", - }, - { - "matchFileNames": ["src/otel-collector/**"], - "groupName": "otel-collector", - }, - { - "matchFileNames": ["src/payment/**"], - "groupName": "payment", - }, - { - "matchFileNames": ["src/product-catalog/**"], - "groupName": "product-catalog", - }, - { - "matchFileNames": ["src/prometheus/**"], - "groupName": "prometheus", - }, - { - "matchFileNames": ["src/quote/**"], - "groupName": "quote", - }, - { - "matchFileNames": ["src/recommendation/**"], - "groupName": "recommendation", - }, - { - "matchFileNames": ["src/shipping/**"], - "groupName": "shipping", - }, - { - // intentionally using Java 11 in some examples - // not using matchUpdateTypes "major", because renovate wants to bump "11-jre" to "11.0.19_7-jre" - "matchPackageNames": ["eclipse-temurin"], - "enabled": false - } - ], - - "regexManagers": [ - { - // Parse image version from .env file. - "fileMatch": [ - ".env$" - ], - "datasourceTemplate": "docker", - "matchStrings": [ - "IMAGE=(?.+):(?.+)" - ] - }, - { - "fileMatch": [ - "test/tracetesting/Dockerfile$" - ], - "datasourceTemplate": "docker", - "depNameTemplate": "kubeshop/tracetest", - "matchStrings": [ - "IMAGE_VERSION=(?.+)" - ] - }, - { - "fileMatch": [ - "src/grafana/provisioning/datasources/opensearch.yaml$" - ], - "datasourceTemplate": "docker", - "depNameTemplate": "opensearchproject/opensearch", - "matchStrings": [ - "version: (?.+)" - ] - } - ] -} From 62a2c398d0470d0da90eaeb2b66acc9c117bc554 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Wed, 12 Feb 2025 03:50:15 -0500 Subject: [PATCH 118/178] [frontend] fix build warnings (#2025) * upgrade to node 22 * fix build warnings * fix build warnings --------- Co-authored-by: Juliano Costa --- CHANGELOG.md | 4 ++++ src/frontend/Dockerfile | 6 +++--- src/frontend/package.json | 2 +- src/frontend/pages/_document.tsx | 1 - src/frontend/pages/cart/checkout/[orderId]/index.tsx | 4 ++++ src/frontend/pages/cart/index.tsx | 4 ++++ src/frontend/pages/index.tsx | 4 ++++ src/frontend/pages/product/[productId]/index.tsx | 4 ++++ 8 files changed, 24 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 851cd3cc62..d00bac82ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,6 +84,10 @@ the release. ([#1954](https://github.com/open-telemetry/opentelemetry-demo/pull/1954)) * [accounting] bump OpenTelemetry .NET Automatic Instrumentation to 1.10.0 ([#1998](https://github.com/open-telemetry/opentelemetry-demo/pull/1998)) +* [frontend] update to Node 22 + ([#2025](https://github.com/open-telemetry/opentelemetry-demo/pull/2025)) +* [frontend] move page titles to individual pages + ([#2025](https://github.com/open-telemetry/opentelemetry-demo/pull/2025)) ## 1.12.0 diff --git a/src/frontend/Dockerfile b/src/frontend/Dockerfile index 36f07f84aa..9f6173b4e3 100644 --- a/src/frontend/Dockerfile +++ b/src/frontend/Dockerfile @@ -1,7 +1,7 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -FROM node:20-alpine AS deps +FROM node:22-alpine AS deps RUN apk add --no-cache libc6-compat WORKDIR /app @@ -9,7 +9,7 @@ WORKDIR /app COPY ./src/frontend/package*.json ./ RUN npm ci -FROM node:20-alpine AS builder +FROM node:22-alpine AS builder RUN apk add --no-cache libc6-compat WORKDIR /app COPY --from=deps /app/node_modules ./node_modules @@ -18,7 +18,7 @@ COPY ./src/frontend . RUN npm run build -FROM node:20-alpine AS runner +FROM node:22-alpine AS runner WORKDIR /app ENV NODE_ENV=production diff --git a/src/frontend/package.json b/src/frontend/package.json index 403c8c31b2..c68af9e851 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "dev": "NODE_OPTIONS='-r ./utils/telemetry/Instrumentation.js' next dev", + "dev": "NODE_OPTIONS='--require ./utils/telemetry/Instrumentation.js' next dev", "build": "next build", "start": "node --require ./Instrumentation.js server.js", "lint": "next lint", diff --git a/src/frontend/pages/_document.tsx b/src/frontend/pages/_document.tsx index 15e978d4d8..8a68bc024c 100644 --- a/src/frontend/pages/_document.tsx +++ b/src/frontend/pages/_document.tsx @@ -53,7 +53,6 @@ export default class MyDocument extends Document<{ envString: string }> { href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap" rel="stylesheet" /> - OTel demo
    diff --git a/src/frontend/pages/cart/checkout/[orderId]/index.tsx b/src/frontend/pages/cart/checkout/[orderId]/index.tsx index 31cdbfc2b1..740b895307 100644 --- a/src/frontend/pages/cart/checkout/[orderId]/index.tsx +++ b/src/frontend/pages/cart/checkout/[orderId]/index.tsx @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { NextPage } from 'next'; +import Head from 'next/head'; import Link from 'next/link'; import { useRouter } from 'next/router'; import Ad from '../../../../components/Ad'; @@ -23,6 +24,9 @@ const Checkout: NextPage = () => { productIds={items.map(({ item }) => item?.productId || '')} contextKeys={[...new Set(items.flatMap(({ item }) => item.product.categories))]} > + + Otel Demo - Checkout + diff --git a/src/frontend/pages/cart/index.tsx b/src/frontend/pages/cart/index.tsx index 7e0a3f7e8a..efb01c91ed 100644 --- a/src/frontend/pages/cart/index.tsx +++ b/src/frontend/pages/cart/index.tsx @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { NextPage } from 'next'; +import Head from 'next/head'; import Footer from '../../components/Footer'; import Layout from '../../components/Layout'; import Recommendations from '../../components/Recommendations'; @@ -21,6 +22,9 @@ const Cart: NextPage = () => { productIds={items.map(({ productId }) => productId)} contextKeys={[...new Set(items.flatMap(({ product }) => product.categories))]} > + + Otel Demo - Cart + {(!!items.length && ) || } diff --git a/src/frontend/pages/index.tsx b/src/frontend/pages/index.tsx index 3bd6f418e0..1786b05c47 100755 --- a/src/frontend/pages/index.tsx +++ b/src/frontend/pages/index.tsx @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { NextPage } from 'next'; +import Head from 'next/head'; import Footer from '../components/Footer'; import Layout from '../components/Layout'; import ProductList from '../components/ProductList'; @@ -21,6 +22,9 @@ const Home: NextPage = () => { return ( + + Otel Demo - Home + diff --git a/src/frontend/pages/product/[productId]/index.tsx b/src/frontend/pages/product/[productId]/index.tsx index 9cf26c9ed8..fccfe07478 100644 --- a/src/frontend/pages/product/[productId]/index.tsx +++ b/src/frontend/pages/product/[productId]/index.tsx @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { NextPage } from 'next'; +import Head from 'next/head'; import Image from 'next/image'; import { useRouter } from 'next/router'; import { useCallback, useState, useEffect } from 'react'; @@ -64,6 +65,9 @@ const ProductDetail: NextPage = () => { productIds={[productId, ...items.map(({ productId }) => productId)]} contextKeys={[...new Set(categories)]} > + + Otel Demo - Product + From a99c18de56d8e84661a58f17eb93ddb0ee4bf77c Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Wed, 12 Feb 2025 10:05:22 +0100 Subject: [PATCH 119/178] Adding Oracle to the list of Vendors (#2026) * Update README.md Added Oracle to the list of vendors * Update README.md Added Oracle link to the table --------- Co-authored-by: Juliano Costa --- README.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 8a3a52103a..1e5dad521e 100644 --- a/README.md +++ b/README.md @@ -59,15 +59,15 @@ keeping it up to date for you. | | | | |---------------------------|----------------|----------------------------------| | [AlibabaCloud LogService] | [Elastic] | [OpenSearch] | -| [AppDynamics] | [Google Cloud] | [Sentry] | -| [Aspecto] | [Grafana Labs] | [ServiceNow Cloud Observability] | -| [Axiom] | [Guance] | [Splunk] | -| [Axoflow] | [Honeycomb.io] | [Sumo Logic] | -| [Azure Data Explorer] | [Instana] | [TelemetryHub] | -| [Coralogix] | [Kloudfuse] | [Teletrace] | -| [Dash0] | [Liatrio] | [Tracetest] | -| [Datadog] | [Logz.io] | [Uptrace] | -| [Dynatrace] | [New Relic] | | +| [AppDynamics] | [Google Cloud] | [Oracle] | +| [Aspecto] | [Grafana Labs] | [Sentry] | +| [Axiom] | [Guance] | [ServiceNow Cloud Observability] | +| [Axoflow] | [Honeycomb.io] | [Splunk] | +| [Azure Data Explorer] | [Instana] | [Sumo Logic] | +| [Coralogix] | [Kloudfuse] | [TelemetryHub] | +| [Dash0] | [Liatrio] | [Teletrace] | +| [Datadog] | [Logz.io] | [Tracetest] | +| [Dynatrace] | [New Relic] | [Uptrace] | ## Contributing @@ -129,6 +129,7 @@ Emeritus: [Logz.io]: https://logz.io/learn/how-to-run-opentelemetry-demo-with-logz-io/ [New Relic]: https://github.com/newrelic/opentelemetry-demo [OpenSearch]: https://github.com/opensearch-project/opentelemetry-demo +[Oracle]: https://github.com/oracle-quickstart/oci-o11y-solutions/blob/main/knowledge-content/opentelemetry-demo [Sentry]: https://github.com/getsentry/opentelemetry-demo [ServiceNow Cloud Observability]: https://docs.lightstep.com/otel/quick-start-operator#send-data-from-the-opentelemetry-demo [Splunk]: https://github.com/signalfx/opentelemetry-demo From fa06ec085882f4eefe1ed795cfc54dd64ed8f95d Mon Sep 17 00:00:00 2001 From: Michele Azzolari Date: Wed, 12 Feb 2025 12:05:38 +0100 Subject: [PATCH 120/178] [chore] frontend: update Dockerfile to reduce final image size by 15% (#2017) --- src/frontend/Dockerfile | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/frontend/Dockerfile b/src/frontend/Dockerfile index 9f6173b4e3..6fabb29092 100644 --- a/src/frontend/Dockerfile +++ b/src/frontend/Dockerfile @@ -1,23 +1,30 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -FROM node:22-alpine AS deps +FROM node:22-alpine AS builder RUN apk add --no-cache libc6-compat +USER node + WORKDIR /app COPY ./src/frontend/package*.json ./ -RUN npm ci - -FROM node:22-alpine AS builder -RUN apk add --no-cache libc6-compat -WORKDIR /app -COPY --from=deps /app/node_modules ./node_modules +RUN npm clean-install --no-audit --no-progress COPY ./src/frontend/protos ./protos COPY ./src/frontend . RUN npm run build +FROM node:22-alpine AS deps + +USER node + +WORKDIR /app +COPY --chown=node:node --from=builder /home/node/.npm/ /home/node/.npm/ +COPY ./src/frontend/package*.json ./ +RUN NODE_ENV=production npm clean-install --prefer-offline --no-audit --no-progress + + FROM node:22-alpine AS runner WORKDIR /app From bf800d1005537cc38212820996e578ea291862ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 09:14:05 +0100 Subject: [PATCH 121/178] build(deps): bump the nuget-production-dependencies group across 3 directories with 2 updates (#2028) Bumps the nuget-production-dependencies group with 1 update in the /src/accounting directory: [Microsoft.Extensions.Logging](https://github.com/dotnet/runtime). Bumps the nuget-production-dependencies group with 1 update in the /src/cart directory: [Microsoft.AspNetCore.TestHost](https://github.com/dotnet/aspnetcore). Bumps the nuget-production-dependencies group with 1 update in the /src/cart/tests directory: [Microsoft.AspNetCore.TestHost](https://github.com/dotnet/aspnetcore). Updates `Microsoft.Extensions.Logging` from 9.0.1 to 9.0.2 - [Release notes](https://github.com/dotnet/runtime/releases) - [Commits](https://github.com/dotnet/runtime/compare/v9.0.1...v9.0.2) Updates `Microsoft.AspNetCore.TestHost` from 8.0.12 to 8.0.13 - [Release notes](https://github.com/dotnet/aspnetcore/releases) - [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md) - [Commits](https://github.com/dotnet/aspnetcore/compare/v8.0.12...v8.0.13) Updates `Microsoft.AspNetCore.TestHost` from 8.0.12 to 8.0.13 - [Release notes](https://github.com/dotnet/aspnetcore/releases) - [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md) - [Commits](https://github.com/dotnet/aspnetcore/compare/v8.0.12...v8.0.13) --- updated-dependencies: - dependency-name: Microsoft.Extensions.Logging dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: Microsoft.AspNetCore.TestHost dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies - dependency-name: Microsoft.AspNetCore.TestHost dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nuget-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/accounting/Accounting.csproj | 2 +- src/cart/tests/cart.tests.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/accounting/Accounting.csproj b/src/accounting/Accounting.csproj index c2e433a46f..3272e1c37b 100644 --- a/src/accounting/Accounting.csproj +++ b/src/accounting/Accounting.csproj @@ -15,7 +15,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/cart/tests/cart.tests.csproj b/src/cart/tests/cart.tests.csproj index c952e7bf6f..05d49e8c53 100644 --- a/src/cart/tests/cart.tests.csproj +++ b/src/cart/tests/cart.tests.csproj @@ -6,7 +6,7 @@ - + From c424c8119981f04b7a82d9fa20b1811b3efc1ddb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Feb 2025 23:42:44 -0500 Subject: [PATCH 122/178] build(deps-dev): bump the npm-development-dependencies group across 2 directories with 4 updates (#2036) * build(deps-dev): bump the npm-development-dependencies group across 2 directories with 4 updates Bumps the npm-development-dependencies group with 3 updates in the /src/flagd-ui directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [eslint](https://github.com/eslint/eslint) and [prettier](https://github.com/prettier/prettier). Bumps the npm-development-dependencies group with 3 updates in the /src/frontend directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [eslint](https://github.com/eslint/eslint) and [cypress](https://github.com/cypress-io/cypress). Updates `@types/node` from 22.13.1 to 22.13.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 9.20.0 to 9.20.1 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.20.0...v9.20.1) Updates `prettier` from 3.5.0 to 3.5.1 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.5.0...3.5.1) Updates `@types/node` from 22.13.1 to 22.13.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 9.20.0 to 9.20.1 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.20.0...v9.20.1) Updates `cypress` from 14.0.2 to 14.0.3 - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v14.0.2...v14.0.3) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: cypress dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] * ignore .next build files * use Node 22 LTS --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/flagd-ui/Dockerfile | 4 ++-- src/flagd-ui/package-lock.json | 20 ++++++++++---------- src/flagd-ui/package.json | 2 +- src/frontend/.dockerignore | 3 ++- src/frontend/package-lock.json | 26 +++++++++++++------------- src/frontend/package.json | 6 +++--- 6 files changed, 31 insertions(+), 30 deletions(-) diff --git a/src/flagd-ui/Dockerfile b/src/flagd-ui/Dockerfile index 6bc1b4c6d7..ccf6ee04e7 100644 --- a/src/flagd-ui/Dockerfile +++ b/src/flagd-ui/Dockerfile @@ -1,7 +1,7 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -FROM node:20 AS builder +FROM node:22 AS builder WORKDIR /app @@ -15,7 +15,7 @@ RUN npm run build # ----------------------------------------------------------------------------- -FROM node:20-alpine +FROM node:22-alpine WORKDIR /app diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index d17e83f3ce..4b608ce031 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -24,7 +24,7 @@ "eslint": "^9", "eslint-config-next": "15.1.7", "postcss": "^8.5.2", - "prettier": "^3.5.0", + "prettier": "^3.5.1", "prettier-plugin-tailwindcss": "^0.6.11", "tailwindcss": "^4.0.4", "typescript": "^5" @@ -1303,9 +1303,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", - "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", + "version": "22.13.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", + "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", "dev": true, "license": "MIT", "dependencies": { @@ -2477,9 +2477,9 @@ } }, "node_modules/eslint": { - "version": "9.20.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.0.tgz", - "integrity": "sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==", + "version": "9.20.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.1.tgz", + "integrity": "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==", "dev": true, "license": "MIT", "dependencies": { @@ -4668,9 +4668,9 @@ } }, "node_modules/prettier": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.0.tgz", - "integrity": "sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.1.tgz", + "integrity": "sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==", "dev": true, "license": "MIT", "bin": { diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 69cfffc286..b8f9d960f2 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -25,7 +25,7 @@ "eslint": "^9", "eslint-config-next": "15.1.7", "postcss": "^8.5.2", - "prettier": "^3.5.0", + "prettier": "^3.5.1", "prettier-plugin-tailwindcss": "^0.6.11", "tailwindcss": "^4.0.4", "typescript": "^5" diff --git a/src/frontend/.dockerignore b/src/frontend/.dockerignore index b512c09d47..b90a368f6a 100644 --- a/src/frontend/.dockerignore +++ b/src/frontend/.dockerignore @@ -1 +1,2 @@ -node_modules \ No newline at end of file +node_modules +.next diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 11d4e4f023..a9bbad1fde 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -45,15 +45,15 @@ "uuid": "11.0.5" }, "devDependencies": { - "@types/node": "22.13.1", + "@types/node": "22.13.4", "@types/react": "19.0.8", "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", "@typescript-eslint/eslint-plugin": "8.24.0", "@typescript-eslint/parser": "8.24.0", - "cypress": "14.0.2", - "eslint": "9.20.0", + "cypress": "14.0.3", + "eslint": "9.20.1", "eslint-config-next": "15.1.7", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", @@ -2902,9 +2902,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", - "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", + "version": "22.13.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", + "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -4219,14 +4219,14 @@ "license": "BSD-2-Clause" }, "node_modules/cypress": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.0.2.tgz", - "integrity": "sha512-3qqTU2JoVY262qkYg9I2nohwxcfsJk0dSVp/LXAjD94Jz2y6411Mf/l5uHEHiaANrOmMcHbzYgOd/ueDsZlS7A==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.0.3.tgz", + "integrity": "sha512-yIdvobANw3kS+KF/t5vwjjPNufBA8ux7iQHaWxPTkUw2yCKI72m9mKM24eOwE84Wk4ALPsSvEcGbDrwgmhr4RA==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "@cypress/request": "^3.0.6", + "@cypress/request": "^3.0.7", "@cypress/xvfb": "^1.2.4", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", @@ -4765,9 +4765,9 @@ } }, "node_modules/eslint": { - "version": "9.20.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.0.tgz", - "integrity": "sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==", + "version": "9.20.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.1.tgz", + "integrity": "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==", "dev": true, "license": "MIT", "dependencies": { diff --git a/src/frontend/package.json b/src/frontend/package.json index c68af9e851..3d2ee2f790 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -48,15 +48,15 @@ "uuid": "11.0.5" }, "devDependencies": { - "@types/node": "22.13.1", + "@types/node": "22.13.4", "@types/react": "19.0.8", "@types/react-dom": "19.0.3", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", "@typescript-eslint/eslint-plugin": "8.24.0", "@typescript-eslint/parser": "8.24.0", - "cypress": "14.0.2", - "eslint": "9.20.0", + "cypress": "14.0.3", + "eslint": "9.20.1", "eslint-config-next": "15.1.7", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", From baeb04eeb64d6de4bbc172d2cc6031fc618081a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Feb 2025 00:23:26 -0500 Subject: [PATCH 123/178] build(deps): bump the gradle-production-dependencies group across 2 directories with 1 update (#2040) Bumps the gradle-production-dependencies group with 1 update in the /src/ad directory: dev.openfeature.contrib.providers:flagd. Bumps the gradle-production-dependencies group with 1 update in the /src/fraud-detection directory: dev.openfeature.contrib.providers:flagd. Updates `dev.openfeature.contrib.providers:flagd` from 0.10.5 to 0.11.2 Updates `dev.openfeature.contrib.providers:flagd` from 0.10.5 to 0.11.2 --- updated-dependencies: - dependency-name: dev.openfeature.contrib.providers:flagd dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: dev.openfeature.contrib.providers:flagd dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/ad/build.gradle | 2 +- src/fraud-detection/build.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ad/build.gradle b/src/ad/build.gradle index 82fd0bc82a..3752186615 100644 --- a/src/ad/build.gradle +++ b/src/ad/build.gradle @@ -51,7 +51,7 @@ dependencies { "io.opentelemetry:opentelemetry-sdk", "io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations", "org.apache.logging.log4j:log4j-core:2.24.3", - "dev.openfeature.contrib.providers:flagd:0.10.5", + "dev.openfeature.contrib.providers:flagd:0.11.2", 'dev.openfeature:sdk:1.14.0' runtimeOnly "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}", diff --git a/src/fraud-detection/build.gradle.kts b/src/fraud-detection/build.gradle.kts index c83b46f226..cda91b87c4 100644 --- a/src/fraud-detection/build.gradle.kts +++ b/src/fraud-detection/build.gradle.kts @@ -43,7 +43,7 @@ dependencies { implementation("org.slf4j:slf4j-api:2.0.16") implementation("com.google.protobuf:protobuf-kotlin:${protobufVersion}") implementation("dev.openfeature:sdk:1.14.0") - implementation("dev.openfeature.contrib.providers:flagd:0.10.5") + implementation("dev.openfeature.contrib.providers:flagd:0.11.2") if (JavaVersion.current().isJava9Compatible) { // Workaround for @javax.annotation.Generated From 8bb328addba8058ab5a0fefba19003bac125e361 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Feb 2025 00:34:03 -0500 Subject: [PATCH 124/178] build(deps): bump the npm-production-dependencies group across 2 directories with 7 updates (#2041) Bumps the npm-production-dependencies group with 2 updates in the /src/flagd-ui directory: [next](https://github.com/vercel/next.js) and [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js). Bumps the npm-production-dependencies group with 7 updates in the /src/frontend directory: | Package | From | To | | --- | --- | --- | | [next](https://github.com/vercel/next.js) | `15.1.6` | `15.1.7` | | [@opentelemetry/exporter-metrics-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js) | `0.57.1` | `0.57.2` | | [@opentelemetry/exporter-trace-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js) | `0.57.1` | `0.57.2` | | [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.57.1` | `0.57.2` | | [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js) | `0.57.1` | `0.57.2` | | [@opentelemetry/sdk-node](https://github.com/open-telemetry/opentelemetry-js) | `0.57.1` | `0.57.2` | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.66.0` | `5.66.3` | Updates `next` from 15.1.6 to 15.1.7 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.1.6...v15.1.7) Updates `@opentelemetry/instrumentation` from 0.57.1 to 0.57.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.57.1...experimental/v0.57.2) Updates `next` from 15.1.6 to 15.1.7 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.1.6...v15.1.7) Updates `@opentelemetry/exporter-metrics-otlp-grpc` from 0.57.1 to 0.57.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.57.1...experimental/v0.57.2) Updates `@opentelemetry/exporter-trace-otlp-grpc` from 0.57.1 to 0.57.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.57.1...experimental/v0.57.2) Updates `@opentelemetry/exporter-trace-otlp-http` from 0.57.1 to 0.57.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.57.1...experimental/v0.57.2) Updates `@opentelemetry/instrumentation` from 0.57.1 to 0.57.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.57.1...experimental/v0.57.2) Updates `@opentelemetry/sdk-node` from 0.57.1 to 0.57.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.57.1...experimental/v0.57.2) Updates `@tanstack/react-query` from 5.66.0 to 5.66.3 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.66.3/packages/react-query) --- updated-dependencies: - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation" dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-metrics-otlp-grpc" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-trace-otlp-grpc" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-trace-otlp-http" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-node" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/flagd-ui/package-lock.json | 96 +++---- src/flagd-ui/package.json | 2 +- src/frontend/package-lock.json | 448 ++++++++++++++++++++++----------- src/frontend/package.json | 14 +- 4 files changed, 358 insertions(+), 202 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 4b608ce031..b9efb2e444 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -11,7 +11,7 @@ "@tailwindcss/postcss": "^4.0.6", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", - "next": "15.1.6", + "next": "15.1.7", "react": "^19", "react-dom": "^19" }, @@ -584,9 +584,9 @@ } }, "node_modules/@next/env": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.6.tgz", - "integrity": "sha512-d9AFQVPEYNr+aqokIiPLNK/MTyt3DWa/dpKveiAaVccUadFbhFEvY6FXYX2LJO2Hv7PHnLBu2oWwB4uBuHjr/w==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.7.tgz", + "integrity": "sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -630,9 +630,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.6.tgz", - "integrity": "sha512-u7lg4Mpl9qWpKgy6NzEkz/w0/keEHtOybmIl0ykgItBxEM5mYotS5PmqTpo+Rhg8FiOiWgwr8USxmKQkqLBCrw==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.7.tgz", + "integrity": "sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==", "cpu": [ "arm64" ], @@ -646,9 +646,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.6.tgz", - "integrity": "sha512-x1jGpbHbZoZ69nRuogGL2MYPLqohlhnT9OCU6E6QFewwup+z+M6r8oU47BTeJcWsF2sdBahp5cKiAcDbwwK/lg==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.7.tgz", + "integrity": "sha512-2qoas+fO3OQKkU0PBUfwTiw/EYpN+kdAx62cePRyY1LqKtP09Vp5UcUntfZYajop5fDFTjSxCHfZVRxzi+9FYQ==", "cpu": [ "x64" ], @@ -662,9 +662,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.6.tgz", - "integrity": "sha512-jar9sFw0XewXsBzPf9runGzoivajeWJUc/JkfbLTC4it9EhU8v7tCRLH7l5Y1ReTMN6zKJO0kKAGqDk8YSO2bg==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.7.tgz", + "integrity": "sha512-sKLLwDX709mPdzxMnRIXLIT9zaX2w0GUlkLYQnKGoXeWUhcvpCrK+yevcwCJPdTdxZEUA0mOXGLdPsGkudGdnA==", "cpu": [ "arm64" ], @@ -678,9 +678,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.6.tgz", - "integrity": "sha512-+n3u//bfsrIaZch4cgOJ3tXCTbSxz0s6brJtU3SzLOvkJlPQMJ+eHVRi6qM2kKKKLuMY+tcau8XD9CJ1OjeSQQ==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.7.tgz", + "integrity": "sha512-zblK1OQbQWdC8fxdX4fpsHDw+VSpBPGEUX4PhSE9hkaWPrWoeIJn+baX53vbsbDRaDKd7bBNcXRovY1hEhFd7w==", "cpu": [ "arm64" ], @@ -694,9 +694,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.6.tgz", - "integrity": "sha512-SpuDEXixM3PycniL4iVCLyUyvcl6Lt0mtv3am08sucskpG0tYkW1KlRhTgj4LI5ehyxriVVcfdoxuuP8csi3kQ==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.7.tgz", + "integrity": "sha512-GOzXutxuLvLHFDAPsMP2zDBMl1vfUHHpdNpFGhxu90jEzH6nNIgmtw/s1MDwpTOiM+MT5V8+I1hmVFeAUhkbgQ==", "cpu": [ "x64" ], @@ -710,9 +710,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.6.tgz", - "integrity": "sha512-L4druWmdFSZIIRhF+G60API5sFB7suTbDRhYWSjiw0RbE+15igQvE2g2+S973pMGvwN3guw7cJUjA/TmbPWTHQ==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.7.tgz", + "integrity": "sha512-WrZ7jBhR7ATW1z5iEQ0ZJfE2twCNSXbpCSaAunF3BKcVeHFADSI/AW1y5Xt3DzTqPF1FzQlwQTewqetAABhZRQ==", "cpu": [ "x64" ], @@ -726,9 +726,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.6.tgz", - "integrity": "sha512-s8w6EeqNmi6gdvM19tqKKWbCyOBvXFbndkGHl+c9YrzsLARRdCHsD9S1fMj8gsXm9v8vhC8s3N8rjuC/XrtkEg==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.7.tgz", + "integrity": "sha512-LDnj1f3OVbou1BqvvXVqouJZKcwq++mV2F+oFHptToZtScIEnhNRJAhJzqAtTE2dB31qDYL45xJwrc+bLeKM2Q==", "cpu": [ "arm64" ], @@ -742,9 +742,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.6.tgz", - "integrity": "sha512-6xomMuu54FAFxttYr5PJbEfu96godcxBTRk1OhAvJq0/EnmFU/Ybiax30Snis4vdWZ9LGpf7Roy5fSs7v/5ROQ==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.7.tgz", + "integrity": "sha512-dC01f1quuf97viOfW05/K8XYv2iuBgAxJZl7mbCKEjMgdQl5JjAKJ0D2qMKZCgPWDeFbFT0Q0nYWwytEW0DWTQ==", "cpu": [ "x64" ], @@ -841,12 +841,13 @@ } }, "node_modules/@opentelemetry/instrumentation": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz", - "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz", + "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==", + "license": "Apache-2.0", "peer": true, "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", @@ -861,9 +862,10 @@ } }, "node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.1.tgz", - "integrity": "sha512-I4PHczeujhQAQv6ZBzqHYEUiggZL4IdSMixtVD3EYqbdrjujE7kRfI5QohjlPoJm8BvenoW5YaTMWRrbpot6tg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", "peer": true, "dependencies": { "@opentelemetry/api": "^1.3.0" @@ -4288,12 +4290,12 @@ "dev": true }, "node_modules/next": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/next/-/next-15.1.6.tgz", - "integrity": "sha512-Hch4wzbaX0vKQtalpXvUiw5sYivBy4cm5rzUKrBnUB/y436LGrvOUqYvlSeNVCWFO/770gDlltR9gqZH62ct4Q==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/next/-/next-15.1.7.tgz", + "integrity": "sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg==", "license": "MIT", "dependencies": { - "@next/env": "15.1.6", + "@next/env": "15.1.7", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.15", "busboy": "1.6.0", @@ -4308,14 +4310,14 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.1.6", - "@next/swc-darwin-x64": "15.1.6", - "@next/swc-linux-arm64-gnu": "15.1.6", - "@next/swc-linux-arm64-musl": "15.1.6", - "@next/swc-linux-x64-gnu": "15.1.6", - "@next/swc-linux-x64-musl": "15.1.6", - "@next/swc-win32-arm64-msvc": "15.1.6", - "@next/swc-win32-x64-msvc": "15.1.6", + "@next/swc-darwin-arm64": "15.1.7", + "@next/swc-darwin-x64": "15.1.7", + "@next/swc-linux-arm64-gnu": "15.1.7", + "@next/swc-linux-arm64-musl": "15.1.7", + "@next/swc-linux-x64-gnu": "15.1.7", + "@next/swc-linux-x64-musl": "15.1.7", + "@next/swc-win32-arm64-msvc": "15.1.7", + "@next/swc-win32-x64-msvc": "15.1.7", "sharp": "^0.33.5" }, "peerDependencies": { diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index b8f9d960f2..9f7cf231c5 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -12,7 +12,7 @@ "@tailwindcss/postcss": "^4.0.6", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", - "next": "15.1.6", + "next": "15.1.7", "react": "^19", "react-dom": "^19" }, diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index a9bbad1fde..4c71363581 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -18,26 +18,26 @@ "@opentelemetry/auto-instrumentations-web": "0.45.0", "@opentelemetry/context-zone": "1.30.1", "@opentelemetry/core": "1.30.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-trace-otlp-http": "0.57.1", - "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-trace-otlp-http": "0.57.2", + "@opentelemetry/instrumentation": "0.57.2", "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", "@opentelemetry/resource-detector-aws": "1.11.0", "@opentelemetry/resource-detector-container": "0.6.0", "@opentelemetry/resource-detector-gcp": "0.33.0", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", - "@opentelemetry/sdk-node": "0.57.1", + "@opentelemetry/sdk-node": "0.57.2", "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.66.0", + "@tanstack/react-query": "5.66.3", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", "dotenv-expand": "12.0.1", - "next": "15.1.6", + "next": "15.1.7", "react": "19.0.0", "react-dom": "19.0.0", "sharp": "0.33.5", @@ -852,9 +852,9 @@ } }, "node_modules/@next/env": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.6.tgz", - "integrity": "sha512-d9AFQVPEYNr+aqokIiPLNK/MTyt3DWa/dpKveiAaVccUadFbhFEvY6FXYX2LJO2Hv7PHnLBu2oWwB4uBuHjr/w==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.7.tgz", + "integrity": "sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -898,9 +898,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.6.tgz", - "integrity": "sha512-u7lg4Mpl9qWpKgy6NzEkz/w0/keEHtOybmIl0ykgItBxEM5mYotS5PmqTpo+Rhg8FiOiWgwr8USxmKQkqLBCrw==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.7.tgz", + "integrity": "sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==", "cpu": [ "arm64" ], @@ -914,9 +914,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.6.tgz", - "integrity": "sha512-x1jGpbHbZoZ69nRuogGL2MYPLqohlhnT9OCU6E6QFewwup+z+M6r8oU47BTeJcWsF2sdBahp5cKiAcDbwwK/lg==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.7.tgz", + "integrity": "sha512-2qoas+fO3OQKkU0PBUfwTiw/EYpN+kdAx62cePRyY1LqKtP09Vp5UcUntfZYajop5fDFTjSxCHfZVRxzi+9FYQ==", "cpu": [ "x64" ], @@ -930,9 +930,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.6.tgz", - "integrity": "sha512-jar9sFw0XewXsBzPf9runGzoivajeWJUc/JkfbLTC4it9EhU8v7tCRLH7l5Y1ReTMN6zKJO0kKAGqDk8YSO2bg==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.7.tgz", + "integrity": "sha512-sKLLwDX709mPdzxMnRIXLIT9zaX2w0GUlkLYQnKGoXeWUhcvpCrK+yevcwCJPdTdxZEUA0mOXGLdPsGkudGdnA==", "cpu": [ "arm64" ], @@ -946,9 +946,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.6.tgz", - "integrity": "sha512-+n3u//bfsrIaZch4cgOJ3tXCTbSxz0s6brJtU3SzLOvkJlPQMJ+eHVRi6qM2kKKKLuMY+tcau8XD9CJ1OjeSQQ==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.7.tgz", + "integrity": "sha512-zblK1OQbQWdC8fxdX4fpsHDw+VSpBPGEUX4PhSE9hkaWPrWoeIJn+baX53vbsbDRaDKd7bBNcXRovY1hEhFd7w==", "cpu": [ "arm64" ], @@ -962,9 +962,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.6.tgz", - "integrity": "sha512-SpuDEXixM3PycniL4iVCLyUyvcl6Lt0mtv3am08sucskpG0tYkW1KlRhTgj4LI5ehyxriVVcfdoxuuP8csi3kQ==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.7.tgz", + "integrity": "sha512-GOzXutxuLvLHFDAPsMP2zDBMl1vfUHHpdNpFGhxu90jEzH6nNIgmtw/s1MDwpTOiM+MT5V8+I1hmVFeAUhkbgQ==", "cpu": [ "x64" ], @@ -978,9 +978,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.6.tgz", - "integrity": "sha512-L4druWmdFSZIIRhF+G60API5sFB7suTbDRhYWSjiw0RbE+15igQvE2g2+S973pMGvwN3guw7cJUjA/TmbPWTHQ==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.7.tgz", + "integrity": "sha512-WrZ7jBhR7ATW1z5iEQ0ZJfE2twCNSXbpCSaAunF3BKcVeHFADSI/AW1y5Xt3DzTqPF1FzQlwQTewqetAABhZRQ==", "cpu": [ "x64" ], @@ -994,9 +994,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.6.tgz", - "integrity": "sha512-s8w6EeqNmi6gdvM19tqKKWbCyOBvXFbndkGHl+c9YrzsLARRdCHsD9S1fMj8gsXm9v8vhC8s3N8rjuC/XrtkEg==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.7.tgz", + "integrity": "sha512-LDnj1f3OVbou1BqvvXVqouJZKcwq++mV2F+oFHptToZtScIEnhNRJAhJzqAtTE2dB31qDYL45xJwrc+bLeKM2Q==", "cpu": [ "arm64" ], @@ -1010,9 +1010,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.6.tgz", - "integrity": "sha512-6xomMuu54FAFxttYr5PJbEfu96godcxBTRk1OhAvJq0/EnmFU/Ybiax30Snis4vdWZ9LGpf7Roy5fSs7v/5ROQ==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.7.tgz", + "integrity": "sha512-dC01f1quuf97viOfW05/K8XYv2iuBgAxJZl7mbCKEjMgdQl5JjAKJ0D2qMKZCgPWDeFbFT0Q0nYWwytEW0DWTQ==", "cpu": [ "x64" ], @@ -1338,16 +1338,17 @@ } }, "node_modules/@opentelemetry/exporter-logs-otlp-grpc": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-grpc/-/exporter-logs-otlp-grpc-0.57.1.tgz", - "integrity": "sha512-RL8qmZH1H/H7Hbj0xKxF0Gg8kX9ic0aoMS3Kv5kj864lWxlpuR5YtGGn5OjGYwCmq6nYbsNy257fFp1U63pABw==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-grpc/-/exporter-logs-otlp-grpc-0.57.2.tgz", + "integrity": "sha512-eovEy10n3umjKJl2Ey6TLzikPE+W4cUQ4gCwgGP1RqzTGtgDra0WjIqdy29ohiUKfvmbiL3MndZww58xfIvyFw==", "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", - "@opentelemetry/sdk-logs": "0.57.1" + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", + "@opentelemetry/sdk-logs": "0.57.2" }, "engines": { "node": ">=14" @@ -1357,16 +1358,16 @@ } }, "node_modules/@opentelemetry/exporter-logs-otlp-http": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.57.1.tgz", - "integrity": "sha512-u8Cr6yDX57/n89aSJwAQNHQIYodcl6o8jTcaPKNktMvNfd7ny3R7aE7GKBC5Wg0zejP9heBgyN0OGwrPhptx7A==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.57.2.tgz", + "integrity": "sha512-0rygmvLcehBRp56NQVLSleJ5ITTduq/QfU7obOkyWgPpFHulwpw2LYTqNIz5TczKZuy5YY+5D3SDnXZL1tXImg==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", - "@opentelemetry/sdk-logs": "0.57.1" + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", + "@opentelemetry/sdk-logs": "0.57.2" }, "engines": { "node": ">=14" @@ -1375,18 +1376,30 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/exporter-logs-otlp-http/node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/exporter-logs-otlp-proto": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-proto/-/exporter-logs-otlp-proto-0.57.1.tgz", - "integrity": "sha512-WtR85NHdIVrIFfsK5bwx7miGG5WzOsuT4BNmuZ3EfZ0veowkrgoUSynsNnXW1YFXL6QhPbScjUfeTjnnV9bnIQ==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-proto/-/exporter-logs-otlp-proto-0.57.2.tgz", + "integrity": "sha512-ta0ithCin0F8lu9eOf4lEz9YAScecezCHkMMyDkvd9S7AnZNX5ikUmC5EQOQADU+oCcgo/qkQIaKcZvQ0TYKDw==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", - "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-logs": "0.57.2", "@opentelemetry/sdk-trace-base": "1.30.1" }, "engines": { @@ -1396,18 +1409,30 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/exporter-logs-otlp-proto/node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/exporter-metrics-otlp-grpc": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.57.1.tgz", - "integrity": "sha512-8B7k5q4AUldbfvubcHApg1XQaio/cO/VUWsM5PSaRP2fsjGNwbn2ih04J3gLD+AmgslvyuDcA2SZiDXEKwAxtQ==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.57.2.tgz", + "integrity": "sha512-r70B8yKR41F0EC443b5CGB4rUaOMm99I5N75QQt6sHKxYDzSEc6gm48Diz1CI1biwa5tDPznpylTrywO/pT7qw==", "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.30.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.2", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1" }, @@ -1419,14 +1444,14 @@ } }, "node_modules/@opentelemetry/exporter-metrics-otlp-http": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.57.1.tgz", - "integrity": "sha512-jpKYVZY7fdwTdy+eAy/Mp9DZMaQpj7caMzlo3QqQDSJx5FZEY6zWzgcKvDvF6h+gdHE7LgUjaPOvJVUs354jJg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.57.2.tgz", + "integrity": "sha512-ttb9+4iKw04IMubjm3t0EZsYRNWr3kg44uUuzfo9CaccYlOh8cDooe4QObDUkvx9d5qQUrbEckhrWKfJnKhemA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1" }, @@ -1438,15 +1463,15 @@ } }, "node_modules/@opentelemetry/exporter-metrics-otlp-proto": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.57.1.tgz", - "integrity": "sha512-53AJmYJr8lypU6kAQT1/FVKR2QKcxRp4Gd54L3oF9hc2fw/FtvVfXV+PelB+qL318PqUlVjVtDOa4SQ5tAREfA==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.57.2.tgz", + "integrity": "sha512-HX068Q2eNs38uf7RIkNN9Hl4Ynl+3lP0++KELkXMCpsCbFO03+0XNNZ1SkwxPlP9jrhQahsMPMkzNXpq3fKsnw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.2", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1" }, @@ -1458,9 +1483,9 @@ } }, "node_modules/@opentelemetry/exporter-prometheus": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-prometheus/-/exporter-prometheus-0.57.1.tgz", - "integrity": "sha512-lwwOQzyvhzioGCYmIh7mXo+RLSoEVhuO0dFzWeEiQhFkjSUOPgKQKNTgYtl2KO1L7XIbHp5LIgn4nZrYx191Rg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-prometheus/-/exporter-prometheus-0.57.2.tgz", + "integrity": "sha512-VqIqXnuxWMWE/1NatAGtB1PvsQipwxDcdG4RwA/umdBcW3/iOHp0uejvFHTRN2O78ZPged87ErJajyUBPUhlDQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", @@ -1475,15 +1500,16 @@ } }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.57.1.tgz", - "integrity": "sha512-a9/4w2nyfehxMA64VGcZ4OXePGLjTz9H/dvqbOzVmIBZe9R6bkOeT68M9WoxAEdUZcJDK8XS3EloJId1rjPrag==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.57.2.tgz", + "integrity": "sha512-gHU1vA3JnHbNxEXg5iysqCWxN9j83d7/epTYBZflqQnTyCC4N7yZXn/dMM+bEmyhQPGjhCkNZLx4vZuChH1PYw==", "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1" }, @@ -1495,14 +1521,14 @@ } }, "node_modules/@opentelemetry/exporter-trace-otlp-http": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.57.1.tgz", - "integrity": "sha512-43dLEjlf6JGxpVt9RaRlJAvjHG1wGsbAuNd67RIDy/95zfKk2aNovtiGUgFdS/kcvgvS90upIUbgn0xUd9JjMg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.57.2.tgz", + "integrity": "sha512-sB/gkSYFu+0w2dVQ0PWY9fAMl172PKMZ/JrHkkW8dmjCL0CYkmXeE+ssqIL/yBUTPOvpLIpenX5T9RwXRBW/3g==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1" }, @@ -1514,14 +1540,14 @@ } }, "node_modules/@opentelemetry/exporter-trace-otlp-proto": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.57.1.tgz", - "integrity": "sha512-REN6UZTNoP3Tb7vuCEy+yAjNmJGi7MLqCMdDoUSbsWGwpopxtSnsbkfVfLPsZAsumWkcq0p8p6lYvqUBDhUqIA==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.57.2.tgz", + "integrity": "sha512-awDdNRMIwDvUtoRYxRhja5QYH6+McBLtoz1q9BeEsskhZcrGmH/V1fWpGx8n+Rc+542e8pJA6y+aullbIzQmlw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1" }, @@ -1551,12 +1577,12 @@ } }, "node_modules/@opentelemetry/instrumentation": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz", - "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz", + "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", @@ -1789,6 +1815,26 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/instrumentation-fetch/node_modules/@opentelemetry/instrumentation": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz", + "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.57.1", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, "node_modules/@opentelemetry/instrumentation-fs": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.0.tgz", @@ -1851,6 +1897,26 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/instrumentation-grpc/node_modules/@opentelemetry/instrumentation": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz", + "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.57.1", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, "node_modules/@opentelemetry/instrumentation-hapi": { "version": "0.45.1", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.1.tgz", @@ -1887,6 +1953,26 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/instrumentation": { + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz", + "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.57.1", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, "node_modules/@opentelemetry/instrumentation-ioredis": { "version": "0.47.0", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.0.tgz", @@ -2289,14 +2375,46 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/otlp-exporter-base": { + "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/instrumentation": { "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.57.1.tgz", - "integrity": "sha512-GNBJAEYfeiYJQ3O2dvXgiNZ/qjWrBxSb1L1s7iV/jKBRGMN3Nv+miTk2SLeEobF5E5ZK4rVcHKlBZ71bPVIv/g==", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.1.tgz", + "integrity": "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.57.1", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/otlp-exporter-base": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.57.2.tgz", + "integrity": "sha512-XdxEzL23Urhidyebg5E6jZoaiW5ygP/mRjxLHixogbqwDy2Faduzb5N0o/Oi+XTIJu+iyxXdVORjXax+Qgfxag==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-transformer": "0.57.1" + "@opentelemetry/otlp-transformer": "0.57.2" }, "engines": { "node": ">=14" @@ -2306,15 +2424,15 @@ } }, "node_modules/@opentelemetry/otlp-grpc-exporter-base": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.57.1.tgz", - "integrity": "sha512-wWflmkDhH/3wf6yEqPmzmqA6r+A8+LQABfIVZC0jDGtWVJj6eCWcGHU41UxupMbbsgjZRLYtWDilaCHOjmR7gg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.57.2.tgz", + "integrity": "sha512-USn173KTWy0saqqRB5yU9xUZ2xdgb1Rdu5IosJnm9aV4hMTuFFRTUsQxbgc24QxpCHeoKzzCSnS/JzdV0oM2iQ==", "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1" + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2" }, "engines": { "node": ">=14" @@ -2324,15 +2442,15 @@ } }, "node_modules/@opentelemetry/otlp-transformer": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.57.1.tgz", - "integrity": "sha512-EX67y+ukNNfFrOLyjYGw8AMy0JPIlEX1dW60SGUNZWW2hSQyyolX7EqFuHP5LtXLjJHNfzx5SMBVQ3owaQCNDw==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.57.2.tgz", + "integrity": "sha512-48IIRj49gbQVK52jYsw70+Jv+JbahT8BqT2Th7C4H7RCM9d0gZ5sgNPoMpWldmfjvIsSgiGJtjfk9MeZvjhoig==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", - "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-logs": "0.57.2", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1", "protobufjs": "^7.3.0" @@ -2344,6 +2462,18 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/propagation-utils": { "version": "0.30.15", "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.15.tgz", @@ -2498,12 +2628,12 @@ } }, "node_modules/@opentelemetry/sdk-logs": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.57.1.tgz", - "integrity": "sha512-jGdObb/BGWu6Peo3cL3skx/Rl1Ak/wDDO3vpPrrThGbqE7isvkCsX6uE+OAt8Ayjm9YC8UGkohWbLR09JmM0FA==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.57.2.tgz", + "integrity": "sha512-TXFHJ5c+BKggWbdEQ/inpgIzEmS2BGQowLE9UhsMd7YYlUfBQJ4uax0VF/B5NYigdM/75OoJGhAV3upEhK+3gg==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1" }, @@ -2514,6 +2644,18 @@ "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/sdk-metrics": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.30.1.tgz", @@ -2531,27 +2673,27 @@ } }, "node_modules/@opentelemetry/sdk-node": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.57.1.tgz", - "integrity": "sha512-0i25YQCpNiE1RDiaZ6ECO3Hgd6DIJeyHyA2AY9C4szMdZV5cM2m8/nrwK6fyNZdOEjRd54D/FkyP3aqZVIPGvg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.57.2.tgz", + "integrity": "sha512-8BaeqZyN5sTuPBtAoY+UtKwXBdqyuRKmekN5bFzAO40CgbGzAxfTpiL3PBerT7rhZ7p2nBdq7FaMv/tBQgHE4A==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", - "@opentelemetry/exporter-logs-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-logs-otlp-http": "0.57.1", - "@opentelemetry/exporter-logs-otlp-proto": "0.57.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", - "@opentelemetry/exporter-metrics-otlp-proto": "0.57.1", - "@opentelemetry/exporter-prometheus": "0.57.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-trace-otlp-http": "0.57.1", - "@opentelemetry/exporter-trace-otlp-proto": "0.57.1", + "@opentelemetry/exporter-logs-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-logs-otlp-http": "0.57.2", + "@opentelemetry/exporter-logs-otlp-proto": "0.57.2", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.2", + "@opentelemetry/exporter-metrics-otlp-proto": "0.57.2", + "@opentelemetry/exporter-prometheus": "0.57.2", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-trace-otlp-http": "0.57.2", + "@opentelemetry/exporter-trace-otlp-proto": "0.57.2", "@opentelemetry/exporter-zipkin": "1.30.1", - "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/instrumentation": "0.57.2", "@opentelemetry/resources": "1.30.1", - "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-logs": "0.57.2", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", @@ -2564,6 +2706,18 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/sdk-trace-base": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz", @@ -2802,9 +2956,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.66.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.66.0.tgz", - "integrity": "sha512-J+JeBtthiKxrpzUu7rfIPDzhscXF2p5zE/hVdrqkACBP8Yu0M96mwJ5m/8cPPYQE9aRNvXztXHlNwIh4FEeMZw==", + "version": "5.66.3", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.66.3.tgz", + "integrity": "sha512-+2iDxH7UFdtwcry766aJszGmbByQDIzTltJ3oQAZF9bhCxHCIN3yDwHa6qDCZxcpMGvUphCRx/RYJvLbM8mucQ==", "license": "MIT", "funding": { "type": "github", @@ -2812,12 +2966,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.66.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.0.tgz", - "integrity": "sha512-z3sYixFQJe8hndFnXgWu7C79ctL+pI0KAelYyW+khaNJ1m22lWrhJU2QrsTcRKMuVPtoZvfBYrTStIdKo+x0Xw==", + "version": "5.66.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.3.tgz", + "integrity": "sha512-sWMvxZ5VugPDgD1CzP7f0s9yFvjcXP3FXO5IVV2ndXlYqUCwykU8U69Kk05Qn5UvGRqB/gtj4J7vcTC6vtLHtQ==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.66.0" + "@tanstack/query-core": "5.66.3" }, "funding": { "type": "github", @@ -7224,12 +7378,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/next/-/next-15.1.6.tgz", - "integrity": "sha512-Hch4wzbaX0vKQtalpXvUiw5sYivBy4cm5rzUKrBnUB/y436LGrvOUqYvlSeNVCWFO/770gDlltR9gqZH62ct4Q==", + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/next/-/next-15.1.7.tgz", + "integrity": "sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg==", "license": "MIT", "dependencies": { - "@next/env": "15.1.6", + "@next/env": "15.1.7", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.15", "busboy": "1.6.0", @@ -7244,14 +7398,14 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.1.6", - "@next/swc-darwin-x64": "15.1.6", - "@next/swc-linux-arm64-gnu": "15.1.6", - "@next/swc-linux-arm64-musl": "15.1.6", - "@next/swc-linux-x64-gnu": "15.1.6", - "@next/swc-linux-x64-musl": "15.1.6", - "@next/swc-win32-arm64-msvc": "15.1.6", - "@next/swc-win32-x64-msvc": "15.1.6", + "@next/swc-darwin-arm64": "15.1.7", + "@next/swc-darwin-x64": "15.1.7", + "@next/swc-linux-arm64-gnu": "15.1.7", + "@next/swc-linux-arm64-musl": "15.1.7", + "@next/swc-linux-x64-gnu": "15.1.7", + "@next/swc-linux-x64-musl": "15.1.7", + "@next/swc-win32-arm64-msvc": "15.1.7", + "@next/swc-win32-x64-msvc": "15.1.7", "sharp": "^0.33.5" }, "peerDependencies": { diff --git a/src/frontend/package.json b/src/frontend/package.json index 3d2ee2f790..59432609a4 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -21,26 +21,26 @@ "@opentelemetry/auto-instrumentations-web": "0.45.0", "@opentelemetry/context-zone": "1.30.1", "@opentelemetry/core": "1.30.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-trace-otlp-http": "0.57.1", - "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-trace-otlp-http": "0.57.2", + "@opentelemetry/instrumentation": "0.57.2", "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", "@opentelemetry/resource-detector-aws": "1.11.0", "@opentelemetry/resource-detector-container": "0.6.0", "@opentelemetry/resource-detector-gcp": "0.33.0", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", - "@opentelemetry/sdk-node": "0.57.1", + "@opentelemetry/sdk-node": "0.57.2", "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.66.0", + "@tanstack/react-query": "5.66.3", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", "dotenv-expand": "12.0.1", - "next": "15.1.6", + "next": "15.1.7", "react": "19.0.0", "react-dom": "19.0.0", "sharp": "0.33.5", From 684b6fd9710c4419bd0b7f776285d4c0ac7ac366 Mon Sep 17 00:00:00 2001 From: Mikko Viitanen <74129181+mviitane@users.noreply.github.com> Date: Mon, 17 Feb 2025 14:46:26 +0200 Subject: [PATCH 125/178] Fix envoy access logs (#1930) * Fix envoy access logs - Remove attributes that cause problems in the Collector * add changelog --------- Co-authored-by: Juliano Costa --- CHANGELOG.md | 2 ++ src/frontend-proxy/envoy.tmpl.yaml | 40 ------------------------------ 2 files changed, 2 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d00bac82ae..2969620fbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -76,6 +76,8 @@ the release. ([#1919](https://github.com/open-telemetry/opentelemetry-demo/pull/1919)) * [flagd-ui] fixed eslint ignore comment with useCallback ([#1923](https://github.com/open-telemetry/opentelemetry-demo/pull/1923)) +* [frontend-proxy] fix envoy access logs + ([#1930](https://github.com/open-telemetry/opentelemetry-demo/pull/1930)) * [chore] Add memory for frontend-proxy, kafka, grafana, opensearch ([#1931](https://github.com/open-telemetry/opentelemetry-demo/pull/1931)) * [frontendproxy] fix Docker compose DNS resolver with envoy 1.32 diff --git a/src/frontend-proxy/envoy.tmpl.yaml b/src/frontend-proxy/envoy.tmpl.yaml index 6ddbf7b6da..5355e2b6dc 100644 --- a/src/frontend-proxy/envoy.tmpl.yaml +++ b/src/frontend-proxy/envoy.tmpl.yaml @@ -91,45 +91,6 @@ static_resources: - key: "event.name" value: string_value: "proxy.access" - - key: "http.connection.id" - value: - string_value: "%CONNECTION_ID%" - - key: "http.protocol" - value: - string_value: "%PROTOCOL%" - - key: "http.request.body.size" - value: - string_value: "%BYTES_RECEIVED%" - - key: "http.request.header.x-forwarded-for" - value: - string_value: "%REQ(X-FORWARDED-FOR)%" - - key: "http.request.header.x-request-id" - value: - string_value: "%REQ(X-REQUEST-ID)%" - - key: "http.request.headers.size" - value: - string_value: "%REQUEST_HEADERS_BYTES%" - - key: "http.request.id" - value: - string_value: "%STREAM_ID%" - - key: "http.request.method" - value: - string_value: "%REQ(:METHOD)%" - - key: "http.request.start_time" - value: - string_value: "%START_TIME%" - - key: "http.response.body.size" - value: - string_value: "%BYTES_SENT%" - - key: "http.response.headers.size" - value: - string_value: "%RESPONSE_HEADERS_BYTES%" - - key: "http.response.status_code" - value: - string_value: "%RESPONSE_CODE%" - - key: "http.total_duration_ms" - value: - string_value: "%DURATION%" - key: "server.address" value: string_value: "%DOWNSTREAM_LOCAL_ADDRESS%" @@ -157,7 +118,6 @@ static_resources: - key: "url.template" value: string_value: "%ROUTE_NAME%" - clusters: - name: opentelemetry_collector_grpc type: STRICT_DNS From c454904439c92cfc00ed8d39562424c36a02c900 Mon Sep 17 00:00:00 2001 From: Richard Chukwu <79311274+RichardChukwu@users.noreply.github.com> Date: Mon, 17 Feb 2025 14:20:18 +0100 Subject: [PATCH 126/178] Improve contributor guide (#2010) * Update CONTRIBUTING.md * Update CONTRIBUTING.md * Update CONTRIBUTING.md * Update CONTRIBUTING.md * Update CONTRIBUTING.md * update docker build cache isuses * markdownlint fixes * markdownlint fixes * sanity check fixes * sanity check fixes --------- Co-authored-by: Juliano Costa Co-authored-by: Pierre Tessier --- CONTRIBUTING.md | 153 +++++++++++++++++++++++++++++++----------------- 1 file changed, 98 insertions(+), 55 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9d619c2be2..81ab659578 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,35 +1,38 @@ -# Contributing +# Contributing to OpenTelemetry Demo Webstore -Welcome to OpenTelemetry Demo Webstore repository! +Welcome to the OpenTelemetry Demo repository! We appreciate your interest in +contributing. Whether you're fixing a bug, improving documentation, or adding a +new feature, we value your contribution. -Before you start - see OpenTelemetry - [Contributor Guide](https://github.com/open-telemetry/community/blob/main/guides/contributor/README.md) - for details on code attribution. +Before getting started, please review the +[OpenTelemetry Contributor Guide](https://github.com/open-telemetry/community/blob/main/guides/contributor/README.md) +for details on code attribution and best practices. -## Join a SIG Call +## Getting Started -We meet every other week on Wednesday's at 8:00 PT. The meeting is subject to change -depending on contributors' availability. Check the [OpenTelemetry community -calendar](https://github.com/open-telemetry/community?tab=readme-ov-file#special-interest-groups) -for specific dates and Zoom meeting links. +### Join a SIG Call -Meeting notes are available as a public [Google -doc](https://docs.google.com/document/d/16f-JOjKzLgWxULRxY8TmpM_FjlI1sthvKurnqFz9x98/edit). -For edit access, get in touch on -[Slack](https://cloud-native.slack.com/archives/C03B4CWV4DA). +We meet every other Wednesday at 8:00 PT. The schedule may change based on +contributors' availability. Check the [OpenTelemetry Community Calendar](https://github.com/open-telemetry/community?tab=readme-ov-file#special-interest-groups) +for specific dates and Zoom links. -## Sign the CLA +Meeting notes are available +[here](https://docs.google.com/document/d/16f-JOjKzLgWxULRxY8TmpM_FjlI1sthvKurnqFz9x98/edit). +For edit access, ask in our +[Slack channel](https://cloud-native.slack.com/archives/C03B4CWV4DA). -Before you can contribute, you will need to sign the [Contributor License -Agreement](https://identity.linuxfoundation.org/projects/cncf). +### Sign the Contributor License Agreement (CLA) -## Find a Buddy and Get Started Quickly +Before contributing, sign the [CLA](https://identity.linuxfoundation.org/projects/cncf) -If you are looking for someone to help you find a starting point and be a -resource for your first contribution, join our Slack channel and find a buddy! +### Find a Mentor (Buddy System) -1. Create your [CNCF Slack account](http://slack.cncf.io/) and join the - [otel-community-demo](https://app.slack.com/client/T08PSQ7BQ/C03B4CWV4DA) channel. +New to OpenTelemetry? We encourage you to find a mentor who can guide you +through your first contribution. + +1. Create your [CNCF Slack account](https://slack.cncf.io/) and join the + [otel-community-demo](https://app.slack.com/client/T08PSQ7BQ/C03B4CWV4DA) + channel. 2. Post in the room with an introduction to yourself, what area you are interested in (check issues marked with [help wanted](https://github.com/open-telemetry/opentelemetry-demo/labels/help%20wanted)), @@ -41,60 +44,97 @@ contributing to OpenTelemetry: providing context, reviewing PRs, and helping those get merged. Buddies will not be available 24/7, but is committed to responding during their normal contribution hours. -## Development Environment +## Setting Up Your Development Environment -You can contribute to this project from a Windows, macOS or Linux machine. The -first step to contributing is ensuring you can run the demo successfully from -your local machine. +### Prerequisites -On all platforms, the minimum requirements are: +Ensure you have the following installed: -- Docker +- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) +- [Make](https://www.gnu.org/software/make/) +- [Docker](https://www.docker.com/get-started/) - [Docker Compose](https://docs.docker.com/compose/install/#install-compose) v2.0.0+ -### Clone Repo - -- Clone the Webstore Demo repository: +### Clone the Repository -```shell +```sh git clone https://github.com/open-telemetry/opentelemetry-demo.git +cd opentelemetry-demo/ ``` -### Open Folder +### Run the Demo -- Navigate to the cloned folder: +```sh +make start +``` -```shell -cd opentelemetry-demo/ +### Verify the Webstore & Telemetry + +Once the images are built and containers are started, visit: + +- **Webstore**: [http://localhost:8080/](http://localhost:8080/) +- **Jaeger**: [http://localhost:8080/jaeger/ui/](http://localhost:8080/jaeger/ui/) +- **Grafana**: [http://localhost:8080/grafana/](http://localhost:8080/grafana/) +- **Feature Flags UI**: [http://localhost:8080/feature/](http://localhost:8080/feature/) +- **Load Generator UI**: [http://localhost:8080/loadgen/](http://localhost:8080/loadgen/) + +## Troubleshooting Common Issues + +### Docker Not Running + +**Error:** `Error response from daemon: Docker daemon is not running.` + +**Solution:** + +- **Windows/macOS**: Open Docker Desktop and ensure it's running. +- **Linux**: Check Docker status: + +```sh +systemctl status docker ``` -### Gradle Update [Windows Only] +If inactive, start it: -- Navigate to the Java Ad Service folder to install and update Gradle: +```sh +sudo systemctl start docker + ``` -```shell -cd .\src\ad\ -.\gradlew installDist -.\gradlew wrapper --gradle-version 7.4.2 +### Gradle Issues (Windows) + +If you encounter Gradle issues, run: + +```sh +cd src/ad/ +./gradlew installDist +./gradlew wrapper --gradle-version 7.4.2 ``` -### Run Docker Compose +### Docker build cache issues -- Start the demo: +While developing, you may encounter issues with Docker build cache. To clear the +cache: -```shell -make start +```sh +docker system prune -a ``` -### Verify the Webstore & the Telemetry +Warning: This removes all unused Docker data, including images, containers, +volumes, and networks. Use with caution. -Once the images are built and containers are started you can access: +### Debugging Tips -- Webstore: -- Jaeger: -- Grafana: -- Feature Flags UI: -- Load Generator UI: +- Use `docker ps` to check running containers. +- View logs for services: + +```sh +docker logs +``` + +- Restart containers if needed: + +```sh +docker-compose restart +``` ### Review the Documentation @@ -105,8 +145,8 @@ documentation can be found on the OTel website under [Demo docs][docs]. ### Running the React Native example -If you are interested in running the React Native example app in this repo please -review [these instructions](src/react-native-app/README.md). +If you are interested in running the React Native example app in this repo +please review [these instructions](src/react-native-app/README.md). ## Create Your First Pull Request @@ -262,3 +302,6 @@ Maintainers can create a new release when desired by following these steps. committing the changes. [docs]: https://opentelemetry.io/docs/demo/ + +By following this guide, you'll have a smoother onboarding experience as a +contributor. Happy coding! From d93baad2d0221ba486f9c200635381717a73c7ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Feb 2025 10:48:01 -0500 Subject: [PATCH 127/178] build(deps): bump the gradle-production-dependencies group across 2 directories with 2 updates (#2043) Bumps the gradle-production-dependencies group with 2 updates in the /src/ad directory: [io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom](https://github.com/open-telemetry/opentelemetry-java-instrumentation) and [dev.openfeature:sdk](https://github.com/open-feature/java-sdk). Bumps the gradle-production-dependencies group with 1 update in the /src/fraud-detection directory: [dev.openfeature:sdk](https://github.com/open-feature/java-sdk). Updates `io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom` from 2.12.0 to 2.13.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java-instrumentation/compare/v2.12.0...v2.13.0) Updates `dev.openfeature:sdk` from 1.14.0 to 1.14.1 - [Release notes](https://github.com/open-feature/java-sdk/releases) - [Changelog](https://github.com/open-feature/java-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/java-sdk/compare/v1.14.0...v1.14.1) Updates `dev.openfeature:sdk` from 1.14.0 to 1.14.1 - [Release notes](https://github.com/open-feature/java-sdk/releases) - [Changelog](https://github.com/open-feature/java-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/java-sdk/compare/v1.14.0...v1.14.1) --- updated-dependencies: - dependency-name: io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: dev.openfeature:sdk dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: dev.openfeature:sdk dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/ad/build.gradle | 4 ++-- src/fraud-detection/build.gradle.kts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ad/build.gradle b/src/ad/build.gradle index 3752186615..e535305797 100644 --- a/src/ad/build.gradle +++ b/src/ad/build.gradle @@ -17,7 +17,7 @@ group = "ad" version = "0.1.0-SNAPSHOT" def opentelemetryVersion = "1.47.0" -def opentelemetryInstrumentationVersion = "2.12.0" +def opentelemetryInstrumentationVersion = "2.13.0" def grpcVersion = "1.70.0" def jacksonVersion = "2.18.2" def protocVersion = "4.29.3" @@ -52,7 +52,7 @@ dependencies { "io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations", "org.apache.logging.log4j:log4j-core:2.24.3", "dev.openfeature.contrib.providers:flagd:0.11.2", - 'dev.openfeature:sdk:1.14.0' + 'dev.openfeature:sdk:1.14.1' runtimeOnly "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}", "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}", diff --git a/src/fraud-detection/build.gradle.kts b/src/fraud-detection/build.gradle.kts index cda91b87c4..7a8c168dcf 100644 --- a/src/fraud-detection/build.gradle.kts +++ b/src/fraud-detection/build.gradle.kts @@ -42,7 +42,7 @@ dependencies { implementation("org.apache.logging.log4j:log4j-core:2.24.3") implementation("org.slf4j:slf4j-api:2.0.16") implementation("com.google.protobuf:protobuf-kotlin:${protobufVersion}") - implementation("dev.openfeature:sdk:1.14.0") + implementation("dev.openfeature:sdk:1.14.1") implementation("dev.openfeature.contrib.providers:flagd:0.11.2") if (JavaVersion.current().isJava9Compatible) { From 41c32cc4bfb673c4f9623d0b7fafe7db101bb7ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Feb 2025 10:58:04 -0500 Subject: [PATCH 128/178] build(deps): bump the npm-production-dependencies group across 2 directories with 4 updates (#2044) Bumps the npm-production-dependencies group with 1 update in the /src/frontend directory: [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query). Bumps the npm-production-dependencies group with 3 updates in the /src/payment directory: [@opentelemetry/exporter-metrics-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js), [@opentelemetry/exporter-trace-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js) and [@opentelemetry/sdk-node](https://github.com/open-telemetry/opentelemetry-js). Updates `@tanstack/react-query` from 5.66.3 to 5.66.4 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.66.4/packages/react-query) Updates `@opentelemetry/exporter-metrics-otlp-grpc` from 0.57.1 to 0.57.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.57.1...experimental/v0.57.2) Updates `@opentelemetry/exporter-trace-otlp-grpc` from 0.57.1 to 0.57.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.57.1...experimental/v0.57.2) Updates `@opentelemetry/sdk-node` from 0.57.1 to 0.57.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.57.1...experimental/v0.57.2) --- updated-dependencies: - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-metrics-otlp-grpc" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/exporter-trace-otlp-grpc" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/sdk-node" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/frontend/package-lock.json | 16 +- src/frontend/package.json | 2 +- src/payment/package-lock.json | 283 ++++++++++++++++++++++----------- src/payment/package.json | 6 +- 4 files changed, 202 insertions(+), 105 deletions(-) diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 4c71363581..4b5b278b7b 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -32,7 +32,7 @@ "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.66.3", + "@tanstack/react-query": "5.66.4", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", @@ -2956,9 +2956,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.66.3", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.66.3.tgz", - "integrity": "sha512-+2iDxH7UFdtwcry766aJszGmbByQDIzTltJ3oQAZF9bhCxHCIN3yDwHa6qDCZxcpMGvUphCRx/RYJvLbM8mucQ==", + "version": "5.66.4", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.66.4.tgz", + "integrity": "sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA==", "license": "MIT", "funding": { "type": "github", @@ -2966,12 +2966,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.66.3", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.3.tgz", - "integrity": "sha512-sWMvxZ5VugPDgD1CzP7f0s9yFvjcXP3FXO5IVV2ndXlYqUCwykU8U69Kk05Qn5UvGRqB/gtj4J7vcTC6vtLHtQ==", + "version": "5.66.4", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.4.tgz", + "integrity": "sha512-zLlb9Ij7msRazeJP1LUu+tkrxWnUujYanUbY0c2lFoXhRwXvRt6SIwCuwCAmYgMeEuvIlv9/zIQb7bhhGR0jhw==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.66.3" + "@tanstack/query-core": "5.66.4" }, "funding": { "type": "github", diff --git a/src/frontend/package.json b/src/frontend/package.json index 59432609a4..086b4ee9e9 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -35,7 +35,7 @@ "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.66.3", + "@tanstack/react-query": "5.66.4", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index 838f3d5cd4..5c793aa6a9 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -15,8 +15,8 @@ "@opentelemetry/api": "1.9.0", "@opentelemetry/auto-instrumentations-node": "0.56.0", "@opentelemetry/core": "1.30.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.2", "@opentelemetry/instrumentation-runtime-node": "0.12.1", "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", "@opentelemetry/resource-detector-aws": "1.11.0", @@ -24,7 +24,7 @@ "@opentelemetry/resource-detector-gcp": "0.33.0", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", - "@opentelemetry/sdk-node": "0.57.1", + "@opentelemetry/sdk-node": "0.57.2", "grpc-js-health-check": "1.2.2", "pino": "9.6.0", "simple-card-validator": "1.1.0", @@ -251,15 +251,17 @@ } }, "node_modules/@opentelemetry/exporter-logs-otlp-grpc": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-grpc/-/exporter-logs-otlp-grpc-0.57.1.tgz", - "integrity": "sha512-RL8qmZH1H/H7Hbj0xKxF0Gg8kX9ic0aoMS3Kv5kj864lWxlpuR5YtGGn5OjGYwCmq6nYbsNy257fFp1U63pABw==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-grpc/-/exporter-logs-otlp-grpc-0.57.2.tgz", + "integrity": "sha512-eovEy10n3umjKJl2Ey6TLzikPE+W4cUQ4gCwgGP1RqzTGtgDra0WjIqdy29ohiUKfvmbiL3MndZww58xfIvyFw==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", - "@opentelemetry/sdk-logs": "0.57.1" + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", + "@opentelemetry/sdk-logs": "0.57.2" }, "engines": { "node": ">=14" @@ -269,15 +271,16 @@ } }, "node_modules/@opentelemetry/exporter-logs-otlp-http": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.57.1.tgz", - "integrity": "sha512-u8Cr6yDX57/n89aSJwAQNHQIYodcl6o8jTcaPKNktMvNfd7ny3R7aE7GKBC5Wg0zejP9heBgyN0OGwrPhptx7A==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.57.2.tgz", + "integrity": "sha512-0rygmvLcehBRp56NQVLSleJ5ITTduq/QfU7obOkyWgPpFHulwpw2LYTqNIz5TczKZuy5YY+5D3SDnXZL1tXImg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", - "@opentelemetry/sdk-logs": "0.57.1" + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", + "@opentelemetry/sdk-logs": "0.57.2" }, "engines": { "node": ">=14" @@ -286,17 +289,30 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/exporter-logs-otlp-http/node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/exporter-logs-otlp-proto": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-proto/-/exporter-logs-otlp-proto-0.57.1.tgz", - "integrity": "sha512-WtR85NHdIVrIFfsK5bwx7miGG5WzOsuT4BNmuZ3EfZ0veowkrgoUSynsNnXW1YFXL6QhPbScjUfeTjnnV9bnIQ==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-proto/-/exporter-logs-otlp-proto-0.57.2.tgz", + "integrity": "sha512-ta0ithCin0F8lu9eOf4lEz9YAScecezCHkMMyDkvd9S7AnZNX5ikUmC5EQOQADU+oCcgo/qkQIaKcZvQ0TYKDw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", - "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-logs": "0.57.2", "@opentelemetry/sdk-trace-base": "1.30.1" }, "engines": { @@ -306,17 +322,30 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/exporter-logs-otlp-proto/node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/exporter-metrics-otlp-grpc": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.57.1.tgz", - "integrity": "sha512-8B7k5q4AUldbfvubcHApg1XQaio/cO/VUWsM5PSaRP2fsjGNwbn2ih04J3gLD+AmgslvyuDcA2SZiDXEKwAxtQ==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.57.2.tgz", + "integrity": "sha512-r70B8yKR41F0EC443b5CGB4rUaOMm99I5N75QQt6sHKxYDzSEc6gm48Diz1CI1biwa5tDPznpylTrywO/pT7qw==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.30.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.2", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1" }, @@ -328,13 +357,14 @@ } }, "node_modules/@opentelemetry/exporter-metrics-otlp-http": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.57.1.tgz", - "integrity": "sha512-jpKYVZY7fdwTdy+eAy/Mp9DZMaQpj7caMzlo3QqQDSJx5FZEY6zWzgcKvDvF6h+gdHE7LgUjaPOvJVUs354jJg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.57.2.tgz", + "integrity": "sha512-ttb9+4iKw04IMubjm3t0EZsYRNWr3kg44uUuzfo9CaccYlOh8cDooe4QObDUkvx9d5qQUrbEckhrWKfJnKhemA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1" }, @@ -346,14 +376,15 @@ } }, "node_modules/@opentelemetry/exporter-metrics-otlp-proto": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.57.1.tgz", - "integrity": "sha512-53AJmYJr8lypU6kAQT1/FVKR2QKcxRp4Gd54L3oF9hc2fw/FtvVfXV+PelB+qL318PqUlVjVtDOa4SQ5tAREfA==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.57.2.tgz", + "integrity": "sha512-HX068Q2eNs38uf7RIkNN9Hl4Ynl+3lP0++KELkXMCpsCbFO03+0XNNZ1SkwxPlP9jrhQahsMPMkzNXpq3fKsnw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.2", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1" }, @@ -365,9 +396,10 @@ } }, "node_modules/@opentelemetry/exporter-prometheus": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-prometheus/-/exporter-prometheus-0.57.1.tgz", - "integrity": "sha512-lwwOQzyvhzioGCYmIh7mXo+RLSoEVhuO0dFzWeEiQhFkjSUOPgKQKNTgYtl2KO1L7XIbHp5LIgn4nZrYx191Rg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-prometheus/-/exporter-prometheus-0.57.2.tgz", + "integrity": "sha512-VqIqXnuxWMWE/1NatAGtB1PvsQipwxDcdG4RwA/umdBcW3/iOHp0uejvFHTRN2O78ZPged87ErJajyUBPUhlDQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", @@ -381,14 +413,16 @@ } }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.57.1.tgz", - "integrity": "sha512-a9/4w2nyfehxMA64VGcZ4OXePGLjTz9H/dvqbOzVmIBZe9R6bkOeT68M9WoxAEdUZcJDK8XS3EloJId1rjPrag==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.57.2.tgz", + "integrity": "sha512-gHU1vA3JnHbNxEXg5iysqCWxN9j83d7/epTYBZflqQnTyCC4N7yZXn/dMM+bEmyhQPGjhCkNZLx4vZuChH1PYw==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-grpc-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-grpc-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1" }, @@ -400,13 +434,14 @@ } }, "node_modules/@opentelemetry/exporter-trace-otlp-http": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.57.1.tgz", - "integrity": "sha512-43dLEjlf6JGxpVt9RaRlJAvjHG1wGsbAuNd67RIDy/95zfKk2aNovtiGUgFdS/kcvgvS90upIUbgn0xUd9JjMg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.57.2.tgz", + "integrity": "sha512-sB/gkSYFu+0w2dVQ0PWY9fAMl172PKMZ/JrHkkW8dmjCL0CYkmXeE+ssqIL/yBUTPOvpLIpenX5T9RwXRBW/3g==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1" }, @@ -418,13 +453,14 @@ } }, "node_modules/@opentelemetry/exporter-trace-otlp-proto": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.57.1.tgz", - "integrity": "sha512-REN6UZTNoP3Tb7vuCEy+yAjNmJGi7MLqCMdDoUSbsWGwpopxtSnsbkfVfLPsZAsumWkcq0p8p6lYvqUBDhUqIA==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.57.2.tgz", + "integrity": "sha512-awDdNRMIwDvUtoRYxRhja5QYH6+McBLtoz1q9BeEsskhZcrGmH/V1fWpGx8n+Rc+542e8pJA6y+aullbIzQmlw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1", + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1" }, @@ -1099,12 +1135,13 @@ } }, "node_modules/@opentelemetry/otlp-exporter-base": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.57.1.tgz", - "integrity": "sha512-GNBJAEYfeiYJQ3O2dvXgiNZ/qjWrBxSb1L1s7iV/jKBRGMN3Nv+miTk2SLeEobF5E5ZK4rVcHKlBZ71bPVIv/g==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.57.2.tgz", + "integrity": "sha512-XdxEzL23Urhidyebg5E6jZoaiW5ygP/mRjxLHixogbqwDy2Faduzb5N0o/Oi+XTIJu+iyxXdVORjXax+Qgfxag==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-transformer": "0.57.1" + "@opentelemetry/otlp-transformer": "0.57.2" }, "engines": { "node": ">=14" @@ -1114,14 +1151,15 @@ } }, "node_modules/@opentelemetry/otlp-grpc-exporter-base": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.57.1.tgz", - "integrity": "sha512-wWflmkDhH/3wf6yEqPmzmqA6r+A8+LQABfIVZC0jDGtWVJj6eCWcGHU41UxupMbbsgjZRLYtWDilaCHOjmR7gg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.57.2.tgz", + "integrity": "sha512-USn173KTWy0saqqRB5yU9xUZ2xdgb1Rdu5IosJnm9aV4hMTuFFRTUsQxbgc24QxpCHeoKzzCSnS/JzdV0oM2iQ==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "1.30.1", - "@opentelemetry/otlp-exporter-base": "0.57.1", - "@opentelemetry/otlp-transformer": "0.57.1" + "@opentelemetry/otlp-exporter-base": "0.57.2", + "@opentelemetry/otlp-transformer": "0.57.2" }, "engines": { "node": ">=14" @@ -1131,14 +1169,15 @@ } }, "node_modules/@opentelemetry/otlp-transformer": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.57.1.tgz", - "integrity": "sha512-EX67y+ukNNfFrOLyjYGw8AMy0JPIlEX1dW60SGUNZWW2hSQyyolX7EqFuHP5LtXLjJHNfzx5SMBVQ3owaQCNDw==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.57.2.tgz", + "integrity": "sha512-48IIRj49gbQVK52jYsw70+Jv+JbahT8BqT2Th7C4H7RCM9d0gZ5sgNPoMpWldmfjvIsSgiGJtjfk9MeZvjhoig==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", - "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-logs": "0.57.2", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1", "protobufjs": "^7.3.0" @@ -1150,6 +1189,18 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/propagation-utils": { "version": "0.30.15", "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.15.tgz", @@ -1299,11 +1350,12 @@ } }, "node_modules/@opentelemetry/sdk-logs": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.57.1.tgz", - "integrity": "sha512-jGdObb/BGWu6Peo3cL3skx/Rl1Ak/wDDO3vpPrrThGbqE7isvkCsX6uE+OAt8Ayjm9YC8UGkohWbLR09JmM0FA==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.57.2.tgz", + "integrity": "sha512-TXFHJ5c+BKggWbdEQ/inpgIzEmS2BGQowLE9UhsMd7YYlUfBQJ4uax0VF/B5NYigdM/75OoJGhAV3upEhK+3gg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1" }, @@ -1314,6 +1366,18 @@ "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/sdk-metrics": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.30.1.tgz", @@ -1330,26 +1394,27 @@ } }, "node_modules/@opentelemetry/sdk-node": { - "version": "0.57.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.57.1.tgz", - "integrity": "sha512-0i25YQCpNiE1RDiaZ6ECO3Hgd6DIJeyHyA2AY9C4szMdZV5cM2m8/nrwK6fyNZdOEjRd54D/FkyP3aqZVIPGvg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.57.2.tgz", + "integrity": "sha512-8BaeqZyN5sTuPBtAoY+UtKwXBdqyuRKmekN5bFzAO40CgbGzAxfTpiL3PBerT7rhZ7p2nBdq7FaMv/tBQgHE4A==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/api-logs": "0.57.2", "@opentelemetry/core": "1.30.1", - "@opentelemetry/exporter-logs-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-logs-otlp-http": "0.57.1", - "@opentelemetry/exporter-logs-otlp-proto": "0.57.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-metrics-otlp-http": "0.57.1", - "@opentelemetry/exporter-metrics-otlp-proto": "0.57.1", - "@opentelemetry/exporter-prometheus": "0.57.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-trace-otlp-http": "0.57.1", - "@opentelemetry/exporter-trace-otlp-proto": "0.57.1", + "@opentelemetry/exporter-logs-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-logs-otlp-http": "0.57.2", + "@opentelemetry/exporter-logs-otlp-proto": "0.57.2", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-metrics-otlp-http": "0.57.2", + "@opentelemetry/exporter-metrics-otlp-proto": "0.57.2", + "@opentelemetry/exporter-prometheus": "0.57.2", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-trace-otlp-http": "0.57.2", + "@opentelemetry/exporter-trace-otlp-proto": "0.57.2", "@opentelemetry/exporter-zipkin": "1.30.1", - "@opentelemetry/instrumentation": "0.57.1", + "@opentelemetry/instrumentation": "0.57.2", "@opentelemetry/resources": "1.30.1", - "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-logs": "0.57.2", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", @@ -1362,6 +1427,38 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/instrumentation": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz", + "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.57.2", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, "node_modules/@opentelemetry/sdk-trace-base": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz", diff --git a/src/payment/package.json b/src/payment/package.json index f289e33452..9342b92412 100644 --- a/src/payment/package.json +++ b/src/payment/package.json @@ -16,8 +16,8 @@ "@opentelemetry/api": "1.9.0", "@opentelemetry/auto-instrumentations-node": "0.56.0", "@opentelemetry/core": "1.30.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1", - "@opentelemetry/exporter-trace-otlp-grpc": "0.57.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.2", + "@opentelemetry/exporter-trace-otlp-grpc": "0.57.2", "@opentelemetry/instrumentation-runtime-node": "0.12.1", "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", "@opentelemetry/resource-detector-aws": "1.11.0", @@ -25,7 +25,7 @@ "@opentelemetry/resource-detector-gcp": "0.33.0", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", - "@opentelemetry/sdk-node": "0.57.1", + "@opentelemetry/sdk-node": "0.57.2", "grpc-js-health-check": "1.2.2", "pino": "9.6.0", "simple-card-validator": "1.1.0", From d4e83f7d03b2eb6cea528dd2c4bc65e013a8adb7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Feb 2025 11:47:13 -0500 Subject: [PATCH 129/178] build(deps): bump the npm-development-dependencies group across 3 directories with 3 updates (#2045) Bumps the npm-development-dependencies group with 2 updates in the /src/flagd-ui directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom). Bumps the npm-development-dependencies group with 2 updates in the /src/frontend directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom). Bumps the npm-development-dependencies group with 1 update in the /src/payment directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Updates `@types/react` from 19.0.8 to 19.0.10 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `@types/react-dom` from 19.0.3 to 19.0.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `@types/react` from 19.0.8 to 19.0.10 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `@types/react-dom` from 19.0.3 to 19.0.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `@types/node` from 22.13.1 to 22.13.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@types/react-dom" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@types/react-dom" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/flagd-ui/package-lock.json | 17 +++++++++-------- src/flagd-ui/package.json | 4 ++-- src/frontend/package-lock.json | 16 ++++++++-------- src/frontend/package.json | 4 ++-- src/payment/package-lock.json | 6 +++--- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index b9efb2e444..f4ef5d5dbd 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -18,8 +18,8 @@ "devDependencies": { "@types/json5": "^2.2.0", "@types/node": "^22", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", "autoprefixer": "^10.4.20", "eslint": "^9", "eslint-config-next": "15.1.7", @@ -1315,9 +1315,9 @@ } }, "node_modules/@types/react": { - "version": "19.0.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz", - "integrity": "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==", + "version": "19.0.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", + "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", "dev": true, "license": "MIT", "dependencies": { @@ -1325,10 +1325,11 @@ } }, "node_modules/@types/react-dom": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz", - "integrity": "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", "dev": true, + "license": "MIT", "peerDependencies": { "@types/react": "^19.0.0" } diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 9f7cf231c5..71c60cb7ec 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -19,8 +19,8 @@ "devDependencies": { "@types/json5": "^2.2.0", "@types/node": "^22", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", "autoprefixer": "^10.4.20", "eslint": "^9", "eslint-config-next": "15.1.7", diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 4b5b278b7b..309f14970b 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -46,8 +46,8 @@ }, "devDependencies": { "@types/node": "22.13.4", - "@types/react": "19.0.8", - "@types/react-dom": "19.0.3", + "@types/react": "19.0.10", + "@types/react-dom": "19.0.4", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", "@typescript-eslint/eslint-plugin": "8.24.0", @@ -3085,9 +3085,9 @@ } }, "node_modules/@types/react": { - "version": "19.0.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz", - "integrity": "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==", + "version": "19.0.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", + "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", "dev": true, "license": "MIT", "dependencies": { @@ -3095,9 +3095,9 @@ } }, "node_modules/@types/react-dom": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz", - "integrity": "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", "dev": true, "license": "MIT", "peerDependencies": { diff --git a/src/frontend/package.json b/src/frontend/package.json index 086b4ee9e9..f084af61a4 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -49,8 +49,8 @@ }, "devDependencies": { "@types/node": "22.13.4", - "@types/react": "19.0.8", - "@types/react-dom": "19.0.3", + "@types/react": "19.0.10", + "@types/react-dom": "19.0.4", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", "@typescript-eslint/eslint-plugin": "8.24.0", diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index 5c793aa6a9..728816c4c8 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -1611,9 +1611,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", - "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", + "version": "22.13.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", + "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" From 4195d3b36b43a944e531197b4fb439d4d9c89418 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Feb 2025 11:59:59 -0500 Subject: [PATCH 130/178] build(deps): bump the pip-production-dependencies group across 3 directories with 2 updates (#2046) Bumps the pip-production-dependencies group with 2 updates in the /src directory: [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) and [openfeature-sdk](https://github.com/open-feature/python-sdk). Bumps the pip-production-dependencies group with 2 updates in the /src/load-generator directory: [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) and [openfeature-sdk](https://github.com/open-feature/python-sdk). Bumps the pip-production-dependencies group with 1 update in the /src/recommendation directory: [openfeature-sdk](https://github.com/open-feature/python-sdk). Updates `googleapis-common-protos` from 1.66.0 to 1.67.0 - [Release notes](https://github.com/googleapis/google-cloud-python/releases) - [Changelog](https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md) - [Commits](https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.66.0...googleapis-common-protos-v1.67.0) Updates `openfeature-sdk` from 0.7.5 to 0.8.0 - [Release notes](https://github.com/open-feature/python-sdk/releases) - [Changelog](https://github.com/open-feature/python-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/python-sdk/compare/v0.7.5...v0.8.0) Updates `googleapis-common-protos` from 1.66.0 to 1.67.0 - [Release notes](https://github.com/googleapis/google-cloud-python/releases) - [Changelog](https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md) - [Commits](https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.66.0...googleapis-common-protos-v1.67.0) Updates `openfeature-sdk` from 0.7.5 to 0.8.0 - [Release notes](https://github.com/open-feature/python-sdk/releases) - [Changelog](https://github.com/open-feature/python-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/python-sdk/compare/v0.7.5...v0.8.0) Updates `openfeature-sdk` from 0.7.5 to 0.8.0 - [Release notes](https://github.com/open-feature/python-sdk/releases) - [Changelog](https://github.com/open-feature/python-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-feature/python-sdk/compare/v0.7.5...v0.8.0) --- updated-dependencies: - dependency-name: googleapis-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: openfeature-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: googleapis-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: openfeature-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: openfeature-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/load-generator/requirements.txt | 4 ++-- src/recommendation/requirements.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/load-generator/requirements.txt b/src/load-generator/requirements.txt index bbb292b4b3..6fff7bf0e3 100644 --- a/src/load-generator/requirements.txt +++ b/src/load-generator/requirements.txt @@ -10,7 +10,7 @@ flask-basicauth==0.2.0 flask-cors==5.0.0 gevent==24.11.1 geventhttpclient==2.3.3 -googleapis-common-protos==1.66.0 +googleapis-common-protos==1.67.0 greenlet==3.1.1 idna==3.10 itsdangerous==2.2.0 @@ -30,7 +30,7 @@ opentelemetry-proto==1.30.0 opentelemetry-sdk==1.30.0 opentelemetry-semantic-conventions==0.51b0 opentelemetry-util-http==0.51b0 -openfeature-sdk==0.7.5 +openfeature-sdk==0.8.0 openfeature-provider-flagd==0.1.5 openfeature-hooks-opentelemetry==0.1.3 protobuf==5.29.3 diff --git a/src/recommendation/requirements.txt b/src/recommendation/requirements.txt index 6795d39373..2c5ee2bdfd 100644 --- a/src/recommendation/requirements.txt +++ b/src/recommendation/requirements.txt @@ -4,7 +4,7 @@ opentelemetry-distro==0.51b0 opentelemetry-exporter-otlp-proto-grpc==1.30.0 python-dotenv==1.0.1 python-json-logger==3.2.1 -openfeature-sdk==0.7.5 +openfeature-sdk==0.8.0 openfeature-provider-flagd==0.1.5 openfeature-hooks-opentelemetry==0.1.3 psutil==6.1.1 # Importing this will also import opentelemetry-instrumentation-system-metrics when running opentelemetry-bootstrap From d76f5d5fb39a93b399b29c7e765c2109e1b2d8b1 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 17 Feb 2025 16:10:35 -0500 Subject: [PATCH 131/178] [chore] clarify new release instructions (#2047) * clear up new release * remove duplicated line break --------- Co-authored-by: Juliano Costa --- CONTRIBUTING.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 81ab659578..94a4816182 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -286,20 +286,23 @@ make build-multiplatform-and-push Maintainers can create a new release when desired by following these steps. -- [Create a new - release](https://github.com/open-telemetry/opentelemetry-demo/releases/new), - creating a new tag in the format `x.x.x` based on main. Automatically generate - release notes. Prepend a summary of the major changes to the release notes. -- After images for the new release are built and published, create a new Pull - Request that updates the `IMAGE_VERSION` environment variable in `.env` to the - _new_ version number, and update the `CHANGELOG.md` with the new version - leaving the `Unreleased` section for the next release. -- Create a new Pull Request to update the deployment of the demo in the - [OpenTelemetry Helm - Charts](https://github.com/open-telemetry/opentelemetry-helm-charts) repo. -- After the Helm chart is released, create a new Pull Request which updates the - Demo's Kubernetes manifest by running `make generate-kubernetes-manifests` and - committing the changes. +1. Create a Pull Request that updates the `IMAGE_VERSION` environment variable + in `.env` to the _new_ version number based on the format `x.x.x` and merge + it. +2. [Create a new + release](https://github.com/open-telemetry/opentelemetry-demo/releases/new), + creating a new tag for the _new_ version number based on main. Automatically + generate release notes. Prepend a summary of the major changes to the release + notes. +3. After images for the new release are built and published, create a new Pull + Request that updates the `CHANGELOG.md` with the new version leaving the + `Unreleased` section for the next release. +4. Create a new Pull Request to update the deployment of the demo in the + [OpenTelemetry Helm + Charts](https://github.com/open-telemetry/opentelemetry-helm-charts) repo. +5. After the Helm chart is released, create a new Pull Request which updates the + Demo's Kubernetes manifest by running `make generate-kubernetes-manifests` + and committing the changes. [docs]: https://opentelemetry.io/docs/demo/ From e91f1e52f563b532a27887cf3ddd45ad64704d76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Feb 2025 17:14:22 +0000 Subject: [PATCH 132/178] build(deps): bump docker/build-push-action (#2057) Bumps the actions-production-dependencies group with 1 update in the / directory: [docker/build-push-action](https://github.com/docker/build-push-action). Updates `docker/build-push-action` from 6.13.0 to 6.14.0 - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v6.13.0...v6.14.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/component-build-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 798ce13024..2dd98a422b 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -189,7 +189,7 @@ jobs: max-parallelism = 2 - name: Matrix Build and push demo images if: steps.check_changes.outputs.skip == 'false' - uses: docker/build-push-action@v6.13.0 + uses: docker/build-push-action@v6.14.0 with: context: ${{ matrix.file_tag.context }} file: ${{ matrix.file_tag.file }} From ffa139eac63dbefee42d3b8a3fa2d36b045744c4 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Wed, 19 Feb 2025 19:26:52 +0000 Subject: [PATCH 133/178] update to Demo 2.0.0 (#2056) Co-authored-by: Juliano Costa --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index 8ea47eeb19..02415b1dbf 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ # Demo App version -IMAGE_VERSION=1.12.0 +IMAGE_VERSION=2.0.0 IMAGE_NAME=ghcr.io/open-telemetry/demo DEMO_VERSION=latest From ff9309010e6670640093172d62e47c26966269ae Mon Sep 17 00:00:00 2001 From: OpenTelemetry Bot <107717825+opentelemetrybot@users.noreply.github.com> Date: Wed, 19 Feb 2025 14:19:09 -0800 Subject: [PATCH 134/178] Add FOSSA scanning workflow (#2048) * Add FOSSA scanning workflow * Add Copyright and fix lint --------- Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Juliano Costa --- .github/workflows/fossa.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/fossa.yml diff --git a/.github/workflows/fossa.yml b/.github/workflows/fossa.yml new file mode 100644 index 0000000000..94c65fd83d --- /dev/null +++ b/.github/workflows/fossa.yml @@ -0,0 +1,23 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +name: FOSSA scanning + +on: + push: + branches: + - main + +permissions: + contents: read + +jobs: + fossa: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - uses: fossas/fossa-action@93a52ecf7c3ac7eb40f5de77fd69b1a19524de94 # v1.5.0 + with: + api-key: ${{secrets.FOSSA_API_KEY}} + team: OpenTelemetry From ae5fabd7b87f07258218e1d7d9b420e1f0f294c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Feb 2025 23:24:10 +0100 Subject: [PATCH 135/178] build(deps): bump the gradle-production-dependencies group across 2 directories with 2 updates (#2053) Bumps the gradle-production-dependencies group with 2 updates in the /src/ad directory: [io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom](https://github.com/open-telemetry/opentelemetry-java-instrumentation) and dev.openfeature.contrib.providers:flagd. Bumps the gradle-production-dependencies group with 1 update in the /src/fraud-detection directory: dev.openfeature.contrib.providers:flagd. Updates `io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom` from 2.13.0 to 2.13.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java-instrumentation/compare/v2.13.0...v2.13.1) Updates `dev.openfeature.contrib.providers:flagd` from 0.11.2 to 0.11.3 Updates `dev.openfeature.contrib.providers:flagd` from 0.11.2 to 0.11.3 --- updated-dependencies: - dependency-name: io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: dev.openfeature.contrib.providers:flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: dev.openfeature.contrib.providers:flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa --- src/ad/build.gradle | 4 ++-- src/fraud-detection/build.gradle.kts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ad/build.gradle b/src/ad/build.gradle index e535305797..26fe38ce6a 100644 --- a/src/ad/build.gradle +++ b/src/ad/build.gradle @@ -17,7 +17,7 @@ group = "ad" version = "0.1.0-SNAPSHOT" def opentelemetryVersion = "1.47.0" -def opentelemetryInstrumentationVersion = "2.13.0" +def opentelemetryInstrumentationVersion = "2.13.1" def grpcVersion = "1.70.0" def jacksonVersion = "2.18.2" def protocVersion = "4.29.3" @@ -51,7 +51,7 @@ dependencies { "io.opentelemetry:opentelemetry-sdk", "io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations", "org.apache.logging.log4j:log4j-core:2.24.3", - "dev.openfeature.contrib.providers:flagd:0.11.2", + "dev.openfeature.contrib.providers:flagd:0.11.3", 'dev.openfeature:sdk:1.14.1' runtimeOnly "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}", diff --git a/src/fraud-detection/build.gradle.kts b/src/fraud-detection/build.gradle.kts index 7a8c168dcf..60e144c545 100644 --- a/src/fraud-detection/build.gradle.kts +++ b/src/fraud-detection/build.gradle.kts @@ -43,7 +43,7 @@ dependencies { implementation("org.slf4j:slf4j-api:2.0.16") implementation("com.google.protobuf:protobuf-kotlin:${protobufVersion}") implementation("dev.openfeature:sdk:1.14.1") - implementation("dev.openfeature.contrib.providers:flagd:0.11.2") + implementation("dev.openfeature.contrib.providers:flagd:0.11.3") if (JavaVersion.current().isJava9Compatible) { // Workaround for @javax.annotation.Generated From 5100c5671cb30b17192ddc324d96427d27119c27 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Feb 2025 23:37:26 +0100 Subject: [PATCH 136/178] build(deps): bump the go-production-dependencies group across 2 directories with 1 update (#2054) Bumps the go-production-dependencies group with 1 update in the /src/checkout directory: [github.com/open-feature/go-sdk-contrib/providers/flagd](https://github.com/open-feature/go-sdk-contrib). Bumps the go-production-dependencies group with 1 update in the /src/product-catalog directory: [github.com/open-feature/go-sdk-contrib/providers/flagd](https://github.com/open-feature/go-sdk-contrib). Updates `github.com/open-feature/go-sdk-contrib/providers/flagd` from 0.2.4 to 0.2.5 - [Release notes](https://github.com/open-feature/go-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/go-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/go-sdk-contrib/compare/providers/flagd/v0.2.4...providers/flagd/v0.2.5) Updates `github.com/open-feature/go-sdk-contrib/providers/flagd` from 0.2.4 to 0.2.5 - [Release notes](https://github.com/open-feature/go-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/go-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/go-sdk-contrib/compare/providers/flagd/v0.2.4...providers/flagd/v0.2.5) --- updated-dependencies: - dependency-name: github.com/open-feature/go-sdk-contrib/providers/flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: github.com/open-feature/go-sdk-contrib/providers/flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/checkout/go.mod | 22 +++++++-------- src/checkout/go.sum | 57 +++++++++++++++++++------------------- src/product-catalog/go.mod | 22 +++++++-------- src/product-catalog/go.sum | 57 +++++++++++++++++++------------------- 4 files changed, 78 insertions(+), 80 deletions(-) diff --git a/src/checkout/go.mod b/src/checkout/go.mod index 57bf59f2ee..73d66cf541 100644 --- a/src/checkout/go.mod +++ b/src/checkout/go.mod @@ -9,7 +9,7 @@ require ( github.com/google/uuid v1.6.0 github.com/open-feature/go-sdk v1.14.1 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 - github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4 + github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5 github.com/sirupsen/logrus v1.9.3 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 @@ -27,19 +27,19 @@ require ( require ( buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1 // indirect - buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1 // indirect - buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1 // indirect - connectrpc.com/connect v1.17.0 // indirect + buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2 // indirect + buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1 // indirect + connectrpc.com/connect v1.18.1 // indirect connectrpc.com/otelconnect v0.7.1 // indirect github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/diegoholiveira/jsonlogic/v3 v3.5.3 // indirect + github.com/diegoholiveira/jsonlogic/v3 v3.7.3 // indirect github.com/eapache/go-resiliency v1.7.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect github.com/eapache/queue v1.1.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -62,8 +62,8 @@ require ( github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 // indirect - github.com/open-feature/flagd/core v0.10.4 // indirect + github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5 // indirect + github.com/open-feature/flagd/core v0.11.1 // indirect github.com/pierrec/lz4/v4 v4.1.22 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/twmb/murmur3 v1.1.8 // indirect @@ -79,8 +79,8 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/crypto v0.32.0 // indirect - golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect - golang.org/x/mod v0.21.0 // indirect + golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c // indirect + golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.34.0 // indirect golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect @@ -89,7 +89,7 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.31.1 // indirect + k8s.io/apimachinery v0.31.4 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect sigs.k8s.io/controller-runtime v0.19.0 // indirect diff --git a/src/checkout/go.sum b/src/checkout/go.sum index 463ade2157..94cd3ca587 100644 --- a/src/checkout/go.sum +++ b/src/checkout/go.sum @@ -1,11 +1,11 @@ buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1 h1:dU3vvR6d5iVwHBVQVS14ci+i29+4lLT8HjYktYSTPF8= buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1/go.mod h1:jKw7gioqYsWaHUKr5Ja6MiadsXcrGJxQ86gucJ0luUA= -buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1 h1:18ZObecoJfRbNQDeuW0PoBR829Mw8FrPrmWIbbaA5hs= -buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1/go.mod h1:WA65xyBj+VxPfJ3a+EqdZtWGeNdwqiaQO1sriHaNL1Y= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1 h1:z4CfAMlT5uylpjQ9XXdLTSzBRl+clmUN7rt44VmJhLo= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1/go.mod h1:y7yb/W0yMTBxf0mX+07jFy6Lxu/0L65A8p06MNrGyeo= -connectrpc.com/connect v1.17.0 h1:W0ZqMhtVzn9Zhn2yATuUokDLO5N+gIuBWMOnsQrfmZk= -connectrpc.com/connect v1.17.0/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8= +buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2 h1:D3HI5RQbqgffyf+Z77+hReDx5kigFVAKGvttULD9/ms= +buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2/go.mod h1:b9rfG6rbGXZAlLwQwedvZ0kI0nUcR+aLaYF70pj920E= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1 h1:0vXmOkGv8nO5H1W8TkSz+GtZhvD2LNXiQaiucEio6vk= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1/go.mod h1:wemFLfCpuNfhrBQ7NwzbtYxbg+IihAYqJcNeS+fLpLI= +connectrpc.com/connect v1.18.1 h1:PAg7CjSAGvscaf6YZKUefjoih5Z/qYkyaTrBW8xvYPw= +connectrpc.com/connect v1.18.1/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8= connectrpc.com/otelconnect v0.7.1 h1:scO5pOb0i4yUE66CnNrHeK1x51yq0bE0ehPg6WvzXJY= connectrpc.com/otelconnect v0.7.1/go.mod h1:dh3bFgHBTb2bkqGCeVVOtHJreSns7uu9wwL2Tbz17ms= github.com/IBM/sarama v1.45.0 h1:IzeBevTn809IJ/dhNKhP5mpxEXTmELuezO2tgHD9G5E= @@ -18,8 +18,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/diegoholiveira/jsonlogic/v3 v3.5.3 h1:CPyZQ3fOgiIDZ1yWzPGUpyht5tYTOnRoN913c0mkXZw= -github.com/diegoholiveira/jsonlogic/v3 v3.5.3/go.mod h1:3nnfWovrlZq2rTpucrJ2KMIS8TMf6IoFneofmeqk/qk= +github.com/diegoholiveira/jsonlogic/v3 v3.7.3 h1:orvGaTW5Qdcowpr7vgfMNuqYNjQYcqtw9W1Bk4QyI38= +github.com/diegoholiveira/jsonlogic/v3 v3.7.3/go.mod h1:OYRb6FSTVmMM+MNQ7ElmMsczyNSepw+OU4Z8emDSi4w= github.com/eapache/go-resiliency v1.7.0 h1:n3NRTnBn5N0Cbi/IeOHuQn9s2UwVUH7Ga0ZWcP+9JTA= github.com/eapache/go-resiliency v1.7.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho= github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 h1:Oy0F4ALJ04o5Qqpdz8XLIpNA3WM/iSIXqxtqo7UGVws= @@ -30,8 +30,8 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -108,16 +108,16 @@ github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= -github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 h1:5zbNHqcZAc9jlhSrC0onuVL2RPpvYcDaNvW2wOZBfUY= -github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= -github.com/open-feature/flagd/core v0.10.4 h1:3MVpDG7KigvKG9HzrK2yYKwAY2VeUbaghPWmh1MNmKg= -github.com/open-feature/flagd/core v0.10.4/go.mod h1:adkYaazGgCUg6z023rKBzSN8cN3Yamuh8h+3qxK7Yk8= +github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5 h1:0RKCLYeQpvSsKR95kc894tm8GAZmq7bcG48v0KJ0HCs= +github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= +github.com/open-feature/flagd/core v0.11.1 h1:0qBVXcRBZOFoZ5lNK/Yba2IyUDdxUHcLsv5OhUJtltA= +github.com/open-feature/flagd/core v0.11.1/go.mod h1:yzPjp7D9wNusvOyKt8wBND5PQGslcu+5e+xmaIBGgLE= github.com/open-feature/go-sdk v1.14.1 h1:jcxjCIG5Up3XkgYwWN5Y/WWfc6XobOhqrIwjyDBsoQo= github.com/open-feature/go-sdk v1.14.1/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4 h1:Iskgw8GubUlnZ9G+4iLbCY8pBbx78n7unEfwzfhvTiw= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4/go.mod h1:4w1Xk0Ym0S8ObjGo+mt4sLDXzDMC699kbjFd/a5cjqo= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5 h1:ddHmyboKzvCWYWEBKHiH39eRPdynuUkNPsPumRm/wrE= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5/go.mod h1:IFTzm7V7Gr0EX3AYA+SEGgMujqs2D45My6oZqmjQ2B4= github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -136,7 +136,6 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -202,13 +201,13 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= -golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= +golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c h1:KL/ZBHXgKGVmuZBZ01Lt57yE5ws8ZPSkkihmEyq7FXc= +golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -224,8 +223,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= -golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -251,8 +250,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= +golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -279,10 +278,10 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= -k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= -k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= -k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/api v0.31.4 h1:I2QNzitPVsPeLQvexMEsj945QumYraqv9m74isPDKhM= +k8s.io/api v0.31.4/go.mod h1:d+7vgXLvmcdT1BCo79VEgJxHHryww3V5np2OYTr6jdw= +k8s.io/apimachinery v0.31.4 h1:8xjE2C4CzhYVm9DGf60yohpNUh5AEBnPxCryPBECmlM= +k8s.io/apimachinery v0.31.4/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= diff --git a/src/product-catalog/go.mod b/src/product-catalog/go.mod index aa87c21966..758928cd0c 100644 --- a/src/product-catalog/go.mod +++ b/src/product-catalog/go.mod @@ -7,7 +7,7 @@ toolchain go1.22.9 require ( github.com/open-feature/go-sdk v1.14.1 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 - github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4 + github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5 github.com/sirupsen/logrus v1.9.3 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0 @@ -24,14 +24,14 @@ require ( require ( buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1 // indirect - buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1 // indirect - buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1 // indirect - connectrpc.com/connect v1.17.0 // indirect + buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2 // indirect + buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1 // indirect + connectrpc.com/connect v1.18.1 // indirect connectrpc.com/otelconnect v0.7.1 // indirect github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect - github.com/diegoholiveira/jsonlogic/v3 v3.5.3 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/diegoholiveira/jsonlogic/v3 v3.7.3 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -45,8 +45,8 @@ require ( github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 // indirect - github.com/open-feature/flagd/core v0.10.4 // indirect + github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5 // indirect + github.com/open-feature/flagd/core v0.11.1 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect @@ -59,8 +59,8 @@ require ( go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect - golang.org/x/mod v0.21.0 // indirect + golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c // indirect + golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.34.0 // indirect golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect @@ -69,7 +69,7 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.31.1 // indirect + k8s.io/apimachinery v0.31.4 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect sigs.k8s.io/controller-runtime v0.19.0 // indirect diff --git a/src/product-catalog/go.sum b/src/product-catalog/go.sum index ccdf5297c1..44e411ea4b 100644 --- a/src/product-catalog/go.sum +++ b/src/product-catalog/go.sum @@ -1,11 +1,11 @@ buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1 h1:dU3vvR6d5iVwHBVQVS14ci+i29+4lLT8HjYktYSTPF8= buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1/go.mod h1:jKw7gioqYsWaHUKr5Ja6MiadsXcrGJxQ86gucJ0luUA= -buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1 h1:18ZObecoJfRbNQDeuW0PoBR829Mw8FrPrmWIbbaA5hs= -buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20240906125204-0a6a901b42e8.1/go.mod h1:WA65xyBj+VxPfJ3a+EqdZtWGeNdwqiaQO1sriHaNL1Y= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1 h1:z4CfAMlT5uylpjQ9XXdLTSzBRl+clmUN7rt44VmJhLo= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.35.1-20240906125204-0a6a901b42e8.1/go.mod h1:y7yb/W0yMTBxf0mX+07jFy6Lxu/0L65A8p06MNrGyeo= -connectrpc.com/connect v1.17.0 h1:W0ZqMhtVzn9Zhn2yATuUokDLO5N+gIuBWMOnsQrfmZk= -connectrpc.com/connect v1.17.0/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8= +buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2 h1:D3HI5RQbqgffyf+Z77+hReDx5kigFVAKGvttULD9/ms= +buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2/go.mod h1:b9rfG6rbGXZAlLwQwedvZ0kI0nUcR+aLaYF70pj920E= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1 h1:0vXmOkGv8nO5H1W8TkSz+GtZhvD2LNXiQaiucEio6vk= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1/go.mod h1:wemFLfCpuNfhrBQ7NwzbtYxbg+IihAYqJcNeS+fLpLI= +connectrpc.com/connect v1.18.1 h1:PAg7CjSAGvscaf6YZKUefjoih5Z/qYkyaTrBW8xvYPw= +connectrpc.com/connect v1.18.1/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8= connectrpc.com/otelconnect v0.7.1 h1:scO5pOb0i4yUE66CnNrHeK1x51yq0bE0ehPg6WvzXJY= connectrpc.com/otelconnect v0.7.1/go.mod h1:dh3bFgHBTb2bkqGCeVVOtHJreSns7uu9wwL2Tbz17ms= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df h1:GSoSVRLoBaFpOOds6QyY1L8AX7uoY+Ln3BHc22W40X0= @@ -16,10 +16,10 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/diegoholiveira/jsonlogic/v3 v3.5.3 h1:CPyZQ3fOgiIDZ1yWzPGUpyht5tYTOnRoN913c0mkXZw= -github.com/diegoholiveira/jsonlogic/v3 v3.5.3/go.mod h1:3nnfWovrlZq2rTpucrJ2KMIS8TMf6IoFneofmeqk/qk= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/diegoholiveira/jsonlogic/v3 v3.7.3 h1:orvGaTW5Qdcowpr7vgfMNuqYNjQYcqtw9W1Bk4QyI38= +github.com/diegoholiveira/jsonlogic/v3 v3.7.3/go.mod h1:OYRb6FSTVmMM+MNQ7ElmMsczyNSepw+OU4Z8emDSi4w= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -70,16 +70,16 @@ github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= -github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 h1:5zbNHqcZAc9jlhSrC0onuVL2RPpvYcDaNvW2wOZBfUY= -github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= -github.com/open-feature/flagd/core v0.10.4 h1:3MVpDG7KigvKG9HzrK2yYKwAY2VeUbaghPWmh1MNmKg= -github.com/open-feature/flagd/core v0.10.4/go.mod h1:adkYaazGgCUg6z023rKBzSN8cN3Yamuh8h+3qxK7Yk8= +github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5 h1:0RKCLYeQpvSsKR95kc894tm8GAZmq7bcG48v0KJ0HCs= +github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= +github.com/open-feature/flagd/core v0.11.1 h1:0qBVXcRBZOFoZ5lNK/Yba2IyUDdxUHcLsv5OhUJtltA= +github.com/open-feature/flagd/core v0.11.1/go.mod h1:yzPjp7D9wNusvOyKt8wBND5PQGslcu+5e+xmaIBGgLE= github.com/open-feature/go-sdk v1.14.1 h1:jcxjCIG5Up3XkgYwWN5Y/WWfc6XobOhqrIwjyDBsoQo= github.com/open-feature/go-sdk v1.14.1/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4 h1:Iskgw8GubUlnZ9G+4iLbCY8pBbx78n7unEfwzfhvTiw= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.4/go.mod h1:4w1Xk0Ym0S8ObjGo+mt4sLDXzDMC699kbjFd/a5cjqo= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5 h1:ddHmyboKzvCWYWEBKHiH39eRPdynuUkNPsPumRm/wrE= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5/go.mod h1:IFTzm7V7Gr0EX3AYA+SEGgMujqs2D45My6oZqmjQ2B4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -91,7 +91,6 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= @@ -147,12 +146,12 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= -golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= +golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c h1:KL/ZBHXgKGVmuZBZ01Lt57yE5ws8ZPSkkihmEyq7FXc= +golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -162,8 +161,8 @@ golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= -golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -179,8 +178,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= +golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -206,10 +205,10 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= -k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= -k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= -k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/api v0.31.4 h1:I2QNzitPVsPeLQvexMEsj945QumYraqv9m74isPDKhM= +k8s.io/api v0.31.4/go.mod h1:d+7vgXLvmcdT1BCo79VEgJxHHryww3V5np2OYTr6jdw= +k8s.io/apimachinery v0.31.4 h1:8xjE2C4CzhYVm9DGf60yohpNUh5AEBnPxCryPBECmlM= +k8s.io/apimachinery v0.31.4/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= From 6677d8d5a69da29dde33cb5cfe4c2de0b10c3668 Mon Sep 17 00:00:00 2001 From: Juliano Costa Date: Thu, 20 Feb 2025 14:58:36 +0100 Subject: [PATCH 137/178] [chore] bump dependent images (#2061) * [chore] bump dependent images * OpenSearch datasources * Remove leftover --------- Co-authored-by: Pierre Tessier --- .env | 20 +++++++++---------- .../provisioning/datasources/opensearch.yaml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.env b/.env index 02415b1dbf..50a3b92f2d 100644 --- a/.env +++ b/.env @@ -7,19 +7,19 @@ DEMO_VERSION=latest # Build Args TRACETEST_IMAGE_VERSION=v1.7.1 -OTEL_JAVA_AGENT_VERSION=2.10.0 -OPENTELEMETRY_CPP_VERSION=1.18.0 +OTEL_JAVA_AGENT_VERSION=2.13.1 +OPENTELEMETRY_CPP_VERSION=1.19.0 # Dependent images -COLLECTOR_CONTRIB_IMAGE=ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.116.1 -FLAGD_IMAGE=ghcr.io/open-feature/flagd:v0.11.5 -GRAFANA_IMAGE=grafana/grafana:11.4.0 -JAEGERTRACING_IMAGE=jaegertracing/all-in-one:1.64.0 +COLLECTOR_CONTRIB_IMAGE=ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.120.0 +FLAGD_IMAGE=ghcr.io/open-feature/flagd:v0.12.1 +GRAFANA_IMAGE=grafana/grafana:11.5.2 +JAEGERTRACING_IMAGE=jaegertracing/all-in-one:1.66.0 # must also update version field in src/grafana/provisioning/datasources/opensearch.yaml -OPENSEARCH_IMAGE=opensearchproject/opensearch:2.18.0 -POSTGRES_IMAGE=postgres:17.2 -PROMETHEUS_IMAGE=quay.io/prometheus/prometheus:v3.0.1 -VALKEY_IMAGE=valkey/valkey:8.0-alpine +OPENSEARCH_IMAGE=opensearchproject/opensearch:2.19.0 +POSTGRES_IMAGE=postgres:17.3 +PROMETHEUS_IMAGE=quay.io/prometheus/prometheus:v3.2.0 +VALKEY_IMAGE=valkey/valkey:8.1-alpine TRACETEST_IMAGE=kubeshop/tracetest:${TRACETEST_IMAGE_VERSION} # Demo Platform diff --git a/src/grafana/provisioning/datasources/opensearch.yaml b/src/grafana/provisioning/datasources/opensearch.yaml index 918e995e44..df633bc743 100644 --- a/src/grafana/provisioning/datasources/opensearch.yaml +++ b/src/grafana/provisioning/datasources/opensearch.yaml @@ -17,4 +17,4 @@ datasources: logMessageField: body pplEnabled: true timeField: observedTimestamp - version: 2.18.0 + version: 2.19.0 From 887f7246508732e99dd42cd84eba01a1a5fd6ddd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Feb 2025 19:22:34 +0100 Subject: [PATCH 138/178] build(deps): bump the pip-production-dependencies group across 3 directories with 3 updates (#2065) * build(deps): bump the pip-production-dependencies group across 3 directories with 3 updates Bumps the pip-production-dependencies group with 3 updates in the /src directory: [googleapis-common-protos](https://github.com/googleapis/google-cloud-python), [locust](https://github.com/locustio/locust) and [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib). Bumps the pip-production-dependencies group with 3 updates in the /src/load-generator directory: [googleapis-common-protos](https://github.com/googleapis/google-cloud-python), [locust](https://github.com/locustio/locust) and [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib). Bumps the pip-production-dependencies group with 1 update in the /src/recommendation directory: [openfeature-provider-flagd](https://github.com/open-feature/python-sdk-contrib). Updates `googleapis-common-protos` from 1.67.0 to 1.68.0 - [Release notes](https://github.com/googleapis/google-cloud-python/releases) - [Changelog](https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md) - [Commits](https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.67.0...googleapis-common-protos-v1.68.0) Updates `locust` from 2.32.9 to 2.32.10 - [Release notes](https://github.com/locustio/locust/releases) - [Changelog](https://github.com/locustio/locust/blob/master/CHANGELOG.md) - [Commits](https://github.com/locustio/locust/compare/2.32.9...2.32.10) Updates `openfeature-provider-flagd` from 0.1.5 to 0.2.0 - [Release notes](https://github.com/open-feature/python-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/python-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.1.5...openfeature-provider-flagd/v0.2.0) Updates `googleapis-common-protos` from 1.67.0 to 1.68.0 - [Release notes](https://github.com/googleapis/google-cloud-python/releases) - [Changelog](https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md) - [Commits](https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.67.0...googleapis-common-protos-v1.68.0) Updates `locust` from 2.32.9 to 2.32.10 - [Release notes](https://github.com/locustio/locust/releases) - [Changelog](https://github.com/locustio/locust/blob/master/CHANGELOG.md) - [Commits](https://github.com/locustio/locust/compare/2.32.9...2.32.10) Updates `openfeature-provider-flagd` from 0.1.5 to 0.2.0 - [Release notes](https://github.com/open-feature/python-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/python-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.1.5...openfeature-provider-flagd/v0.2.0) Updates `openfeature-provider-flagd` from 0.1.5 to 0.2.0 - [Release notes](https://github.com/open-feature/python-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/python-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/python-sdk-contrib/compare/openfeature-provider-flagd/v0.1.5...openfeature-provider-flagd/v0.2.0) --- updated-dependencies: - dependency-name: googleapis-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: locust dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: openfeature-provider-flagd dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: googleapis-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: locust dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: openfeature-provider-flagd dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: openfeature-provider-flagd dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies ... Signed-off-by: dependabot[bot] * Downgrade openfeature-provider-flagd --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa --- src/load-generator/requirements.txt | 4 ++-- src/recommendation/requirements.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/load-generator/requirements.txt b/src/load-generator/requirements.txt index 6fff7bf0e3..54f9fe48ec 100644 --- a/src/load-generator/requirements.txt +++ b/src/load-generator/requirements.txt @@ -10,12 +10,12 @@ flask-basicauth==0.2.0 flask-cors==5.0.0 gevent==24.11.1 geventhttpclient==2.3.3 -googleapis-common-protos==1.67.0 +googleapis-common-protos==1.68.0 greenlet==3.1.1 idna==3.10 itsdangerous==2.2.0 jinja2==3.1.5 -locust==2.32.9 +locust==2.32.10 locust-plugins[playwright]==4.5.3 markupsafe==3.0.2 msgpack==1.1.0 diff --git a/src/recommendation/requirements.txt b/src/recommendation/requirements.txt index 2c5ee2bdfd..31dae3ac51 100644 --- a/src/recommendation/requirements.txt +++ b/src/recommendation/requirements.txt @@ -5,7 +5,7 @@ opentelemetry-exporter-otlp-proto-grpc==1.30.0 python-dotenv==1.0.1 python-json-logger==3.2.1 openfeature-sdk==0.8.0 -openfeature-provider-flagd==0.1.5 +openfeature-provider-flagd==0.2.0 openfeature-hooks-opentelemetry==0.1.3 psutil==6.1.1 # Importing this will also import opentelemetry-instrumentation-system-metrics when running opentelemetry-bootstrap From 35483b177630bfe2326798d2d0f456f40f87c174 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Sun, 23 Feb 2025 11:57:06 +0000 Subject: [PATCH 139/178] add clean-images target (#2067) --- Makefile | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Makefile b/Makefile index 68b1b745ae..ebff8282aa 100644 --- a/Makefile +++ b/Makefile @@ -115,6 +115,17 @@ build-multiplatform-and-push: # Because buildx bake does not support --env-file yet, we need to load it into the environment first. set -a; . ./.env.override; set +a && docker buildx bake -f docker-compose.yml --push --set "*.platform=linux/amd64,linux/arm64" +.PHONY: clean-images +clean-images: + @docker rmi $(shell docker images --filter=reference="ghcr.io/open-telemetry/demo:latest-*" -q); \ + if [ $$? -ne 0 ]; \ + then \ + echo; \ + echo "Failed to removed 1 or more OpenTelemetry Demo images."; \ + echo "Check to ensure the Demo is not running by executing: make stop"; \ + false; \ + fi + .PHONY: run-tests run-tests: $(DOCKER_COMPOSE_CMD) $(DOCKER_COMPOSE_ENV) -f docker-compose-tests.yml run frontendTests From 8086448f760d65138186bc3956b881e0f9e76fb5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2025 18:36:31 -0500 Subject: [PATCH 140/178] build(deps-dev): bump the npm-development-dependencies group across 2 directories with 4 updates (#2060) Bumps the npm-development-dependencies group with 4 updates in the /src/flagd-ui directory: [postcss](https://github.com/postcss/postcss), [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss), [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Bumps the npm-development-dependencies group with 2 updates in the /src/frontend directory: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `postcss` from 8.5.2 to 8.5.3 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.5.2...8.5.3) Updates `tailwindcss` from 4.0.6 to 4.0.7 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.0.7/packages/tailwindcss) Updates `@typescript-eslint/eslint-plugin` from 8.24.0 to 8.24.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.24.0 to 8.24.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.1/packages/parser) Updates `@typescript-eslint/eslint-plugin` from 8.24.0 to 8.24.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.24.0 to 8.24.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.1/packages/parser) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: tailwindcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/flagd-ui/package-lock.json | 113 ++++++++++++++++++--------------- src/flagd-ui/package.json | 4 +- src/frontend/package-lock.json | 88 ++++++++++++------------- src/frontend/package.json | 4 +- 4 files changed, 111 insertions(+), 98 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index f4ef5d5dbd..5f21bdd883 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -23,10 +23,10 @@ "autoprefixer": "^10.4.20", "eslint": "^9", "eslint-config-next": "15.1.7", - "postcss": "^8.5.2", + "postcss": "^8.5.3", "prettier": "^3.5.1", "prettier-plugin-tailwindcss": "^0.6.11", - "tailwindcss": "^4.0.4", + "tailwindcss": "^4.0.7", "typescript": "^5" } }, @@ -1068,6 +1068,12 @@ "tailwindcss": "4.0.6" } }, + "node_modules/@tailwindcss/node/node_modules/tailwindcss": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.6.tgz", + "integrity": "sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw==", + "license": "MIT" + }, "node_modules/@tailwindcss/oxide": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.6.tgz", @@ -1280,6 +1286,12 @@ "tailwindcss": "4.0.6" } }, + "node_modules/@tailwindcss/postcss/node_modules/tailwindcss": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.6.tgz", + "integrity": "sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw==", + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -1342,17 +1354,17 @@ "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.0.tgz", - "integrity": "sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.1.tgz", + "integrity": "sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.24.0", - "@typescript-eslint/type-utils": "8.24.0", - "@typescript-eslint/utils": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0", + "@typescript-eslint/scope-manager": "8.24.1", + "@typescript-eslint/type-utils": "8.24.1", + "@typescript-eslint/utils": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1372,16 +1384,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.0.tgz", - "integrity": "sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.1.tgz", + "integrity": "sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.24.0", - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/typescript-estree": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0", + "@typescript-eslint/scope-manager": "8.24.1", + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/typescript-estree": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1", "debug": "^4.3.4" }, "engines": { @@ -1397,14 +1409,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.0.tgz", - "integrity": "sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.1.tgz", + "integrity": "sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0" + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1415,14 +1427,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.0.tgz", - "integrity": "sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.1.tgz", + "integrity": "sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.24.0", - "@typescript-eslint/utils": "8.24.0", + "@typescript-eslint/typescript-estree": "8.24.1", + "@typescript-eslint/utils": "8.24.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -1439,9 +1451,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.0.tgz", - "integrity": "sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.1.tgz", + "integrity": "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==", "dev": true, "license": "MIT", "engines": { @@ -1453,14 +1465,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.0.tgz", - "integrity": "sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.1.tgz", + "integrity": "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0", + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -1506,16 +1518,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.0.tgz", - "integrity": "sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.1.tgz", + "integrity": "sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.24.0", - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/typescript-estree": "8.24.0" + "@typescript-eslint/scope-manager": "8.24.1", + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/typescript-estree": "8.24.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1530,13 +1542,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz", - "integrity": "sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.1.tgz", + "integrity": "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/types": "8.24.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -4628,9 +4640,9 @@ } }, "node_modules/postcss": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", - "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "funding": [ { "type": "opencollective", @@ -5420,9 +5432,10 @@ } }, "node_modules/tailwindcss": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.6.tgz", - "integrity": "sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.7.tgz", + "integrity": "sha512-yH5bPPyapavo7L+547h3c4jcBXcrKwybQRjwdEIVAd9iXRvy/3T1CC6XSQEgZtRySjKfqvo3Cc0ZF1DTheuIdA==", + "dev": true, "license": "MIT" }, "node_modules/tapable": { diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 71c60cb7ec..2a94178799 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -24,10 +24,10 @@ "autoprefixer": "^10.4.20", "eslint": "^9", "eslint-config-next": "15.1.7", - "postcss": "^8.5.2", + "postcss": "^8.5.3", "prettier": "^3.5.1", "prettier-plugin-tailwindcss": "^0.6.11", - "tailwindcss": "^4.0.4", + "tailwindcss": "^4.0.7", "typescript": "^5" } } diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 309f14970b..1da1e9b0eb 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -50,8 +50,8 @@ "@types/react-dom": "19.0.4", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.24.0", - "@typescript-eslint/parser": "8.24.0", + "@typescript-eslint/eslint-plugin": "8.24.1", + "@typescript-eslint/parser": "8.24.1", "cypress": "14.0.3", "eslint": "9.20.1", "eslint-config-next": "15.1.7", @@ -3170,17 +3170,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.0.tgz", - "integrity": "sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.1.tgz", + "integrity": "sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.24.0", - "@typescript-eslint/type-utils": "8.24.0", - "@typescript-eslint/utils": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0", + "@typescript-eslint/scope-manager": "8.24.1", + "@typescript-eslint/type-utils": "8.24.1", + "@typescript-eslint/utils": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3200,16 +3200,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.0.tgz", - "integrity": "sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.1.tgz", + "integrity": "sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.24.0", - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/typescript-estree": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0", + "@typescript-eslint/scope-manager": "8.24.1", + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/typescript-estree": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1", "debug": "^4.3.4" }, "engines": { @@ -3225,14 +3225,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.0.tgz", - "integrity": "sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.1.tgz", + "integrity": "sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0" + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3243,14 +3243,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.0.tgz", - "integrity": "sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.1.tgz", + "integrity": "sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.24.0", - "@typescript-eslint/utils": "8.24.0", + "@typescript-eslint/typescript-estree": "8.24.1", + "@typescript-eslint/utils": "8.24.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -3267,9 +3267,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.0.tgz", - "integrity": "sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.1.tgz", + "integrity": "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==", "dev": true, "license": "MIT", "engines": { @@ -3281,14 +3281,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.0.tgz", - "integrity": "sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.1.tgz", + "integrity": "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0", + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3321,16 +3321,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.0.tgz", - "integrity": "sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.1.tgz", + "integrity": "sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.24.0", - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/typescript-estree": "8.24.0" + "@typescript-eslint/scope-manager": "8.24.1", + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/typescript-estree": "8.24.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3345,13 +3345,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz", - "integrity": "sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.1.tgz", + "integrity": "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/types": "8.24.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { diff --git a/src/frontend/package.json b/src/frontend/package.json index f084af61a4..10b72e35d5 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -53,8 +53,8 @@ "@types/react-dom": "19.0.4", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.24.0", - "@typescript-eslint/parser": "8.24.0", + "@typescript-eslint/eslint-plugin": "8.24.1", + "@typescript-eslint/parser": "8.24.1", "cypress": "14.0.3", "eslint": "9.20.1", "eslint-config-next": "15.1.7", From 47fd4e028d1d38e099936123f26832a10a4cdf73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2025 18:59:43 -0500 Subject: [PATCH 141/178] build(deps): bump the npm-production-dependencies group across 1 directory with 8 updates (#2069) Bumps the npm-production-dependencies group with 8 updates in the /src/frontend directory: | Package | From | To | | --- | --- | --- | | [@opentelemetry/auto-instrumentations-node](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.56.0` | `0.56.1` | | [@opentelemetry/auto-instrumentations-web](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.45.0` | `0.45.1` | | [@opentelemetry/resource-detector-alibaba-cloud](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.30.0` | `0.30.1` | | [@opentelemetry/resource-detector-aws](https://github.com/open-telemetry/opentelemetry-js-contrib) | `1.11.0` | `1.12.0` | | [@opentelemetry/resource-detector-container](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.6.0` | `0.6.1` | | [@opentelemetry/resource-detector-gcp](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.33.0` | `0.33.1` | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.66.4` | `5.66.9` | | [uuid](https://github.com/uuidjs/uuid) | `11.0.5` | `11.1.0` | Updates `@opentelemetry/auto-instrumentations-node` from 0.56.0 to 0.56.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/auto-instrumentations-node-v0.56.0...auto-instrumentations-node-v0.56.1) Updates `@opentelemetry/auto-instrumentations-web` from 0.45.0 to 0.45.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-pg-v0.45.0...contrib-test-utils-v0.45.1) Updates `@opentelemetry/resource-detector-alibaba-cloud` from 0.30.0 to 0.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/host-metrics-v0.30.0...host-metrics-v0.30.1) Updates `@opentelemetry/resource-detector-aws` from 1.11.0 to 1.12.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-aws-v1.11.0...resource-detector-aws-v1.12.0) Updates `@opentelemetry/resource-detector-container` from 0.6.0 to 0.6.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/v0.6.0...v0.6.1) Updates `@opentelemetry/resource-detector-gcp` from 0.33.0 to 0.33.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/host-metrics-v0.33.0...host-metrics-v0.33.1) Updates `@tanstack/react-query` from 5.66.4 to 5.66.9 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.66.9/packages/react-query) Updates `uuid` from 11.0.5 to 11.1.0 - [Release notes](https://github.com/uuidjs/uuid/releases) - [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md) - [Commits](https://github.com/uuidjs/uuid/compare/v11.0.5...v11.1.0) --- updated-dependencies: - dependency-name: "@opentelemetry/auto-instrumentations-node" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/auto-instrumentations-web" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-alibaba-cloud" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-aws" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-container" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-gcp" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: uuid dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/frontend/package-lock.json | 532 ++++++++++++++++----------------- src/frontend/package.json | 16 +- 2 files changed, 274 insertions(+), 274 deletions(-) diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 1da1e9b0eb..4422cb51cf 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -14,25 +14,25 @@ "@openfeature/flagd-web-provider": "0.7.2", "@openfeature/react-sdk": "0.4.11", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.56.0", - "@opentelemetry/auto-instrumentations-web": "0.45.0", + "@opentelemetry/auto-instrumentations-node": "0.56.1", + "@opentelemetry/auto-instrumentations-web": "0.45.1", "@opentelemetry/context-zone": "1.30.1", "@opentelemetry/core": "1.30.1", "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.2", "@opentelemetry/exporter-trace-otlp-grpc": "0.57.2", "@opentelemetry/exporter-trace-otlp-http": "0.57.2", "@opentelemetry/instrumentation": "0.57.2", - "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", - "@opentelemetry/resource-detector-aws": "1.11.0", - "@opentelemetry/resource-detector-container": "0.6.0", - "@opentelemetry/resource-detector-gcp": "0.33.0", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.1", + "@opentelemetry/resource-detector-aws": "1.12.0", + "@opentelemetry/resource-detector-container": "0.6.1", + "@opentelemetry/resource-detector-gcp": "0.33.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-node": "0.57.2", "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.66.4", + "@tanstack/react-query": "5.66.9", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", @@ -42,7 +42,7 @@ "react-dom": "19.0.0", "sharp": "0.33.5", "styled-components": "6.1.15", - "uuid": "11.0.5" + "uuid": "11.1.0" }, "devDependencies": { "@types/node": "22.13.4", @@ -1204,58 +1204,58 @@ } }, "node_modules/@opentelemetry/auto-instrumentations-node": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.56.0.tgz", - "integrity": "sha512-d1X3DQY0+VmhNUir/3U3JO6Uh0FOSm8G91zsPzVVKc6NGDwmHP6Dn7PMVH70O6FZ0yErzlHqRx8vkNiAsTWt5A==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", - "@opentelemetry/instrumentation-amqplib": "^0.46.0", - "@opentelemetry/instrumentation-aws-lambda": "^0.50.2", - "@opentelemetry/instrumentation-aws-sdk": "^0.49.0", - "@opentelemetry/instrumentation-bunyan": "^0.45.0", - "@opentelemetry/instrumentation-cassandra-driver": "^0.45.0", - "@opentelemetry/instrumentation-connect": "^0.43.0", - "@opentelemetry/instrumentation-cucumber": "^0.14.0", - "@opentelemetry/instrumentation-dataloader": "^0.16.0", - "@opentelemetry/instrumentation-dns": "^0.43.0", - "@opentelemetry/instrumentation-express": "^0.47.0", - "@opentelemetry/instrumentation-fastify": "^0.44.1", - "@opentelemetry/instrumentation-fs": "^0.19.0", - "@opentelemetry/instrumentation-generic-pool": "^0.43.0", - "@opentelemetry/instrumentation-graphql": "^0.47.0", - "@opentelemetry/instrumentation-grpc": "^0.57.0", - "@opentelemetry/instrumentation-hapi": "^0.45.1", - "@opentelemetry/instrumentation-http": "^0.57.0", - "@opentelemetry/instrumentation-ioredis": "^0.47.0", - "@opentelemetry/instrumentation-kafkajs": "^0.7.0", - "@opentelemetry/instrumentation-knex": "^0.44.0", - "@opentelemetry/instrumentation-koa": "^0.47.0", - "@opentelemetry/instrumentation-lru-memoizer": "^0.44.0", - "@opentelemetry/instrumentation-memcached": "^0.43.0", - "@opentelemetry/instrumentation-mongodb": "^0.51.0", - "@opentelemetry/instrumentation-mongoose": "^0.46.0", - "@opentelemetry/instrumentation-mysql": "^0.45.0", - "@opentelemetry/instrumentation-mysql2": "^0.45.1", - "@opentelemetry/instrumentation-nestjs-core": "^0.44.0", - "@opentelemetry/instrumentation-net": "^0.43.0", - "@opentelemetry/instrumentation-pg": "^0.51.0", - "@opentelemetry/instrumentation-pino": "^0.46.0", - "@opentelemetry/instrumentation-redis": "^0.46.0", - "@opentelemetry/instrumentation-redis-4": "^0.46.0", - "@opentelemetry/instrumentation-restify": "^0.45.0", - "@opentelemetry/instrumentation-router": "^0.44.0", - "@opentelemetry/instrumentation-socket.io": "^0.46.0", - "@opentelemetry/instrumentation-tedious": "^0.18.0", - "@opentelemetry/instrumentation-undici": "^0.10.0", - "@opentelemetry/instrumentation-winston": "^0.44.0", - "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", - "@opentelemetry/resource-detector-aws": "1.11.0", - "@opentelemetry/resource-detector-azure": "^0.6.0", - "@opentelemetry/resource-detector-container": "0.6.0", - "@opentelemetry/resource-detector-gcp": "0.33.0", + "version": "0.56.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.56.1.tgz", + "integrity": "sha512-4cK0+unfkXRRbQQg2r9K3ki8JlE0j9Iw8+4DZEkChShAnmviiE+/JMgHGvK+VVcLrSlgV6BBHv4+ZTLukQwhkA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/instrumentation-amqplib": "^0.46.1", + "@opentelemetry/instrumentation-aws-lambda": "^0.50.3", + "@opentelemetry/instrumentation-aws-sdk": "^0.49.1", + "@opentelemetry/instrumentation-bunyan": "^0.45.1", + "@opentelemetry/instrumentation-cassandra-driver": "^0.45.1", + "@opentelemetry/instrumentation-connect": "^0.43.1", + "@opentelemetry/instrumentation-cucumber": "^0.14.1", + "@opentelemetry/instrumentation-dataloader": "^0.16.1", + "@opentelemetry/instrumentation-dns": "^0.43.1", + "@opentelemetry/instrumentation-express": "^0.47.1", + "@opentelemetry/instrumentation-fastify": "^0.44.2", + "@opentelemetry/instrumentation-fs": "^0.19.1", + "@opentelemetry/instrumentation-generic-pool": "^0.43.1", + "@opentelemetry/instrumentation-graphql": "^0.47.1", + "@opentelemetry/instrumentation-grpc": "^0.57.1", + "@opentelemetry/instrumentation-hapi": "^0.45.2", + "@opentelemetry/instrumentation-http": "^0.57.1", + "@opentelemetry/instrumentation-ioredis": "^0.47.1", + "@opentelemetry/instrumentation-kafkajs": "^0.7.1", + "@opentelemetry/instrumentation-knex": "^0.44.1", + "@opentelemetry/instrumentation-koa": "^0.47.1", + "@opentelemetry/instrumentation-lru-memoizer": "^0.44.1", + "@opentelemetry/instrumentation-memcached": "^0.43.1", + "@opentelemetry/instrumentation-mongodb": "^0.52.0", + "@opentelemetry/instrumentation-mongoose": "^0.46.1", + "@opentelemetry/instrumentation-mysql": "^0.45.1", + "@opentelemetry/instrumentation-mysql2": "^0.45.2", + "@opentelemetry/instrumentation-nestjs-core": "^0.44.1", + "@opentelemetry/instrumentation-net": "^0.43.1", + "@opentelemetry/instrumentation-pg": "^0.51.1", + "@opentelemetry/instrumentation-pino": "^0.46.1", + "@opentelemetry/instrumentation-redis": "^0.46.1", + "@opentelemetry/instrumentation-redis-4": "^0.46.1", + "@opentelemetry/instrumentation-restify": "^0.45.1", + "@opentelemetry/instrumentation-router": "^0.44.1", + "@opentelemetry/instrumentation-socket.io": "^0.46.1", + "@opentelemetry/instrumentation-tedious": "^0.18.1", + "@opentelemetry/instrumentation-undici": "^0.10.1", + "@opentelemetry/instrumentation-winston": "^0.44.1", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.1", + "@opentelemetry/resource-detector-aws": "1.12.0", + "@opentelemetry/resource-detector-azure": "^0.6.1", + "@opentelemetry/resource-detector-container": "0.6.1", + "@opentelemetry/resource-detector-gcp": "0.33.1", "@opentelemetry/resources": "^1.24.0", - "@opentelemetry/sdk-node": "^0.57.0" + "@opentelemetry/sdk-node": "^0.57.1" }, "engines": { "node": ">=14" @@ -1265,16 +1265,16 @@ } }, "node_modules/@opentelemetry/auto-instrumentations-web": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-web/-/auto-instrumentations-web-0.45.0.tgz", - "integrity": "sha512-2HnaXx8qgJ2wZn4t9S2cI5AWPADTJWMv46YA8+vsgqVPlc6ny0smY0XvSmb2kYVoHxWr2rwQZZi4HTIrgQRq3A==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-web/-/auto-instrumentations-web-0.45.1.tgz", + "integrity": "sha512-Q8DhofjNUFaIr4OHoVni96WMGoIijr0tKCtPe6c0Ih07/PZVWXBWT6PLpwOu0yusTzgc0TMuY5LOBqUVd6Y58w==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", - "@opentelemetry/instrumentation-document-load": "^0.44.0", - "@opentelemetry/instrumentation-fetch": "^0.57.0", - "@opentelemetry/instrumentation-user-interaction": "^0.44.0", - "@opentelemetry/instrumentation-xml-http-request": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/instrumentation-document-load": "^0.44.1", + "@opentelemetry/instrumentation-fetch": "^0.57.1", + "@opentelemetry/instrumentation-user-interaction": "^0.44.1", + "@opentelemetry/instrumentation-xml-http-request": "^0.57.1" }, "engines": { "node": ">=14" @@ -1597,13 +1597,13 @@ } }, "node_modules/@opentelemetry/instrumentation-amqplib": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.0.tgz", - "integrity": "sha512-04VHHV1KIN/c1wLWwzmLI02d/welgscBJ4BuDqrHaxd+ZIdlVXK9UYQsYf3JwSeF52z/4YoSzr8bfdVBSWoMAg==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.1.tgz", + "integrity": "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1614,14 +1614,14 @@ } }, "node_modules/@opentelemetry/instrumentation-aws-lambda": { - "version": "0.50.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.50.2.tgz", - "integrity": "sha512-jz1a7t2q0SsiztEMyZjFLEFC4pOQ+1C588gWzl878k9Qr6TI1Wu3sa7/dikxJmeRIETcOTUilaa2Otxh6HUVlA==", + "version": "0.50.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.50.3.tgz", + "integrity": "sha512-kotm/mRvSWUauudxcylc5YCDei+G/r+jnOH6q5S99aPLQ/Ms8D2yonMIxEJUILIPlthEmwLYxkw3ualWzMjm/A==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", - "@types/aws-lambda": "8.10.143" + "@types/aws-lambda": "8.10.147" }, "engines": { "node": ">=14" @@ -1631,14 +1631,14 @@ } }, "node_modules/@opentelemetry/instrumentation-aws-sdk": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.49.0.tgz", - "integrity": "sha512-m3yC3ni4Yo8tggbZgygS/ccAP9e/EYqsMwzooHiIymbnyZwDAB7kMZ3OrjcLVPCFx9gjNMDKW4MdwOPC0vTEeQ==", + "version": "0.49.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.49.1.tgz", + "integrity": "sha512-Vbj4BYeV/1K4Pbbfk+gQ8gwYL0w+tBeUwG88cOxnF7CLPO1XnskGV8Q3Gzut2Ah/6Dg17dBtlzEqL3UiFP2Z6A==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", - "@opentelemetry/propagation-utils": "^0.30.15", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/propagation-utils": "^0.30.16", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1649,14 +1649,14 @@ } }, "node_modules/@opentelemetry/instrumentation-bunyan": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.45.0.tgz", - "integrity": "sha512-K3ZleoOxKUzGjt0TfAT1jfSNcgyt7+toqjhWymPf2tsGUETXxaxGDzAoNepWcfIkgPauJLPpRLLKcP6LjYLILw==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.45.1.tgz", + "integrity": "sha512-T9POV9ccS41UjpsjLrJ4i0m8LfplBiN3dMeH9XZ2btiDrjoaWtDrst6tNb1avetBjkeshOuBp1EWKP22EVSr0g==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "^0.57.0", - "@opentelemetry/instrumentation": "^0.57.0", - "@types/bunyan": "1.8.9" + "@opentelemetry/api-logs": "^0.57.1", + "@opentelemetry/instrumentation": "^0.57.1", + "@types/bunyan": "1.8.11" }, "engines": { "node": ">=14" @@ -1666,12 +1666,12 @@ } }, "node_modules/@opentelemetry/instrumentation-cassandra-driver": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.45.0.tgz", - "integrity": "sha512-IKoA0lLfF7EyIL85MfqzvfAa/Oz9zHNFXwzSiQ6Iqej89BMyOm3eYaAsyUDAvgiLG12M189temMMyRuR07YsZg==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.45.1.tgz", + "integrity": "sha512-RqnP0rK2hcKK1AKcmYvedLiL6G5TvFGiSUt2vI9wN0cCBdTt9Y9+wxxY19KoGxq7e9T/aHow6P5SUhCVI1sHvQ==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1682,15 +1682,15 @@ } }, "node_modules/@opentelemetry/instrumentation-connect": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.0.tgz", - "integrity": "sha512-Q57JGpH6T4dkYHo9tKXONgLtxzsh1ZEW5M9A/OwKrZFyEpLqWgjhcZ3hIuVvDlhb426iDF1f9FPToV/mi5rpeA==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.1.tgz", + "integrity": "sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", - "@types/connect": "3.4.36" + "@types/connect": "3.4.38" }, "engines": { "node": ">=14" @@ -1700,12 +1700,12 @@ } }, "node_modules/@opentelemetry/instrumentation-cucumber": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.14.0.tgz", - "integrity": "sha512-i/GlurL1IM+CnbmItW8kx59YxAp0wu/YQkzQQRU/YGmUjym5g+/dOVjnk/K46lAU49Nn1XyFd7S3ZNf83PHL2Q==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.14.1.tgz", + "integrity": "sha512-ybO+tmH85pDO0ywTskmrMtZcccKyQr7Eb7wHy1keR2HFfx46SzZbjHo1AuGAX//Hook3gjM7+w211gJ2bwKe1Q==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1716,12 +1716,12 @@ } }, "node_modules/@opentelemetry/instrumentation-dataloader": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.0.tgz", - "integrity": "sha512-88+qCHZC02up8PwKHk0UQKLLqGGURzS3hFQBZC7PnGwReuoKjHXS1o29H58S+QkXJpkTr2GACbx8j6mUoGjNPA==", + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.1.tgz", + "integrity": "sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -1731,12 +1731,12 @@ } }, "node_modules/@opentelemetry/instrumentation-dns": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.43.0.tgz", - "integrity": "sha512-bGXTyBpjSYt6B7LEj0zMfWkoveGpYf5pVEgTZmDacsG49RdfdCH5PYt3C8MEMwYEFtu2dGdKdKa2LHfefIIDdg==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.43.1.tgz", + "integrity": "sha512-e/tMZYU1nc+k+J3259CQtqVZIPsPRSLNoAQbGEmSKrjLEY/KJSbpBZ17lu4dFVBzqoF1cZYIZxn9WPQxy4V9ng==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -1746,13 +1746,13 @@ } }, "node_modules/@opentelemetry/instrumentation-document-load": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-document-load/-/instrumentation-document-load-0.44.0.tgz", - "integrity": "sha512-PccD8BSqhevp9E2Y3EUSelnIMPUbBJtWIEfJSChG17yKwDcf3U8zI8uupJMXXlPwZLyDXe/0zeIhPW0BfdHMiA==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-document-load/-/instrumentation-document-load-0.44.1.tgz", + "integrity": "sha512-+Cu5K9TmW1LG0NvHi9SU8hDP4JJZiqWY5w+QHAXiozDmiET+cNjPmpbNOtg7QIuny7vo2nsahrM+JtkZONkv+w==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/sdk-trace-web": "^1.15.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, @@ -1764,13 +1764,13 @@ } }, "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.0.tgz", - "integrity": "sha512-XFWVx6k0XlU8lu6cBlCa29ONtVt6ADEjmxtyAyeF2+rifk8uBJbk1La0yIVfI0DoKURGbaEDTNelaXG9l/lNNQ==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.1.tgz", + "integrity": "sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1781,13 +1781,13 @@ } }, "node_modules/@opentelemetry/instrumentation-fastify": { - "version": "0.44.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.44.1.tgz", - "integrity": "sha512-RoVeMGKcNttNfXMSl6W4fsYoCAYP1vi6ZAWIGhBY+o7R9Y0afA7f9JJL0j8LHbyb0P0QhSYk+6O56OwI2k4iRQ==", + "version": "0.44.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.44.2.tgz", + "integrity": "sha512-arSp97Y4D2NWogoXRb8CzFK3W2ooVdvqRRtQDljFt9uC3zI6OuShgey6CVFC0JxT1iGjkAr1r4PDz23mWrFULQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1836,13 +1836,13 @@ } }, "node_modules/@opentelemetry/instrumentation-fs": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.0.tgz", - "integrity": "sha512-JGwmHhBkRT2G/BYNV1aGI+bBjJu4fJUD/5/Jat0EWZa2ftrLV3YE8z84Fiij/wK32oMZ88eS8DI4ecLGZhpqsQ==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.1.tgz", + "integrity": "sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -1852,12 +1852,12 @@ } }, "node_modules/@opentelemetry/instrumentation-generic-pool": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.0.tgz", - "integrity": "sha512-at8GceTtNxD1NfFKGAuwtqM41ot/TpcLh+YsGe4dhf7gvv1HW/ZWdq6nfRtS6UjIvZJOokViqLPJ3GVtZItAnQ==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.1.tgz", + "integrity": "sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -1867,12 +1867,12 @@ } }, "node_modules/@opentelemetry/instrumentation-graphql": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.0.tgz", - "integrity": "sha512-Cc8SMf+nLqp0fi8oAnooNEfwZWFnzMiBHCGmDFYqmgjPylyLmi83b+NiTns/rKGwlErpW0AGPt0sMpkbNlzn8w==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.1.tgz", + "integrity": "sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -1918,13 +1918,13 @@ } }, "node_modules/@opentelemetry/instrumentation-hapi": { - "version": "0.45.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.1.tgz", - "integrity": "sha512-VH6mU3YqAKTePPfUPwfq4/xr049774qWtfTuJqVHoVspCLiT3bW+fCQ1toZxt6cxRPYASoYaBsMA3CWo8B8rcw==", + "version": "0.45.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.2.tgz", + "integrity": "sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1974,12 +1974,12 @@ } }, "node_modules/@opentelemetry/instrumentation-ioredis": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.0.tgz", - "integrity": "sha512-4HqP9IBC8e7pW9p90P3q4ox0XlbLGme65YTrA3UTLvqvo4Z6b0puqZQP203YFu8m9rE/luLfaG7/xrwwqMUpJw==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.1.tgz", + "integrity": "sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, @@ -1991,12 +1991,12 @@ } }, "node_modules/@opentelemetry/instrumentation-kafkajs": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.0.tgz", - "integrity": "sha512-LB+3xiNzc034zHfCtgs4ITWhq6Xvdo8bsq7amR058jZlf2aXXDrN9SV4si4z2ya9QX4tz6r4eZJwDkXOp14/AQ==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.1.tgz", + "integrity": "sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -2007,12 +2007,12 @@ } }, "node_modules/@opentelemetry/instrumentation-knex": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.0.tgz", - "integrity": "sha512-SlT0+bLA0Lg3VthGje+bSZatlGHw/vwgQywx0R/5u9QC59FddTQSPJeWNw29M6f8ScORMeUOOTwihlQAn4GkJQ==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.1.tgz", + "integrity": "sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -2023,13 +2023,13 @@ } }, "node_modules/@opentelemetry/instrumentation-koa": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.0.tgz", - "integrity": "sha512-HFdvqf2+w8sWOuwtEXayGzdZ2vWpCKEQv5F7+2DSA74Te/Cv4rvb2E5So5/lh+ok4/RAIPuvCbCb/SHQFzMmbw==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.1.tgz", + "integrity": "sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -2040,12 +2040,12 @@ } }, "node_modules/@opentelemetry/instrumentation-lru-memoizer": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.0.tgz", - "integrity": "sha512-Tn7emHAlvYDFik3vGU0mdwvWJDwtITtkJ+5eT2cUquct6nIs+H8M47sqMJkCpyPe5QIBJoTOHxmc6mj9lz6zDw==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.1.tgz", + "integrity": "sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -2055,12 +2055,12 @@ } }, "node_modules/@opentelemetry/instrumentation-memcached": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.43.0.tgz", - "integrity": "sha512-qjldZMBpfxKwI4ODytX6raF1WE+Qov0wTW4+tkofjas1b8e0WmVs+Pw4/YlmjJNOKRLD1usYkP7QlmPLvyzZSA==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.43.1.tgz", + "integrity": "sha512-rK5YWC22gmsLp2aEbaPk5F+9r6BFFZuc9GTnW/ErrWpz2XNHUgeFInoPDg4t+Trs8OttIfn8XwkfFkSKqhxanw==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/memcached": "^2.2.6" }, @@ -2072,12 +2072,12 @@ } }, "node_modules/@opentelemetry/instrumentation-mongodb": { - "version": "0.51.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.51.0.tgz", - "integrity": "sha512-cMKASxCX4aFxesoj3WK8uoQ0YUrRvnfxaO72QWI2xLu5ZtgX/QvdGBlU3Ehdond5eb74c2s1cqRQUIptBnKz1g==", + "version": "0.52.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.52.0.tgz", + "integrity": "sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -2088,13 +2088,13 @@ } }, "node_modules/@opentelemetry/instrumentation-mongoose": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.0.tgz", - "integrity": "sha512-mtVv6UeaaSaWTeZtLo4cx4P5/ING2obSqfWGItIFSunQBrYROfhuVe7wdIrFUs2RH1tn2YYpAJyMaRe/bnTTIQ==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.1.tgz", + "integrity": "sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -2105,12 +2105,12 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.0.tgz", - "integrity": "sha512-tWWyymgwYcTwZ4t8/rLDfPYbOTF3oYB8SxnYMtIQ1zEf5uDm90Ku3i6U/vhaMyfHNlIHvDhvJh+qx5Nc4Z3Acg==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.1.tgz", + "integrity": "sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/mysql": "2.15.26" }, @@ -2122,12 +2122,12 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql2": { - "version": "0.45.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.1.tgz", - "integrity": "sha512-9R/vxEc02vlSqyQSmXRTvFMZVht8vgSJokKhiWA3z8Idu0mmdKFKeHiuW5yRGxM/WOi+7DWqQfYM7zw/cJc3sA==", + "version": "0.45.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.2.tgz", + "integrity": "sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1" }, @@ -2139,12 +2139,12 @@ } }, "node_modules/@opentelemetry/instrumentation-nestjs-core": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.44.0.tgz", - "integrity": "sha512-t16pQ7A4WYu1yyQJZhRKIfUNvl5PAaF2pEteLvgJb/BWdd1oNuU1rOYt4S825kMy+0q4ngiX281Ss9qiwHfxFQ==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.44.1.tgz", + "integrity": "sha512-4TXaqJK27QXoMqrt4+hcQ6rKFd8B6V4JfrTJKnqBmWR1cbaqd/uwyl9yxhNH1JEkyo8GaBfdpBC4ZE4FuUhPmg==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -2155,12 +2155,12 @@ } }, "node_modules/@opentelemetry/instrumentation-net": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.43.0.tgz", - "integrity": "sha512-jFzYpCGg1+s4uePNC86GcdzsYzDZpfVMDsHNZzw5MX6tMWyc2jtiXBFWed41HpWOtkIRU/SJd7KR0k1WjNZRuQ==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.43.1.tgz", + "integrity": "sha512-TaMqP6tVx9/SxlY81dHlSyP5bWJIKq+K7vKfk4naB/LX4LBePPY3++1s0edpzH+RfwN+tEGVW9zTb9ci0up/lQ==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -2171,13 +2171,13 @@ } }, "node_modules/@opentelemetry/instrumentation-pg": { - "version": "0.51.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.51.0.tgz", - "integrity": "sha512-/NStIcUWUofc11dL7tSgMk25NqvhtbHDCncgm+yc4iJF8Ste2Q/lwUitjfxqj4qWM280uFmBEtcmtMMjbjRU7Q==", + "version": "0.51.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.51.1.tgz", + "integrity": "sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1", "@types/pg": "8.6.1", @@ -2191,14 +2191,14 @@ } }, "node_modules/@opentelemetry/instrumentation-pino": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.46.0.tgz", - "integrity": "sha512-TFjW24fwc/5KafDZuXbdViGiTym/6U6tDnOEkM5K9LIKsySMWb8xNIVE7y/6B8zDwImncEssNN1t42NixQJqug==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.46.1.tgz", + "integrity": "sha512-HB8gD/9CNAKlTV+mdZehnFC4tLUtQ7e+729oGq88e4WipxzZxmMYuRwZ2vzOA9/APtq+MRkERJ9PcoDqSIjZ+g==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "^0.57.0", + "@opentelemetry/api-logs": "^0.57.1", "@opentelemetry/core": "^1.25.0", - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -2208,12 +2208,12 @@ } }, "node_modules/@opentelemetry/instrumentation-redis": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.46.0.tgz", - "integrity": "sha512-dXgSf+h+v3Bl4/NYzcSHG0NtqbXz74ph9J1ZBwxTnaB79u+C+ntfqtNt9jklIEAEZ1jR0jRCsVbiZyOpoCpTOg==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.46.1.tgz", + "integrity": "sha512-AN7OvlGlXmlvsgbLHs6dS1bggp6Fcki+GxgYZdSrb/DB692TyfjR7sVILaCe0crnP66aJuXsg9cge3hptHs9UA==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, @@ -2225,12 +2225,12 @@ } }, "node_modules/@opentelemetry/instrumentation-redis-4": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.0.tgz", - "integrity": "sha512-aTUWbzbFMFeRODn3720TZO0tsh/49T8H3h8vVnVKJ+yE36AeW38Uj/8zykQ/9nO8Vrtjr5yKuX3uMiG/W8FKNw==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.1.tgz", + "integrity": "sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, @@ -2242,13 +2242,13 @@ } }, "node_modules/@opentelemetry/instrumentation-restify": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.45.0.tgz", - "integrity": "sha512-CJ5vq14Plh4W4382Jd/jpNEJStqwqbCzZH1Op4EZVPxXhYOwCafgyflOqjxXSzTvqzhaPDT+A079ix5ebQUlYw==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.45.1.tgz", + "integrity": "sha512-Zd6Go9iEa+0zcoA2vDka9r/plYKaT3BhD3ESIy4JNIzFWXeQBGbH3zZxQIsz0jbNTMEtonlymU7eTLeaGWiApA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -2259,12 +2259,12 @@ } }, "node_modules/@opentelemetry/instrumentation-router": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.44.0.tgz", - "integrity": "sha512-rmQZKYcof4M6vQjwtrlfybQo7BSD0mxkXdhfNHWxFjxOFGw9i7EuXSYLnThcVAqNnJ1EljzZiHzaJiq5Ehcb3A==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.44.1.tgz", + "integrity": "sha512-l4T/S7ByjpY5TCUPeDe1GPns02/5BpR0jroSMexyH3ZnXJt9PtYqx1IKAlOjaFEGEOQF2tGDsMi4PY5l+fSniQ==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -2275,12 +2275,12 @@ } }, "node_modules/@opentelemetry/instrumentation-socket.io": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.46.0.tgz", - "integrity": "sha512-BU3XGT63ziF0S9Ky0YevCuMhHUq6U+Wi1g/piJcB16nOqlfd1SW6EACl5LrUe+aNZk2qIXfuS7YV8R+H99+XQQ==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.46.1.tgz", + "integrity": "sha512-9AsCVUAHOqvfe2RM/2I0DsDnx2ihw1d5jIN4+Bly1YPFTJIbk4+bXjAkr9+X6PUfhiV5urQHZkiYYPU1Q4yzPA==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -2291,12 +2291,12 @@ } }, "node_modules/@opentelemetry/instrumentation-tedious": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.0.tgz", - "integrity": "sha512-9zhjDpUDOtD+coeADnYEJQ0IeLVCj7w/hqzIutdp5NqS1VqTAanaEfsEcSypyvYv5DX3YOsTUoF+nr2wDXPETA==", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.1.tgz", + "integrity": "sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/tedious": "^4.0.14" }, @@ -2308,13 +2308,13 @@ } }, "node_modules/@opentelemetry/instrumentation-undici": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.0.tgz", - "integrity": "sha512-vm+V255NGw9gaSsPD6CP0oGo8L55BffBc8KnxqsMuc6XiAD1L8SFNzsW0RHhxJFqy9CJaJh+YiJ5EHXuZ5rZBw==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.1.tgz", + "integrity": "sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -2324,13 +2324,13 @@ } }, "node_modules/@opentelemetry/instrumentation-user-interaction": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-user-interaction/-/instrumentation-user-interaction-0.44.0.tgz", - "integrity": "sha512-GngN5ZKNbbzr4ebdqZHGv2I52+UNSVFKYUvRnnLy8Ei7zPJOzpRkFHhwAfYt8rr+MQgtKs5VB4VrVILr7f/N1w==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-user-interaction/-/instrumentation-user-interaction-0.44.1.tgz", + "integrity": "sha512-1T93GDxNiyq8c010/+E8tSjnnbctaJQIR8TELHRPWwbbJ/Up1+h2LDbC32Ztw/RfZ2vcWZVA16wY5JHoUiEwiQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/sdk-trace-web": "^1.8.0" }, "engines": { @@ -2342,13 +2342,13 @@ } }, "node_modules/@opentelemetry/instrumentation-winston": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.44.0.tgz", - "integrity": "sha512-2uIrdmDIU9qJuHHKXTI3Gef+tNQmKtcwXDA6S0tm+KpKgkMwZB6AC0rNmGNQsxbGJSORj0NJvy5TVvk6jjsaqg==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.44.1.tgz", + "integrity": "sha512-iexblTsT3fP0hHUz/M1mWr+Ylg3bsYN2En/jvKXZtboW3Qkvt17HrQJYTF9leVIkXAfN97QxAcTE99YGbQW7vQ==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "^0.57.0", - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/api-logs": "^0.57.1", + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -2475,9 +2475,9 @@ } }, "node_modules/@opentelemetry/propagation-utils": { - "version": "0.30.15", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.15.tgz", - "integrity": "sha512-nQ30K+eXTkd9Kt8yep9FPrqogS712GvdkV6R1T+xZMSZnFrRCyZuWxMtP3+s3hrK2HWw3ti4lsIfBzsHWYiyrA==", + "version": "0.30.16", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.16.tgz", + "integrity": "sha512-ZVQ3Z/PQ+2GQlrBfbMMMT0U7MzvYZLCPP800+ooyaBqm4hMvuQHfP028gB9/db0mwkmyEAMad9houukUVxhwcw==", "license": "Apache-2.0", "engines": { "node": ">=14" @@ -2526,9 +2526,9 @@ } }, "node_modules/@opentelemetry/resource-detector-alibaba-cloud": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.30.0.tgz", - "integrity": "sha512-CniMuVcJENb7e6ljXC8BuE8xyHKV6kjHjFzAjbeK7BIq2JSPOqfvC+jjhUYnnSGFnDyoZxJCIbt6XIdwPWRPhg==", + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.30.1.tgz", + "integrity": "sha512-9l0FVP3F4+Z6ax27vMzkmhZdNtxAbDqEfy7rduzya3xFLaRiJSvOpw6cru6Edl5LwO+WvgNui+VzHa9ViE8wCg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", @@ -2543,9 +2543,9 @@ } }, "node_modules/@opentelemetry/resource-detector-aws": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.11.0.tgz", - "integrity": "sha512-j7qQ75enAJrlSPkPowasScuukZ2ffFG659rhxOpUM4dBe/O8Jpq+dy4pIdFtjWKkM9i7LgisdUt/GW7wGIWoEQ==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.12.0.tgz", + "integrity": "sha512-Cvi7ckOqiiuWlHBdA1IjS0ufr3sltex2Uws2RK6loVp4gzIJyOijsddAI6IZ5kiO8h/LgCWe8gxPmwkTKImd+Q==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", @@ -2560,9 +2560,9 @@ } }, "node_modules/@opentelemetry/resource-detector-azure": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.6.0.tgz", - "integrity": "sha512-cQbR/x9IhCYk47GWt4uC1G5yQN8JJ02Ec8uT38fj7uIXRbAARulwGr7Ax0dUo0eAtXEKQ+fXdzkLR1Am8cw4mg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.6.1.tgz", + "integrity": "sha512-Djr31QCExVfWViaf9cGJnH+bUInD72p0GEfgDGgjCAztyvyji6WJvKjs6qmkpPN+Ig6KLk0ho2VgzT5Kdl4L2Q==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.25.1", @@ -2577,9 +2577,9 @@ } }, "node_modules/@opentelemetry/resource-detector-container": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.6.0.tgz", - "integrity": "sha512-HxOzOsGlIjAbnTjwRBWQOsjrQIZ4NnQaaBc6noO8fW0v9ahyRxzwDFVr/3X1kSYLnpr2RGeWmMGDX6VcHECsLA==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.6.1.tgz", + "integrity": "sha512-o4sLzx149DQXDmVa8pgjBDEEKOj9SuQnkSLbjUVOpQNnn10v0WNR6wLwh30mFsK26xOJ6SpqZBGKZiT7i5MjlA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", @@ -2594,9 +2594,9 @@ } }, "node_modules/@opentelemetry/resource-detector-gcp": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.33.0.tgz", - "integrity": "sha512-y368hq2UM6j42Py7xlR4rTfl+wC4CdGNGT38nqW+6BwGTQso0NC/GeifcwqorEKs/JWU9azA6XNDyUBNEjFpGA==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.33.1.tgz", + "integrity": "sha512-/aZJXI1rU6Eus04ih2vU0hxXAibXXMzH1WlDZ8bXcTJmhwmTY8cP392+6l7cWeMnTQOibBUz8UKV3nhcCBAefw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", @@ -2966,9 +2966,9 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.66.4", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.4.tgz", - "integrity": "sha512-zLlb9Ij7msRazeJP1LUu+tkrxWnUujYanUbY0c2lFoXhRwXvRt6SIwCuwCAmYgMeEuvIlv9/zIQb7bhhGR0jhw==", + "version": "5.66.9", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.9.tgz", + "integrity": "sha512-NRI02PHJsP5y2gAuWKP+awamTIBFBSKMnO6UVzi03GTclmHHHInH5UzVgzi5tpu4+FmGfsdT7Umqegobtsp23A==", "license": "MIT", "dependencies": { "@tanstack/query-core": "5.66.4" @@ -2982,24 +2982,24 @@ } }, "node_modules/@types/aws-lambda": { - "version": "8.10.143", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.143.tgz", - "integrity": "sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==", + "version": "8.10.147", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.147.tgz", + "integrity": "sha512-nD0Z9fNIZcxYX5Mai2CTmFD7wX7UldCkW2ezCF8D1T5hdiLsnTWDGRpfRYntU6VjTdLQjOvyszru7I1c1oCQew==", "license": "MIT" }, "node_modules/@types/bunyan": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.9.tgz", - "integrity": "sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==", + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.11.tgz", + "integrity": "sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==", "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", - "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -7840,9 +7840,9 @@ } }, "node_modules/pg-protocol": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz", - "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.1.tgz", + "integrity": "sha512-gjTHWGYWsEgy9MsY0Gp6ZJxV24IjDqdpTW7Eh0x+WfJLFsm/TJx1MzL6T0D88mBvkpxotCQ6TwW6N+Kko7lhgQ==", "license": "MIT" }, "node_modules/pg-types": { @@ -9410,9 +9410,9 @@ "license": "MIT" }, "node_modules/uuid": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", - "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" diff --git a/src/frontend/package.json b/src/frontend/package.json index 10b72e35d5..ee5387ff59 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -17,25 +17,25 @@ "@openfeature/flagd-web-provider": "0.7.2", "@openfeature/react-sdk": "0.4.11", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.56.0", - "@opentelemetry/auto-instrumentations-web": "0.45.0", + "@opentelemetry/auto-instrumentations-node": "0.56.1", + "@opentelemetry/auto-instrumentations-web": "0.45.1", "@opentelemetry/context-zone": "1.30.1", "@opentelemetry/core": "1.30.1", "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.2", "@opentelemetry/exporter-trace-otlp-grpc": "0.57.2", "@opentelemetry/exporter-trace-otlp-http": "0.57.2", "@opentelemetry/instrumentation": "0.57.2", - "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", - "@opentelemetry/resource-detector-aws": "1.11.0", - "@opentelemetry/resource-detector-container": "0.6.0", - "@opentelemetry/resource-detector-gcp": "0.33.0", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.1", + "@opentelemetry/resource-detector-aws": "1.12.0", + "@opentelemetry/resource-detector-container": "0.6.1", + "@opentelemetry/resource-detector-gcp": "0.33.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-node": "0.57.2", "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.66.4", + "@tanstack/react-query": "5.66.9", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", @@ -45,7 +45,7 @@ "react-dom": "19.0.0", "sharp": "0.33.5", "styled-components": "6.1.15", - "uuid": "11.0.5" + "uuid": "11.1.0" }, "devDependencies": { "@types/node": "22.13.4", From b18c0a2acb4d664dc8540f1d4869546fd1016d37 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 24 Feb 2025 01:22:49 -0500 Subject: [PATCH 142/178] [chore] post 2.0.0 release (#2071) --- CHANGELOG.md | 2 + kubernetes/opentelemetry-demo.yaml | 2237 ++++++++++++++++++---------- 2 files changed, 1461 insertions(+), 778 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2969620fbf..43d6c9168b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ the release. ## Unreleased +## 2.0.0 + * [grafana] Update grafana to 11.3.0 ([#1764](https://github.com/open-telemetry/opentelemetry-demo/pull/1764)) * [chore] Move build args to .env file diff --git a/kubernetes/opentelemetry-demo.yaml b/kubernetes/opentelemetry-demo.yaml index d236ca4066..52bfc17bae 100644 --- a/kubernetes/opentelemetry-demo.yaml +++ b/kubernetes/opentelemetry-demo.yaml @@ -11,12 +11,12 @@ metadata: apiVersion: policy/v1 kind: PodDisruptionBudget metadata: - name: "otel-demo-opensearch-pdb" + name: "opensearch-pdb" labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.18.0" - app.kubernetes.io/component: otel-demo-opensearch + app.kubernetes.io/version: "2.19.0" + app.kubernetes.io/component: opensearch spec: maxUnavailable: 1 selector: @@ -32,15 +32,15 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.1" - name: opentelemetry-demo-grafana + app.kubernetes.io/version: "11.5.1" + name: grafana namespace: otel-demo --- # Source: opentelemetry-demo/charts/jaeger/templates/allinone-sa.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: opentelemetry-demo-jaeger + name: jaeger labels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo @@ -52,12 +52,12 @@ automountServiceAccountToken: true apiVersion: v1 kind: ServiceAccount metadata: - name: opentelemetry-demo-otelcol + name: otel-collector namespace: otel-demo labels: - app.kubernetes.io/name: otelcol + app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/version: "0.119.0" app.kubernetes.io/component: standalone-collector --- # Source: opentelemetry-demo/charts/prometheus/templates/serviceaccount.yaml @@ -68,9 +68,9 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v3.0.0 + app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus - name: opentelemetry-demo-prometheus-server + name: prometheus namespace: otel-demo annotations: {} @@ -82,22 +82,20 @@ metadata: name: opentelemetry-demo labels: - opentelemetry.io/name: opentelemetry-demo app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/name: opentelemetry-demo - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo --- # Source: opentelemetry-demo/charts/grafana/templates/secret.yaml apiVersion: v1 kind: Secret metadata: - name: opentelemetry-demo-grafana + name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.1" + app.kubernetes.io/version: "11.5.1" type: Opaque data: @@ -109,12 +107,12 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: opentelemetry-demo-grafana + name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.1" + app.kubernetes.io/version: "11.5.1" data: plugins: grafana-opensearch-datasource @@ -155,13 +153,13 @@ data: name: Prometheus type: prometheus uid: webstore-metrics - url: http://opentelemetry-demo-prometheus-server:9090 + url: http://prometheus:9090 - editable: true isDefault: false name: Jaeger type: jaeger uid: webstore-traces - url: http://opentelemetry-demo-jaeger-query:16686/jaeger/ui + url: http://jaeger-query:16686/jaeger/ui - access: proxy editable: true isDefault: false @@ -175,7 +173,7 @@ data: version: 2.18.0 name: OpenSearch type: grafana-opensearch-datasource - url: http://otel-demo-opensearch:9200/ + url: http://opensearch:9200/ dashboardproviders.yaml: | apiVersion: 1 providers: @@ -192,12 +190,12 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: otel-demo-opensearch-config + name: opensearch-config labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.18.0" - app.kubernetes.io/component: otel-demo-opensearch + app.kubernetes.io/version: "2.19.0" + app.kubernetes.io/component: opensearch data: opensearch.yml: | cluster.name: opensearch-cluster @@ -255,12 +253,12 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: opentelemetry-demo-otelcol + name: otel-collector namespace: otel-demo labels: - app.kubernetes.io/name: otelcol + app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/version: "0.119.0" app.kubernetes.io/component: standalone-collector data: relay: | @@ -270,16 +268,16 @@ data: debug: {} opensearch: http: - endpoint: http://otel-demo-opensearch:9200 + endpoint: http://opensearch:9200 tls: insecure: true logs_index: otel otlp: - endpoint: 'opentelemetry-demo-jaeger-collector:4317' + endpoint: jaeger-collector:4317 tls: insecure: true otlphttp/prometheus: - endpoint: http://opentelemetry-demo-prometheus-server:9090/api/v1/otlp + endpoint: http://prometheus:9090/api/v1/otlp tls: insecure: true extensions: @@ -327,9 +325,9 @@ data: - replace_pattern(name, "\\?.*", "") - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") receivers: - httpcheck/frontendproxy: + httpcheck/frontend-proxy: targets: - - endpoint: http://opentelemetry-demo-frontendproxy:8080 + - endpoint: http://frontend-proxy:8080 jaeger: protocols: grpc: @@ -386,7 +384,7 @@ data: - resource - batch receivers: - - httpcheck/frontendproxy + - httpcheck/frontend-proxy - redis - otlp - spanmetrics @@ -417,9 +415,9 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v3.0.0 + app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus - name: opentelemetry-demo-prometheus-server + name: prometheus namespace: otel-demo data: allow-snippet-annotations: "false" @@ -461,14 +459,12 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: opentelemetry-demo-flagd-config + name: flagd-config namespace: otel-demo labels: - opentelemetry.io/name: opentelemetry-demo app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/name: opentelemetry-demo - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo data: @@ -485,7 +481,7 @@ data: }, "defaultVariant": "off" }, - "recommendationServiceCacheFailure": { + "recommendationCacheFailure": { "description": "Fail recommendation service cache", "state": "ENABLED", "variants": { @@ -494,7 +490,7 @@ data: }, "defaultVariant": "off" }, - "adServiceManualGc": { + "adManualGc": { "description": "Triggers full manual garbage collections in the ad service", "state": "ENABLED", "variants": { @@ -503,7 +499,7 @@ data: }, "defaultVariant": "off" }, - "adServiceHighCpu": { + "adHighCpu": { "description": "Triggers high cpu load in the ad service", "state": "ENABLED", "variants": { @@ -512,7 +508,7 @@ data: }, "defaultVariant": "off" }, - "adServiceFailure": { + "adFailure": { "description": "Fail ad service", "state": "ENABLED", "variants": { @@ -530,7 +526,7 @@ data: }, "defaultVariant": "off" }, - "cartServiceFailure": { + "cartFailure": { "description": "Fail cart service", "state": "ENABLED", "variants": { @@ -539,16 +535,21 @@ data: }, "defaultVariant": "off" }, - "paymentServiceFailure": { - "description": "Fail payment service charge requests", + "paymentFailure": { + "description": "Fail payment service charge requests n%", "state": "ENABLED", "variants": { - "on": true, - "off": false + "100%": 1, + "90%": 0.95, + "75%": 0.75, + "50%": 0.5, + "25%": 0.25, + "10%": 0.1, + "off": 0 }, "defaultVariant": "off" }, - "paymentServiceUnreachable": { + "paymentUnreachable": { "description": "Payment service is unavailable", "state": "ENABLED", "variants": { @@ -557,7 +558,7 @@ data: }, "defaultVariant": "off" }, - "loadgeneratorFloodHomepage": { + "loadGeneratorFloodHomepage": { "description": "Flood the frontend with a large amount of requests.", "state": "ENABLED", "variants": { @@ -583,14 +584,12 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: opentelemetry-demo-grafana-dashboards + name: grafana-dashboards namespace: otel-demo labels: - opentelemetry.io/name: opentelemetry-demo app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/name: opentelemetry-demo - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo data: @@ -621,16 +620,41 @@ data: "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 2, + "id": 4, "links": [], "panels": [ + { + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 21, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "This dashboard shows RED metrics for the selected service, as generated by the spanmetrics connector in the OpenTelemetry Collector.\nIf the selected service emits logs, the logs will also be displayed.\nCustom metrics generated by some services are also displayed.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "mode": "html" + }, + "pluginVersion": "11.4.0", + "title": "", + "type": "text" + }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 0 + "y": 2 }, "id": 14, "panels": [], @@ -703,7 +727,7 @@ data: "h": 8, "w": 12, "x": 0, - "y": 1 + "y": 3 }, "id": 2, "interval": "2m", @@ -719,7 +743,7 @@ data: "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -841,7 +865,7 @@ data: "h": 8, "w": 12, "x": 12, - "y": 1 + "y": 3 }, "id": 10, "interval": "2m", @@ -857,7 +881,7 @@ data: "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -940,7 +964,7 @@ data: "h": 8, "w": 12, "x": 0, - "y": 9 + "y": 11 }, "id": 12, "interval": "2m", @@ -956,7 +980,7 @@ data: "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -979,7 +1003,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 17 + "y": 19 }, "id": 19, "panels": [], @@ -1038,7 +1062,7 @@ data: "h": 8, "w": 4, "x": 0, - "y": 18 + "y": 20 }, "id": 20, "options": { @@ -1053,7 +1077,7 @@ data: }, "showHeader": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "alias": "", @@ -1138,7 +1162,7 @@ data: "h": 8, "w": 20, "x": 4, - "y": 18 + "y": 20 }, "id": 17, "options": { @@ -1159,7 +1183,7 @@ data: } ] }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "alias": "", @@ -1200,7 +1224,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 26 + "y": 28 }, "id": 18, "panels": [], @@ -1255,8 +1279,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1272,7 +1295,7 @@ data: "h": 8, "w": 12, "x": 0, - "y": 27 + "y": 29 }, "id": 6, "options": { @@ -1376,8 +1399,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1393,7 +1415,7 @@ data: "h": 8, "w": 12, "x": 12, - "y": 27 + "y": 29 }, "id": 8, "options": { @@ -1482,8 +1504,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1498,7 +1519,7 @@ data: "h": 8, "w": 12, "x": 0, - "y": 35 + "y": 37 }, "id": 4, "options": { @@ -1579,8 +1600,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1595,7 +1615,7 @@ data: "h": 8, "w": 12, "x": 12, - "y": 35 + "y": 37 }, "id": 16, "interval": "2m", @@ -1619,56 +1639,516 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "rate(otel_trace_span_processor_spans{job=\"opentelemetry-demo/quoteservice\"}[2m])*120", + "expr": "rate(otel_trace_span_processor_spans{job=\"quote\"}[2m])*120", "interval": "2m", "legendFormat": "{{state}}", "range": true, - "refId": "A" + "refId": "A" + } + ], + "title": "Quote Service batch span processor", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "", + "schemaVersion": 40, + "tags": [], + "templating": { + "list": [ + { + "current": { + "text": "frontend", + "value": "frontend" + }, + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "definition": "traces_span_metrics_duration_milliseconds_bucket", + "includeAll": false, + "name": "service", + "options": [], + "query": { + "query": "traces_span_metrics_duration_milliseconds_bucket", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "/.*service_name=\\\"([^\\\"]+)\\\".*/", + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Demo Dashboard", + "uid": "W2gX2zHVk", + "version": 2, + "weekStart": "" + } + exemplars-dashboard.json: | + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 5, + "links": [], + "panels": [ + { + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 8, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "This dashboard shows the use of metric exemplars.\nExemplars can be used to look up a trace in Jaeger.\nOnly the most recent exemplars may still be available in Jaeger.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "mode": "html" + }, + "pluginVersion": "11.4.0", + "title": "", + "type": "text" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 2 + }, + "id": 4, + "panels": [], + "title": "GetCart Exemplars", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + } + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 3 + }, + "id": 2, + "interval": "2m", + "options": { + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": false, + "scale": "exponential", + "scheme": "Spectral", + "steps": 64 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false + } + }, + "pluginVersion": "11.4.0", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": true, + "expr": "sum by(le) (rate(app_cart_get_cart_latency_bucket[$__rate_interval]))", + "format": "heatmap", + "fullMetaSearch": false, + "includeNullMetadata": false, + "instant": true, + "legendFormat": "{{le}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "GetCart Latency Heatmap with Exemplars", + "type": "heatmap" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 5, + "interval": "2m", + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": true, + "expr": "histogram_quantile(0.95, sum by(le) (rate(app_cart_get_cart_latency_bucket[$__rate_interval])))", + "fullMetaSearch": false, + "includeNullMetadata": false, + "legendFormat": "p95 GetCart", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "95th Pct Cart GetCart Latency with Exemplars", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 22 + }, + "id": 3, + "panels": [], + "title": "AddItem Exemplars", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + } + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 23 + }, + "id": 6, + "interval": "2m", + "options": { + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": false, + "scale": "exponential", + "scheme": "Spectral", + "steps": 64 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false + } + }, + "pluginVersion": "11.4.0", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": true, + "expr": "sum by(le) (rate(app_cart_add_item_latency_bucket[$__rate_interval]))", + "format": "heatmap", + "fullMetaSearch": false, + "includeNullMetadata": false, + "instant": true, + "legendFormat": "{{le}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "AddItem Latency Heatmap with Exemplars", + "type": "heatmap" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 32 + }, + "id": 1, + "interval": "2m", + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": true, + "expr": "histogram_quantile(0.95, sum by(le) (rate(app_cart_add_item_latency_bucket[$__rate_interval])))", + "fullMetaSearch": false, + "includeNullMetadata": false, + "legendFormat": "p95 AddItem", + "range": true, + "refId": "A", + "useBackend": false } ], - "title": "Quote Service batch span processor", + "title": "95th Pct Cart AddItem Latency with Exemplars", "type": "timeseries" } ], "preload": false, - "refresh": "", "schemaVersion": 40, "tags": [], "templating": { - "list": [ - { - "current": { - "text": "frontend", - "value": "frontend" - }, - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "definition": "traces_span_metrics_duration_milliseconds_bucket", - "includeAll": false, - "name": "service", - "options": [], - "query": { - "query": "traces_span_metrics_duration_milliseconds_bucket", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "/.*service_name=\\\"([^\\\"]+)\\\".*/", - "sort": 1, - "type": "query" - } - ] + "list": [] }, "time": { "from": "now-1h", "to": "now" }, "timepicker": {}, - "timezone": "", - "title": "Demo Dashboard", - "uid": "W2gX2zHVk", - "version": 1, + "timezone": "browser", + "title": "Cart Service Exemplars", + "uid": "ce6sd46kfkglca", + "version": 3, "weekStart": "" } opentelemetry-collector-data-flow.json: | @@ -1699,16 +2179,41 @@ data: "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 3, + "id": 6, "links": [], "panels": [ + { + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 56, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "This dashboard is used to understand the data flows for the OpenTelemetry Collector's metrics and traces pipelines.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "mode": "html" + }, + "pluginVersion": "11.4.0", + "title": "", + "type": "text" + }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 0 + "y": 2 }, "id": 8, "panels": [], @@ -1747,7 +2252,7 @@ data: "h": 4, "w": 3, "x": 0, - "y": 1 + "y": 3 }, "id": 6, "options": { @@ -1767,7 +2272,7 @@ data: "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -1817,7 +2322,7 @@ data: "h": 4, "w": 3, "x": 3, - "y": 1 + "y": 3 }, "id": 24, "options": { @@ -1835,7 +2340,7 @@ data: "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -1885,7 +2390,7 @@ data: "h": 4, "w": 3, "x": 6, - "y": 1 + "y": 3 }, "id": 38, "options": { @@ -1903,7 +2408,7 @@ data: "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -1930,7 +2435,7 @@ data: "h": 4, "w": 15, "x": 9, - "y": 1 + "y": 3 }, "id": 32, "options": { @@ -1942,7 +2447,7 @@ data: "content": "## Opentelemetry Collector Data Ingress/Egress\n\n`service_version:` ${service_version}\n\n`opentelemetry collector:` contrib\n\n", "mode": "markdown" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "title": "", "type": "text" }, @@ -1952,7 +2457,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 5 + "y": 7 }, "id": 10, "panels": [], @@ -2009,7 +2514,7 @@ data: "h": 19, "w": 3, "x": 0, - "y": 6 + "y": 8 }, "id": 55, "options": { @@ -2027,7 +2532,7 @@ data: "showThresholdMarkers": false, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -2086,7 +2591,7 @@ data: "h": 11, "w": 21, "x": 3, - "y": 6 + "y": 8 }, "id": 4, "options": { @@ -2095,7 +2600,7 @@ data: "mainStatUnit": "flops" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -2160,7 +2665,7 @@ data: "h": 5, "w": 5, "x": 3, - "y": 17 + "y": 19 }, "id": 12, "options": { @@ -2180,7 +2685,7 @@ data: "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -2225,7 +2730,7 @@ data: "h": 5, "w": 3, "x": 8, - "y": 17 + "y": 19 }, "id": 13, "options": { @@ -2243,7 +2748,7 @@ data: "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -2293,7 +2798,7 @@ data: "h": 5, "w": 5, "x": 11, - "y": 17 + "y": 19 }, "id": 15, "options": { @@ -2314,7 +2819,7 @@ data: "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -2358,7 +2863,7 @@ data: "h": 5, "w": 3, "x": 16, - "y": 17 + "y": 19 }, "id": 14, "options": { @@ -2376,7 +2881,7 @@ data: "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -2425,7 +2930,7 @@ data: "h": 5, "w": 5, "x": 19, - "y": 17 + "y": 19 }, "id": 30, "options": { @@ -2445,7 +2950,7 @@ data: "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -2494,7 +2999,7 @@ data: "h": 3, "w": 5, "x": 3, - "y": 22 + "y": 24 }, "id": 17, "options": { @@ -2514,7 +3019,7 @@ data: "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -2559,7 +3064,7 @@ data: "h": 3, "w": 3, "x": 8, - "y": 22 + "y": 24 }, "id": 18, "options": { @@ -2577,7 +3082,7 @@ data: "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -2622,7 +3127,7 @@ data: "h": 3, "w": 3, "x": 16, - "y": 22 + "y": 24 }, "id": 19, "options": { @@ -2640,7 +3145,7 @@ data: "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -2689,7 +3194,7 @@ data: "h": 3, "w": 5, "x": 19, - "y": 22 + "y": 24 }, "id": 20, "options": { @@ -2709,7 +3214,7 @@ data: "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -2735,7 +3240,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 25 + "y": 27 }, "id": 22, "panels": [], @@ -2759,8 +3264,7 @@ data: "mode": "absolute", "steps": [ { - "color": "light-blue", - "value": null + "color": "light-blue" }, { "color": "semi-dark-red", @@ -2792,7 +3296,7 @@ data: "h": 19, "w": 3, "x": 0, - "y": 26 + "y": 28 }, "id": 54, "options": { @@ -2906,7 +3410,7 @@ data: "h": 11, "w": 21, "x": 3, - "y": 26 + "y": 28 }, "id": 25, "options": { @@ -2967,8 +3471,7 @@ data: "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] }, @@ -2980,7 +3483,7 @@ data: "h": 5, "w": 5, "x": 3, - "y": 37 + "y": 39 }, "id": 26, "options": { @@ -3033,8 +3536,7 @@ data: "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] } @@ -3045,7 +3547,7 @@ data: "h": 5, "w": 3, "x": 8, - "y": 37 + "y": 39 }, "id": 27, "options": { @@ -3095,8 +3597,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "#EAB839", @@ -3112,7 +3613,7 @@ data: "h": 5, "w": 5, "x": 11, - "y": 37 + "y": 39 }, "id": 28, "options": { @@ -3166,8 +3667,7 @@ data: "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] } @@ -3178,7 +3678,7 @@ data: "h": 5, "w": 3, "x": 16, - "y": 37 + "y": 39 }, "id": 29, "options": { @@ -3232,8 +3732,7 @@ data: "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] }, @@ -3245,7 +3744,7 @@ data: "h": 5, "w": 5, "x": 19, - "y": 37 + "y": 39 }, "id": 16, "options": { @@ -3301,8 +3800,7 @@ data: "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] }, @@ -3314,7 +3812,7 @@ data: "h": 3, "w": 5, "x": 3, - "y": 42 + "y": 44 }, "id": 47, "options": { @@ -3367,8 +3865,7 @@ data: "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] } @@ -3379,7 +3876,7 @@ data: "h": 3, "w": 3, "x": 8, - "y": 42 + "y": 44 }, "id": 48, "options": { @@ -3430,8 +3927,7 @@ data: "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] } @@ -3442,7 +3938,7 @@ data: "h": 3, "w": 3, "x": 16, - "y": 42 + "y": 44 }, "id": 49, "options": { @@ -3496,8 +3992,7 @@ data: "mode": "absolute", "steps": [ { - "color": "text", - "value": null + "color": "text" } ] }, @@ -3509,7 +4004,7 @@ data: "h": 3, "w": 5, "x": 19, - "y": 42 + "y": 44 }, "id": 50, "options": { @@ -3555,7 +4050,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 45 + "y": 47 }, "id": 35, "panels": [], @@ -3579,8 +4074,7 @@ data: "mode": "absolute", "steps": [ { - "color": "light-blue", - "value": null + "color": "light-blue" }, { "color": "semi-dark-red", @@ -3612,7 +4106,7 @@ data: "h": 9, "w": 3, "x": 0, - "y": 46 + "y": 48 }, "id": 53, "options": { @@ -3711,8 +4205,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -3727,7 +4220,7 @@ data: "h": 9, "w": 5, "x": 3, - "y": 46 + "y": 48 }, "id": 37, "options": { @@ -3783,8 +4276,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -3799,7 +4291,7 @@ data: "h": 9, "w": 3, "x": 8, - "y": 46 + "y": 48 }, "id": 42, "options": { @@ -3866,7 +4358,7 @@ data: "h": 9, "w": 8, "x": 11, - "y": 46 + "y": 48 }, "id": 41, "options": { @@ -3931,7 +4423,7 @@ data: "h": 9, "w": 5, "x": 19, - "y": 46 + "y": 48 }, "id": 52, "options": { @@ -3989,7 +4481,7 @@ data: "timezone": "", "title": "Opentelemetry Collector Data Flow", "uid": "rl5_tea4k", - "version": 1, + "version": 2, "weekStart": "" } opentelemetry-collector.json: | @@ -4020,16 +4512,41 @@ data: "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, - "id": 4, + "id": 2, "links": [], "panels": [ + { + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 62, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "This dashboard uses the metrics generated by the OpenTelemetry Collector.\nIt is used to understand the overall performance and health of the OpenTelemetry Collector.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "mode": "markdown" + }, + "pluginVersion": "11.4.0", + "title": "", + "type": "text" + }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 0 + "y": 2 }, "id": 23, "panels": [], @@ -4120,7 +4637,7 @@ data: "h": 8, "w": 8, "x": 0, - "y": 1 + "y": 3 }, "id": 28, "interval": "$minstep", @@ -4140,7 +4657,7 @@ data: "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -4261,7 +4778,7 @@ data: "h": 8, "w": 8, "x": 8, - "y": 1 + "y": 3 }, "id": 32, "interval": "$minstep", @@ -4281,7 +4798,7 @@ data: "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -4402,7 +4919,7 @@ data: "h": 8, "w": 8, "x": 16, - "y": 1 + "y": 3 }, "id": 47, "interval": "$minstep", @@ -4422,7 +4939,7 @@ data: "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -4465,7 +4982,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 9 + "y": 11 }, "id": 34, "panels": [], @@ -4571,7 +5088,7 @@ data: "h": 8, "w": 8, "x": 0, - "y": 10 + "y": 12 }, "id": 36, "interval": "$minstep", @@ -4591,7 +5108,7 @@ data: "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -4655,7 +5172,7 @@ data: "h": 8, "w": 8, "x": 8, - "y": 10 + "y": 12 }, "id": 49, "interval": "$minstep", @@ -4694,7 +5211,7 @@ data: "reverse": false } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -4815,7 +5332,7 @@ data: "h": 8, "w": 8, "x": 16, - "y": 10 + "y": 12 }, "id": 56, "interval": "$minstep", @@ -4835,7 +5352,7 @@ data: "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -4879,7 +5396,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 18 + "y": 20 }, "id": 25, "panels": [], @@ -4970,7 +5487,7 @@ data: "h": 9, "w": 8, "x": 0, - "y": 19 + "y": 21 }, "id": 37, "interval": "$minstep", @@ -4990,7 +5507,7 @@ data: "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -5127,7 +5644,7 @@ data: "h": 9, "w": 8, "x": 8, - "y": 19 + "y": 21 }, "id": 38, "interval": "$minstep", @@ -5147,7 +5664,7 @@ data: "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -5284,7 +5801,7 @@ data: "h": 9, "w": 8, "x": 16, - "y": 19 + "y": 21 }, "id": 48, "interval": "$minstep", @@ -5304,7 +5821,7 @@ data: "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -5407,8 +5924,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -5424,7 +5940,7 @@ data: "h": 9, "w": 12, "x": 0, - "y": 28 + "y": 30 }, "id": 10, "options": { @@ -5514,8 +6030,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -5531,7 +6046,7 @@ data: "h": 9, "w": 12, "x": 12, - "y": 28 + "y": 30 }, "id": 55, "options": { @@ -5577,7 +6092,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 37 + "y": 39 }, "id": 21, "panels": [], @@ -5635,8 +6150,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -5722,7 +6236,7 @@ data: "h": 9, "w": 8, "x": 0, - "y": 38 + "y": 40 }, "id": 40, "interval": "$minstep", @@ -5846,8 +6360,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -5933,7 +6446,7 @@ data: "h": 9, "w": 8, "x": 8, - "y": 38 + "y": 40 }, "id": 52, "interval": "$minstep", @@ -6057,8 +6570,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -6144,7 +6656,7 @@ data: "h": 9, "w": 8, "x": 16, - "y": 38 + "y": 40 }, "id": 53, "interval": "$minstep", @@ -6268,8 +6780,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -6351,7 +6862,7 @@ data: "h": 9, "w": 8, "x": 0, - "y": 47 + "y": 49 }, "id": 39, "interval": "$minstep", @@ -6476,8 +6987,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -6493,7 +7003,7 @@ data: "h": 9, "w": 8, "x": 8, - "y": 47 + "y": 49 }, "id": 41, "interval": "$minstep", @@ -6586,8 +7096,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -6603,7 +7112,7 @@ data: "h": 9, "w": 8, "x": 16, - "y": 47 + "y": 49 }, "id": 54, "interval": "$minstep", @@ -6670,8 +7179,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -6687,7 +7195,7 @@ data: "h": 5, "w": 24, "x": 0, - "y": 56 + "y": 58 }, "id": 57, "interval": "$minstep", @@ -6745,7 +7253,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 61 + "y": 63 }, "id": 59, "panels": [], @@ -6766,7 +7274,7 @@ data: "h": 9, "w": 8, "x": 0, - "y": 62 + "y": 64 }, "id": 58, "options": { @@ -6848,7 +7356,7 @@ data: "h": 9, "w": 8, "x": 8, - "y": 62 + "y": 64 }, "id": 60, "options": { @@ -6930,7 +7438,7 @@ data: "h": 9, "w": 8, "x": 16, - "y": 62 + "y": 64 }, "id": 61, "options": { @@ -7007,7 +7515,7 @@ data: "h": 3, "w": 24, "x": 0, - "y": 71 + "y": 73 }, "id": 45, "options": { @@ -7050,13 +7558,13 @@ data: "type": "prometheus", "uid": "$datasource" }, - "definition": "label_values(otelcol_process_uptime, job)", + "definition": "label_values(otelcol_process_uptime_total,job)", "includeAll": false, "label": "Job", "name": "job", "options": [], "query": { - "query": "label_values(otelcol_process_uptime, job)", + "query": "label_values(otelcol_process_uptime_total,job)", "refId": "StandardVariableQuery" }, "refresh": 1, @@ -7229,7 +7737,7 @@ data: "timezone": "utc", "title": "OpenTelemetry Collector", "uid": "BKf2sowmj", - "version": 10, + "version": 2, "weekStart": "" } spanmetrics-dashboard.json: | @@ -7260,16 +7768,41 @@ data: "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 5, + "id": 3, "links": [], "panels": [ + { + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 26, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "This dashboard uses RED metrics generated for all services by the spanmetrics connector configured in the OpenTelemetry Collector.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "mode": "html" + }, + "pluginVersion": "11.4.0", + "title": "", + "type": "text" + }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 0 + "y": 2 }, "id": 24, "panels": [], @@ -7320,7 +7853,7 @@ data: "h": 20, "w": 12, "x": 0, - "y": 1 + "y": 3 }, "id": 2, "interval": "5m", @@ -7339,7 +7872,7 @@ data: "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -7445,7 +7978,7 @@ data: "h": 13, "w": 12, "x": 12, - "y": 1 + "y": 3 }, "id": 4, "interval": "5m", @@ -7474,7 +8007,7 @@ data: "text": {}, "valueMode": "color" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -7532,7 +8065,7 @@ data: "h": 7, "w": 12, "x": 12, - "y": 14 + "y": 16 }, "id": 15, "interval": "5m", @@ -7561,7 +8094,7 @@ data: "text": {}, "valueMode": "color" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -7587,7 +8120,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 21 + "y": 23 }, "id": 14, "panels": [], @@ -7713,7 +8246,7 @@ data: "h": 11, "w": 24, "x": 0, - "y": 22 + "y": 24 }, "id": 22, "interval": "5m", @@ -7730,7 +8263,7 @@ data: "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.4.0", "targets": [ { "datasource": { @@ -7856,7 +8389,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 33 + "y": 35 }, "id": 20, "panels": [], @@ -7878,8 +8411,7 @@ data: "mode": "absolute", "steps": [ { - "color": "blue", - "value": null + "color": "blue" }, { "color": "green", @@ -7907,7 +8439,7 @@ data: "h": 13, "w": 12, "x": 0, - "y": 34 + "y": 36 }, "id": 25, "interval": "5m", @@ -8007,8 +8539,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -8024,7 +8555,7 @@ data: "h": 13, "w": 12, "x": 12, - "y": 34 + "y": 36 }, "id": 10, "interval": "5m", @@ -8061,7 +8592,7 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "topk(7, sum by (span_name,service_name)(increase(duration_milliseconds_sum{service_name=~\"${service}\", span_name=~\"$span_name\"}[5m]) / increase(traces_span_metrics_duration_milliseconds_count{service_name=~\"${service}\",span_name=~\"$span_name\"}[5m\n])))", + "expr": "topk(7, sum by (span_name,service_name)(increase(traces_span_metrics_duration_milliseconds_sum{service_name=~\"${service}\", span_name=~\"$span_name\"}[5m]) / increase(traces_span_metrics_duration_milliseconds_count{service_name=~\"${service}\",span_name=~\"$span_name\"}[5m\n])))", "instant": true, "interval": "", "legendFormat": "{{span_name}} [{{service_name}}]", @@ -8120,8 +8651,7 @@ data: "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -8137,7 +8667,7 @@ data: "h": 12, "w": 24, "x": 0, - "y": 47 + "y": 49 }, "id": 16, "interval": "5m", @@ -8242,10 +8772,149 @@ data: "timezone": "", "title": "Spanmetrics Demo Dashboard", "uid": "W2gX2zHVk48", - "version": 1, + "version": 2, "weekStart": "" } --- +# Source: opentelemetry-demo/templates/product-catalog-products.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: product-catalog-products + namespace: otel-demo + labels: + + app.kubernetes.io/instance: opentelemetry-demo + app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/part-of: opentelemetry-demo +data: + + products.json: | + { + "products": [ + { + "id": "OLJCESPC7Z", + "name": "National Park Foundation Explorascope", + "description": "The National Park Foundation’s (NPF) Explorascope 60AZ is a manual alt-azimuth, refractor telescope perfect for celestial viewing on the go. The NPF Explorascope 60 can view the planets, moon, star clusters and brighter deep sky objects like the Orion Nebula and Andromeda Galaxy.", + "picture": "NationalParkFoundationExplorascope.jpg", + "priceUsd": { + "currencyCode": "USD", + "units": 101, + "nanos": 960000000 + }, + "categories": ["telescopes"] + }, + { + "id": "66VCHSJNUP", + "name": "Starsense Explorer Refractor Telescope", + "description": "The first telescope that uses your smartphone to analyze the night sky and calculate its position in real time. StarSense Explorer is ideal for beginners thanks to the app’s user-friendly interface and detailed tutorials. It’s like having your own personal tour guide of the night sky", + "picture": "StarsenseExplorer.jpg", + "priceUsd": { + "currencyCode": "USD", + "units": 349, + "nanos": 950000000 + }, + "categories": ["telescopes"] + }, + { + "id": "1YMWWN1N4O", + "name": "Eclipsmart Travel Refractor Telescope", + "description": "Dedicated white-light solar scope for the observer on the go. The 50mm refracting solar scope uses Solar Safe, ISO compliant, full-aperture glass filter material to ensure the safest view of solar events. The kit comes complete with everything you need, including the dedicated travel solar scope, a Solar Safe finderscope, tripod, a high quality 20mm (18x) Kellner eyepiece and a nylon backpack to carry everything in. This Travel Solar Scope makes it easy to share the Sun as well as partial and total solar eclipses with the whole family and offers much higher magnifications than you would otherwise get using handheld solar viewers or binoculars.", + "picture": "EclipsmartTravelRefractorTelescope.jpg", + "priceUsd": { + "currencyCode": "USD", + "units": 129, + "nanos": 950000000 + }, + "categories": ["telescopes", "travel"] + }, + { + "id": "L9ECAV7KIM", + "name": "Lens Cleaning Kit", + "description": "Wipe away dust, dirt, fingerprints and other particles on your lenses to see clearly with the Lens Cleaning Kit. This cleaning kit works on all glass and optical surfaces, including telescopes, binoculars, spotting scopes, monoculars, microscopes, and even your camera lenses, computer screens, and mobile devices. The kit comes complete with a retractable lens brush to remove dust particles and dirt and two options to clean smudges and fingerprints off of your optics, pre-moistened lens wipes and a bottled lens cleaning fluid with soft cloth.", + "picture": "LensCleaningKit.jpg", + "priceUsd": { + "currencyCode": "USD", + "units": 21, + "nanos": 950000000 + }, + "categories": ["accessories"] + }, + { + "id": "2ZYFJ3GM2N", + "name": "Roof Binoculars", + "description": "This versatile, all-around binocular is a great choice for the trail, the stadium, the arena, or just about anywhere you want a close-up view of the action without sacrificing brightness or detail. It’s an especially great companion for nature observation and bird watching, with ED glass that helps you spot the subtlest field markings and a close focus of just 6.5 feet.", + "picture": "RoofBinoculars.jpg", + "priceUsd": { + "currencyCode": "USD", + "units": 209, + "nanos": 950000000 + }, + "categories": ["binoculars"] + }, + { + "id": "0PUK6V6EV0", + "name": "Solar System Color Imager", + "description": "You have your new telescope and have observed Saturn and Jupiter. Now you're ready to take the next step and start imaging them. But where do you begin? The NexImage 10 Solar System Imager is the perfect solution.", + "picture": "SolarSystemColorImager.jpg", + "priceUsd": { + "currencyCode": "USD", + "units": 175, + "nanos": 0 + }, + "categories": ["accessories", "telescopes"] + }, + { + "id": "LS4PSXUNUM", + "name": "Red Flashlight", + "description": "This 3-in-1 device features a 3-mode red flashlight, a hand warmer, and a portable power bank for recharging your personal electronics on the go. Whether you use it to light the way at an astronomy star party, a night walk, or wildlife research, ThermoTorch 3 Astro Red’s rugged, IPX4-rated design will withstand your everyday activities.", + "picture": "RedFlashlight.jpg", + "priceUsd": { + "currencyCode": "USD", + "units": 57, + "nanos": 80000000 + }, + "categories": ["accessories", "flashlights"] + }, + { + "id": "9SIQT8TOJO", + "name": "Optical Tube Assembly", + "description": "Capturing impressive deep-sky astroimages is easier than ever with Rowe-Ackermann Schmidt Astrograph (RASA) V2, the perfect companion to today’s top DSLR or astronomical CCD cameras. This fast, wide-field f/2.2 system allows for shorter exposure times compared to traditional f/10 astroimaging, without sacrificing resolution. Because shorter sub-exposure times are possible, your equatorial mount won’t need to accurately track over extended periods. The short focal length also lessens equatorial tracking demands. In many cases, autoguiding will not be required.", + "picture": "OpticalTubeAssembly.jpg", + "priceUsd": { + "currencyCode": "USD", + "units": 3599, + "nanos": 0 + }, + "categories": ["accessories", "telescopes", "assembly"] + }, + { + "id": "6E92ZMYYFZ", + "name": "Solar Filter", + "description": "Enhance your viewing experience with EclipSmart Solar Filter for 8” telescopes. With two Velcro straps and four self-adhesive Velcro pads for added safety, you can be assured that the solar filter cannot be accidentally knocked off and will provide Solar Safe, ISO compliant viewing.", + "picture": "SolarFilter.jpg", + "priceUsd": { + "currencyCode": "USD", + "units": 69, + "nanos": 950000000 + }, + "categories": ["accessories", "telescopes"] + }, + { + "id": "HQTGWGPNH4", + "name": "The Comet Book", + "description": "A 16th-century treatise on comets, created anonymously in Flanders (now northern France) and now held at the Universitätsbibliothek Kassel. Commonly known as The Comet Book (or Kometenbuch in German), its full title translates as “Comets and their General and Particular Meanings, According to Ptolomeé, Albumasar, Haly, Aliquind and other Astrologers”. The image is from https://publicdomainreview.org/collection/the-comet-book, made available by the Universitätsbibliothek Kassel under a CC-BY SA 4.0 license (https://creativecommons.org/licenses/by-sa/4.0/)", + "picture": "TheCometBook.jpg", + "priceUsd": { + "currencyCode": "USD", + "units": 0, + "nanos": 990000000 + }, + "categories": ["books"] + } + ] + } +--- # Source: opentelemetry-demo/charts/grafana/templates/clusterrole.yaml kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 @@ -8253,19 +8922,19 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.1" - name: opentelemetry-demo-grafana-clusterrole + app.kubernetes.io/version: "11.5.1" + name: grafana-clusterrole rules: [] --- # Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrole.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: opentelemetry-demo-otelcol + name: otel-collector labels: - app.kubernetes.io/name: otelcol + app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/version: "0.119.0" app.kubernetes.io/component: standalone-collector rules: - apiGroups: [""] @@ -8286,9 +8955,9 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v3.0.0 + app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus - name: opentelemetry-demo-prometheus-server + name: prometheus rules: - apiGroups: - "" @@ -8332,37 +9001,37 @@ rules: kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: - name: opentelemetry-demo-grafana-clusterrolebinding + name: grafana-clusterrolebinding labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.1" + app.kubernetes.io/version: "11.5.1" subjects: - kind: ServiceAccount - name: opentelemetry-demo-grafana + name: grafana namespace: otel-demo roleRef: kind: ClusterRole - name: opentelemetry-demo-grafana-clusterrole + name: grafana-clusterrole apiGroup: rbac.authorization.k8s.io --- # Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: opentelemetry-demo-otelcol + name: otel-collector labels: - app.kubernetes.io/name: otelcol + app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/version: "0.119.0" app.kubernetes.io/component: standalone-collector roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: opentelemetry-demo-otelcol + name: otel-collector subjects: - kind: ServiceAccount - name: opentelemetry-demo-otelcol + name: otel-collector namespace: otel-demo --- # Source: opentelemetry-demo/charts/prometheus/templates/clusterrolebinding.yaml @@ -8373,59 +9042,59 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v3.0.0 + app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus - name: opentelemetry-demo-prometheus-server + name: prometheus subjects: - kind: ServiceAccount - name: opentelemetry-demo-prometheus-server + name: prometheus namespace: otel-demo roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: opentelemetry-demo-prometheus-server + name: prometheus --- # Source: opentelemetry-demo/charts/grafana/templates/role.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: - name: opentelemetry-demo-grafana + name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.1" + app.kubernetes.io/version: "11.5.1" rules: [] --- # Source: opentelemetry-demo/charts/grafana/templates/rolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: - name: opentelemetry-demo-grafana + name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.1" + app.kubernetes.io/version: "11.5.1" roleRef: apiGroup: rbac.authorization.k8s.io kind: Role - name: opentelemetry-demo-grafana + name: grafana subjects: - kind: ServiceAccount - name: opentelemetry-demo-grafana + name: grafana namespace: otel-demo --- # Source: opentelemetry-demo/charts/grafana/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-grafana + name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.1" + app.kubernetes.io/version: "11.5.1" spec: type: ClusterIP ports: @@ -8441,7 +9110,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-jaeger-agent + name: jaeger-agent labels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo @@ -8474,7 +9143,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-jaeger-collector + name: jaeger-collector labels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo @@ -8515,7 +9184,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-jaeger-query + name: jaeger-query labels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo @@ -8539,12 +9208,12 @@ spec: kind: Service apiVersion: v1 metadata: - name: otel-demo-opensearch + name: opensearch labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.18.0" - app.kubernetes.io/component: otel-demo-opensearch + app.kubernetes.io/version: "2.19.0" + app.kubernetes.io/component: opensearch annotations: {} spec: @@ -8567,12 +9236,12 @@ spec: kind: Service apiVersion: v1 metadata: - name: otel-demo-opensearch-headless + name: opensearch-headless labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.18.0" - app.kubernetes.io/component: otel-demo-opensearch + app.kubernetes.io/version: "2.19.0" + app.kubernetes.io/component: opensearch annotations: service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" spec: @@ -8594,12 +9263,12 @@ spec: apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-otelcol + name: otel-collector namespace: otel-demo labels: - app.kubernetes.io/name: otelcol + app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/version: "0.119.0" app.kubernetes.io/component: standalone-collector component: standalone-collector spec: @@ -8640,7 +9309,7 @@ spec: targetPort: 9411 protocol: TCP selector: - app.kubernetes.io/name: otelcol + app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo component: standalone-collector internalTrafficPolicy: Cluster @@ -8653,9 +9322,9 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v3.0.0 + app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus - name: opentelemetry-demo-prometheus-server + name: prometheus namespace: otel-demo spec: ports: @@ -8674,14 +9343,14 @@ spec: apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-adservice + name: ad labels: - opentelemetry.io/name: opentelemetry-demo-adservice + opentelemetry.io/name: ad app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: adservice - app.kubernetes.io/name: opentelemetry-demo-adservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: ad + app.kubernetes.io/name: ad + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8691,20 +9360,20 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-adservice + opentelemetry.io/name: ad --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-cartservice + name: cart labels: - opentelemetry.io/name: opentelemetry-demo-cartservice + opentelemetry.io/name: cart app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: cartservice - app.kubernetes.io/name: opentelemetry-demo-cartservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: cart + app.kubernetes.io/name: cart + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8714,20 +9383,20 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-cartservice + opentelemetry.io/name: cart --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-checkoutservice + name: checkout labels: - opentelemetry.io/name: opentelemetry-demo-checkoutservice + opentelemetry.io/name: checkout app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: checkoutservice - app.kubernetes.io/name: opentelemetry-demo-checkoutservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: checkout + app.kubernetes.io/name: checkout + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8737,20 +9406,20 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-checkoutservice + opentelemetry.io/name: checkout --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-currencyservice + name: currency labels: - opentelemetry.io/name: opentelemetry-demo-currencyservice + opentelemetry.io/name: currency app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: currencyservice - app.kubernetes.io/name: opentelemetry-demo-currencyservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: currency + app.kubernetes.io/name: currency + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8760,20 +9429,20 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-currencyservice + opentelemetry.io/name: currency --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-emailservice + name: email labels: - opentelemetry.io/name: opentelemetry-demo-emailservice + opentelemetry.io/name: email app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: emailservice - app.kubernetes.io/name: opentelemetry-demo-emailservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: email + app.kubernetes.io/name: email + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8783,20 +9452,20 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-emailservice + opentelemetry.io/name: email --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-flagd + name: flagd labels: - opentelemetry.io/name: opentelemetry-demo-flagd + opentelemetry.io/name: flagd app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: flagd - app.kubernetes.io/name: opentelemetry-demo-flagd - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/name: flagd + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8809,20 +9478,20 @@ spec: targetPort: 4000 selector: - opentelemetry.io/name: opentelemetry-demo-flagd + opentelemetry.io/name: flagd --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-frontend + name: frontend labels: - opentelemetry.io/name: opentelemetry-demo-frontend + opentelemetry.io/name: frontend app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend - app.kubernetes.io/name: opentelemetry-demo-frontend - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/name: frontend + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8832,20 +9501,20 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-frontend + opentelemetry.io/name: frontend --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-frontendproxy + name: frontend-proxy labels: - opentelemetry.io/name: opentelemetry-demo-frontendproxy + opentelemetry.io/name: frontend-proxy app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: frontendproxy - app.kubernetes.io/name: opentelemetry-demo-frontendproxy - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: frontend-proxy + app.kubernetes.io/name: frontend-proxy + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8855,20 +9524,20 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-frontendproxy + opentelemetry.io/name: frontend-proxy --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-imageprovider + name: image-provider labels: - opentelemetry.io/name: opentelemetry-demo-imageprovider + opentelemetry.io/name: image-provider app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: imageprovider - app.kubernetes.io/name: opentelemetry-demo-imageprovider - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: image-provider + app.kubernetes.io/name: image-provider + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8878,20 +9547,20 @@ spec: targetPort: 8081 selector: - opentelemetry.io/name: opentelemetry-demo-imageprovider + opentelemetry.io/name: image-provider --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-kafka + name: kafka labels: - opentelemetry.io/name: opentelemetry-demo-kafka + opentelemetry.io/name: kafka app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: kafka - app.kubernetes.io/name: opentelemetry-demo-kafka - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/name: kafka + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8904,20 +9573,20 @@ spec: targetPort: 9093 selector: - opentelemetry.io/name: opentelemetry-demo-kafka + opentelemetry.io/name: kafka --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-loadgenerator + name: load-generator labels: - opentelemetry.io/name: opentelemetry-demo-loadgenerator + opentelemetry.io/name: load-generator app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: loadgenerator - app.kubernetes.io/name: opentelemetry-demo-loadgenerator - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: load-generator + app.kubernetes.io/name: load-generator + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8927,20 +9596,20 @@ spec: targetPort: 8089 selector: - opentelemetry.io/name: opentelemetry-demo-loadgenerator + opentelemetry.io/name: load-generator --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-paymentservice + name: payment labels: - opentelemetry.io/name: opentelemetry-demo-paymentservice + opentelemetry.io/name: payment app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: paymentservice - app.kubernetes.io/name: opentelemetry-demo-paymentservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: payment + app.kubernetes.io/name: payment + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8950,20 +9619,20 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-paymentservice + opentelemetry.io/name: payment --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-productcatalogservice + name: product-catalog labels: - opentelemetry.io/name: opentelemetry-demo-productcatalogservice + opentelemetry.io/name: product-catalog app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: productcatalogservice - app.kubernetes.io/name: opentelemetry-demo-productcatalogservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: product-catalog + app.kubernetes.io/name: product-catalog + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8973,20 +9642,20 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-productcatalogservice + opentelemetry.io/name: product-catalog --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-quoteservice + name: quote labels: - opentelemetry.io/name: opentelemetry-demo-quoteservice + opentelemetry.io/name: quote app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: quoteservice - app.kubernetes.io/name: opentelemetry-demo-quoteservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: quote + app.kubernetes.io/name: quote + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -8996,20 +9665,20 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-quoteservice + opentelemetry.io/name: quote --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-recommendationservice + name: recommendation labels: - opentelemetry.io/name: opentelemetry-demo-recommendationservice + opentelemetry.io/name: recommendation app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: recommendationservice - app.kubernetes.io/name: opentelemetry-demo-recommendationservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: recommendation + app.kubernetes.io/name: recommendation + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9019,20 +9688,20 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-recommendationservice + opentelemetry.io/name: recommendation --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-shippingservice + name: shipping labels: - opentelemetry.io/name: opentelemetry-demo-shippingservice + opentelemetry.io/name: shipping app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: shippingservice - app.kubernetes.io/name: opentelemetry-demo-shippingservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: shipping + app.kubernetes.io/name: shipping + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9042,41 +9711,41 @@ spec: targetPort: 8080 selector: - opentelemetry.io/name: opentelemetry-demo-shippingservice + opentelemetry.io/name: shipping --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: - name: opentelemetry-demo-valkey + name: valkey-cart labels: - opentelemetry.io/name: opentelemetry-demo-valkey + opentelemetry.io/name: valkey-cart app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: valkey - app.kubernetes.io/name: opentelemetry-demo-valkey - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: valkey-cart + app.kubernetes.io/name: valkey-cart + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 6379 - name: valkey + name: valkey-cart targetPort: 6379 selector: - opentelemetry.io/name: opentelemetry-demo-valkey + opentelemetry.io/name: valkey-cart --- # Source: opentelemetry-demo/charts/grafana/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-grafana + name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.1" + app.kubernetes.io/version: "11.5.1" spec: replicas: 1 revisionHistoryLimit: 10 @@ -9091,16 +9760,17 @@ spec: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.3.1" + app.kubernetes.io/version: "11.5.1" annotations: - checksum/config: 66402109ab73b3549330f38a66f20b78067ca4fdd1b77fc12fd760727d05f34c + checksum/config: b68209829a463f154d3438b9bef7ca2276e4116b1548d5ba7d65840a267566b3 checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24 checksum/secret: bed677784356b2af7fb0d87455db21f077853059b594101a4f6532bfbd962a7f kubectl.kubernetes.io/default-container: grafana spec: - serviceAccountName: opentelemetry-demo-grafana + serviceAccountName: grafana automountServiceAccountToken: true + shareProcessNamespace: false securityContext: fsGroup: 472 runAsGroup: 472 @@ -9109,7 +9779,7 @@ spec: enableServiceLinks: true containers: - name: grafana - image: "docker.io/grafana/grafana:11.3.1" + image: "docker.io/grafana/grafana:11.5.1" imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -9142,6 +9812,9 @@ spec: - name: gossip-udp containerPort: 9094 protocol: UDP + - name: profiling + containerPort: 6060 + protocol: TCP env: - name: POD_IP valueFrom: @@ -9150,17 +9823,17 @@ spec: - name: GF_SECURITY_ADMIN_USER valueFrom: secretKeyRef: - name: opentelemetry-demo-grafana + name: grafana key: admin-user - name: GF_SECURITY_ADMIN_PASSWORD valueFrom: secretKeyRef: - name: opentelemetry-demo-grafana + name: grafana key: admin-password - name: GF_INSTALL_PLUGINS valueFrom: configMapKeyRef: - name: opentelemetry-demo-grafana + name: grafana key: plugins - name: GF_PATHS_DATA value: /var/lib/grafana/ @@ -9187,10 +9860,10 @@ spec: volumes: - name: config configMap: - name: opentelemetry-demo-grafana + name: grafana - name: dashboards-default configMap: - name: opentelemetry-demo-grafana-dashboards + name: grafana-dashboards - name: storage emptyDir: {} --- @@ -9198,7 +9871,7 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-jaeger + name: jaeger labels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo @@ -9251,7 +9924,7 @@ spec: args: - "--memory.max-traces=5000" - "--query.base-path=/jaeger/ui" - - "--prometheus.server-url=http://opentelemetry-demo-prometheus-server:9090" + - "--prometheus.server-url=http://prometheus:9090" - "--prometheus.query.normalize-calls=true" - "--prometheus.query.normalize-duration=true" ports: @@ -9301,26 +9974,26 @@ spec: fsGroup: 10001 runAsGroup: 10001 runAsUser: 10001 - serviceAccountName: opentelemetry-demo-jaeger + serviceAccountName: jaeger volumes: --- # Source: opentelemetry-demo/charts/opentelemetry-collector/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-otelcol + name: otel-collector namespace: otel-demo labels: - app.kubernetes.io/name: otelcol + app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.114.0" + app.kubernetes.io/version: "0.119.0" app.kubernetes.io/component: standalone-collector spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: - app.kubernetes.io/name: otelcol + app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo component: standalone-collector strategy: @@ -9328,18 +10001,18 @@ spec: template: metadata: annotations: - checksum/config: c953028ca96450ba37c5dbeb9458b2c6a8a733dc3fc5784339c7b2df5619a16a + checksum/config: ba74383c29ff27f7bdd25afc3daceba2ee1ccd26b73d350139121e864f1346a0 opentelemetry_community_demo: "true" prometheus.io/port: "9464" prometheus.io/scrape: "true" labels: - app.kubernetes.io/name: otelcol + app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo component: standalone-collector spec: - serviceAccountName: opentelemetry-demo-otelcol + serviceAccountName: otel-collector securityContext: {} containers: @@ -9348,7 +10021,7 @@ spec: - --config=/conf/relay.yaml securityContext: {} - image: "otel/opentelemetry-collector-contrib:0.114.0" + image: "otel/opentelemetry-collector-contrib:0.119.0" imagePullPolicy: IfNotPresent ports: @@ -9401,7 +10074,7 @@ spec: volumes: - name: opentelemetry-collector-configmap configMap: - name: opentelemetry-demo-otelcol + name: otel-collector items: - key: relay path: relay.yaml @@ -9415,9 +10088,9 @@ metadata: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v3.0.0 + app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus - name: opentelemetry-demo-prometheus-server + name: prometheus namespace: otel-demo spec: selector: @@ -9436,15 +10109,15 @@ spec: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: v3.0.0 + app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus spec: enableServiceLinks: true - serviceAccountName: opentelemetry-demo-prometheus-server + serviceAccountName: prometheus containers: - name: prometheus-server - image: "quay.io/prometheus/prometheus:v3.0.0" + image: "quay.io/prometheus/prometheus:v3.1.0" imagePullPolicy: "IfNotPresent" args: - --storage.tsdb.retention.time=15d @@ -9495,7 +10168,7 @@ spec: volumes: - name: config-volume configMap: - name: opentelemetry-demo-prometheus-server + name: prometheus - name: storage-volume emptyDir: {} @@ -9504,14 +10177,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-accountingservice + name: accounting labels: - opentelemetry.io/name: opentelemetry-demo-accountingservice + opentelemetry.io/name: accounting app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: accountingservice - app.kubernetes.io/name: opentelemetry-demo-accountingservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: accounting + app.kubernetes.io/name: accounting + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -9519,20 +10192,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-accountingservice + opentelemetry.io/name: accounting template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-accountingservice + opentelemetry.io/name: accounting app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: accountingservice - app.kubernetes.io/name: opentelemetry-demo-accountingservice + app.kubernetes.io/component: accounting + app.kubernetes.io/name: accounting spec: serviceAccountName: opentelemetry-demo containers: - - name: accountingservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-accountingservice' + - name: accounting + image: 'ghcr.io/open-telemetry/demo:2.0.0-accounting' imagePullPolicy: IfNotPresent env: - name: OTEL_SERVICE_NAME @@ -9541,15 +10214,15 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: KAFKA_SERVICE_ADDR - value: 'opentelemetry-demo-kafka:9092' + - name: KAFKA_ADDR + value: kafka:9092 - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 120Mi @@ -9558,8 +10231,7 @@ spec: - command: - sh - -c - - until nc -z -v -w30 opentelemetry-demo-kafka 9092; do echo waiting - for kafka; sleep 2; done; + - until nc -z -v -w30 kafka 9092; do echo waiting for kafka; sleep 2; done; image: busybox:latest name: wait-for-kafka volumes: @@ -9568,14 +10240,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-adservice + name: ad labels: - opentelemetry.io/name: opentelemetry-demo-adservice + opentelemetry.io/name: ad app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: adservice - app.kubernetes.io/name: opentelemetry-demo-adservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: ad + app.kubernetes.io/name: ad + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -9583,20 +10255,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-adservice + opentelemetry.io/name: ad template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-adservice + opentelemetry.io/name: ad app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: adservice - app.kubernetes.io/name: opentelemetry-demo-adservice + app.kubernetes.io/component: ad + app.kubernetes.io/name: ad spec: serviceAccountName: opentelemetry-demo containers: - - name: adservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-adservice' + - name: ad + image: 'ghcr.io/open-telemetry/demo:2.0.0-ad' imagePullPolicy: IfNotPresent ports: @@ -9609,13 +10281,13 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: AD_SERVICE_PORT + - name: AD_PORT value: "8080" - name: FLAGD_HOST - value: 'opentelemetry-demo-flagd' + value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT @@ -9623,7 +10295,7 @@ spec: - name: OTEL_LOGS_EXPORTER value: otlp - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 300Mi @@ -9634,14 +10306,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-cartservice + name: cart labels: - opentelemetry.io/name: opentelemetry-demo-cartservice + opentelemetry.io/name: cart app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: cartservice - app.kubernetes.io/name: opentelemetry-demo-cartservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: cart + app.kubernetes.io/name: cart + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -9649,20 +10321,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-cartservice + opentelemetry.io/name: cart template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-cartservice + opentelemetry.io/name: cart app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: cartservice - app.kubernetes.io/name: opentelemetry-demo-cartservice + app.kubernetes.io/component: cart + app.kubernetes.io/name: cart spec: serviceAccountName: opentelemetry-demo containers: - - name: cartservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-cartservice' + - name: cart + image: 'ghcr.io/open-telemetry/demo:2.0.0-cart' imagePullPolicy: IfNotPresent ports: @@ -9675,23 +10347,23 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: CART_SERVICE_PORT + - name: CART_PORT value: "8080" - name: ASPNETCORE_URLS - value: http://*:$(CART_SERVICE_PORT) + value: http://*:$(CART_PORT) - name: VALKEY_ADDR - value: 'opentelemetry-demo-valkey:6379' + value: valkey-cart:6379 - name: FLAGD_HOST - value: 'opentelemetry-demo-flagd' + value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 160Mi @@ -9700,24 +10372,24 @@ spec: - command: - sh - -c - - until nc -z -v -w30 opentelemetry-demo-valkey 6379; do echo waiting - for valkey; sleep 2; done; + - until nc -z -v -w30 valkey-cart 6379; do echo waiting for valkey-cart; sleep 2; + done; image: busybox:latest - name: wait-for-valkey + name: wait-for-valkey-cart volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-checkoutservice + name: checkout labels: - opentelemetry.io/name: opentelemetry-demo-checkoutservice + opentelemetry.io/name: checkout app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: checkoutservice - app.kubernetes.io/name: opentelemetry-demo-checkoutservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: checkout + app.kubernetes.io/name: checkout + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -9725,20 +10397,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-checkoutservice + opentelemetry.io/name: checkout template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-checkoutservice + opentelemetry.io/name: checkout app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: checkoutservice - app.kubernetes.io/name: opentelemetry-demo-checkoutservice + app.kubernetes.io/component: checkout + app.kubernetes.io/name: checkout spec: serviceAccountName: opentelemetry-demo containers: - - name: checkoutservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-checkoutservice' + - name: checkout + image: 'ghcr.io/open-telemetry/demo:2.0.0-checkout' imagePullPolicy: IfNotPresent ports: @@ -9751,33 +10423,33 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: CHECKOUT_SERVICE_PORT + - name: CHECKOUT_PORT value: "8080" - - name: CART_SERVICE_ADDR - value: 'opentelemetry-demo-cartservice:8080' - - name: CURRENCY_SERVICE_ADDR - value: 'opentelemetry-demo-currencyservice:8080' - - name: EMAIL_SERVICE_ADDR - value: http://opentelemetry-demo-emailservice:8080 - - name: PAYMENT_SERVICE_ADDR - value: 'opentelemetry-demo-paymentservice:8080' - - name: PRODUCT_CATALOG_SERVICE_ADDR - value: 'opentelemetry-demo-productcatalogservice:8080' - - name: SHIPPING_SERVICE_ADDR - value: 'opentelemetry-demo-shippingservice:8080' - - name: KAFKA_SERVICE_ADDR - value: 'opentelemetry-demo-kafka:9092' + - name: CART_ADDR + value: cart:8080 + - name: CURRENCY_ADDR + value: currency:8080 + - name: EMAIL_ADDR + value: http://email:8080 + - name: PAYMENT_ADDR + value: payment:8080 + - name: PRODUCT_CATALOG_ADDR + value: product-catalog:8080 + - name: SHIPPING_ADDR + value: shipping:8080 + - name: KAFKA_ADDR + value: kafka:9092 - name: FLAGD_HOST - value: 'opentelemetry-demo-flagd' + value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 20Mi @@ -9786,8 +10458,7 @@ spec: - command: - sh - -c - - until nc -z -v -w30 opentelemetry-demo-kafka 9092; do echo waiting - for kafka; sleep 2; done; + - until nc -z -v -w30 kafka 9092; do echo waiting for kafka; sleep 2; done; image: busybox:latest name: wait-for-kafka volumes: @@ -9796,14 +10467,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-currencyservice + name: currency labels: - opentelemetry.io/name: opentelemetry-demo-currencyservice + opentelemetry.io/name: currency app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: currencyservice - app.kubernetes.io/name: opentelemetry-demo-currencyservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: currency + app.kubernetes.io/name: currency + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -9811,20 +10482,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-currencyservice + opentelemetry.io/name: currency template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-currencyservice + opentelemetry.io/name: currency app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: currencyservice - app.kubernetes.io/name: opentelemetry-demo-currencyservice + app.kubernetes.io/component: currency + app.kubernetes.io/name: currency spec: serviceAccountName: opentelemetry-demo containers: - - name: currencyservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-currencyservice' + - name: currency + image: 'ghcr.io/open-telemetry/demo:2.0.0-currency' imagePullPolicy: IfNotPresent ports: @@ -9837,17 +10508,17 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: CURRENCY_SERVICE_PORT + - name: CURRENCY_PORT value: "8080" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: VERSION - value: '1.12.0' + value: '2.0.0' - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 20Mi @@ -9858,14 +10529,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-emailservice + name: email labels: - opentelemetry.io/name: opentelemetry-demo-emailservice + opentelemetry.io/name: email app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: emailservice - app.kubernetes.io/name: opentelemetry-demo-emailservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: email + app.kubernetes.io/name: email + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -9873,20 +10544,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-emailservice + opentelemetry.io/name: email template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-emailservice + opentelemetry.io/name: email app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: emailservice - app.kubernetes.io/name: opentelemetry-demo-emailservice + app.kubernetes.io/component: email + app.kubernetes.io/name: email spec: serviceAccountName: opentelemetry-demo containers: - - name: emailservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-emailservice' + - name: email + image: 'ghcr.io/open-telemetry/demo:2.0.0-email' imagePullPolicy: IfNotPresent ports: @@ -9899,17 +10570,17 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: EMAIL_SERVICE_PORT + - name: EMAIL_PORT value: "8080" - name: APP_ENV value: production - name: OTEL_EXPORTER_OTLP_TRACES_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318/v1/traces - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 100Mi @@ -9920,14 +10591,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-flagd + name: flagd labels: - opentelemetry.io/name: opentelemetry-demo-flagd + opentelemetry.io/name: flagd app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: flagd - app.kubernetes.io/name: opentelemetry-demo-flagd - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/name: flagd + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -9935,15 +10606,15 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-flagd + opentelemetry.io/name: flagd template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-flagd + opentelemetry.io/name: flagd app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: flagd - app.kubernetes.io/name: opentelemetry-demo-flagd + app.kubernetes.io/name: flagd spec: serviceAccountName: opentelemetry-demo containers: @@ -9953,6 +10624,8 @@ spec: command: - /flagd-build - start + - --port + - "8013" - --uri - file:./etc/flagd/demo.flagd.json ports: @@ -9966,7 +10639,7 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: FLAGD_METRICS_EXPORTER @@ -9974,15 +10647,15 @@ spec: - name: FLAGD_OTEL_COLLECTOR_URI value: $(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 75Mi volumeMounts: - name: config-rw mountPath: /etc/flagd - - name: flagdui - image: 'ghcr.io/open-telemetry/demo:1.12.0-flagdui' + - name: flagd-ui + image: 'ghcr.io/open-telemetry/demo:2.0.0-flagd-ui' imagePullPolicy: IfNotPresent ports: @@ -9995,7 +10668,7 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: FLAGD_METRICS_EXPORTER @@ -10003,7 +10676,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 75Mi @@ -10026,21 +10699,21 @@ spec: - name: config-rw emptyDir: {} - configMap: - name: 'opentelemetry-demo-flagd-config' + name: flagd-config name: config-ro --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-frauddetectionservice + name: fraud-detection labels: - opentelemetry.io/name: opentelemetry-demo-frauddetectionservice + opentelemetry.io/name: fraud-detection app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: frauddetectionservice - app.kubernetes.io/name: opentelemetry-demo-frauddetectionservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: fraud-detection + app.kubernetes.io/name: fraud-detection + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10048,20 +10721,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-frauddetectionservice + opentelemetry.io/name: fraud-detection template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-frauddetectionservice + opentelemetry.io/name: fraud-detection app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: frauddetectionservice - app.kubernetes.io/name: opentelemetry-demo-frauddetectionservice + app.kubernetes.io/component: fraud-detection + app.kubernetes.io/name: fraud-detection spec: serviceAccountName: opentelemetry-demo containers: - - name: frauddetectionservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-frauddetectionservice' + - name: fraud-detection + image: 'ghcr.io/open-telemetry/demo:2.0.0-fraud-detection' imagePullPolicy: IfNotPresent env: - name: OTEL_SERVICE_NAME @@ -10070,19 +10743,19 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: KAFKA_SERVICE_ADDR - value: 'opentelemetry-demo-kafka:9092' + - name: KAFKA_ADDR + value: kafka:9092 - name: FLAGD_HOST - value: 'opentelemetry-demo-flagd' + value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 300Mi @@ -10091,8 +10764,7 @@ spec: - command: - sh - -c - - until nc -z -v -w30 opentelemetry-demo-kafka 9092; do echo waiting - for kafka; sleep 2; done; + - until nc -z -v -w30 kafka 9092; do echo waiting for kafka; sleep 2; done; image: busybox:latest name: wait-for-kafka volumes: @@ -10101,14 +10773,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-frontend + name: frontend labels: - opentelemetry.io/name: opentelemetry-demo-frontend + opentelemetry.io/name: frontend app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend - app.kubernetes.io/name: opentelemetry-demo-frontend - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/name: frontend + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10116,20 +10788,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-frontend + opentelemetry.io/name: frontend template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-frontend + opentelemetry.io/name: frontend app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend - app.kubernetes.io/name: opentelemetry-demo-frontend + app.kubernetes.io/name: frontend spec: serviceAccountName: opentelemetry-demo containers: - name: frontend - image: 'ghcr.io/open-telemetry/demo:1.12.0-frontend' + image: 'ghcr.io/open-telemetry/demo:2.0.0-frontend' imagePullPolicy: IfNotPresent ports: @@ -10142,29 +10814,29 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: FRONTEND_PORT value: "8080" - name: FRONTEND_ADDR value: :8080 - - name: AD_SERVICE_ADDR - value: 'opentelemetry-demo-adservice:8080' - - name: CART_SERVICE_ADDR - value: 'opentelemetry-demo-cartservice:8080' - - name: CHECKOUT_SERVICE_ADDR - value: 'opentelemetry-demo-checkoutservice:8080' - - name: CURRENCY_SERVICE_ADDR - value: 'opentelemetry-demo-currencyservice:8080' - - name: PRODUCT_CATALOG_SERVICE_ADDR - value: 'opentelemetry-demo-productcatalogservice:8080' - - name: RECOMMENDATION_SERVICE_ADDR - value: 'opentelemetry-demo-recommendationservice:8080' - - name: SHIPPING_SERVICE_ADDR - value: 'opentelemetry-demo-shippingservice:8080' + - name: AD_ADDR + value: ad:8080 + - name: CART_ADDR + value: cart:8080 + - name: CHECKOUT_ADDR + value: checkout:8080 + - name: CURRENCY_ADDR + value: currency:8080 + - name: PRODUCT_CATALOG_ADDR + value: product-catalog:8080 + - name: RECOMMENDATION_ADDR + value: recommendation:8080 + - name: SHIPPING_ADDR + value: shipping:8080 - name: FLAGD_HOST - value: 'opentelemetry-demo-flagd' + value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_COLLECTOR_HOST @@ -10176,7 +10848,7 @@ spec: - name: PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT value: http://localhost:8080/otlp-http/v1/traces - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 250Mi @@ -10191,14 +10863,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-frontendproxy + name: frontend-proxy labels: - opentelemetry.io/name: opentelemetry-demo-frontendproxy + opentelemetry.io/name: frontend-proxy app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: frontendproxy - app.kubernetes.io/name: opentelemetry-demo-frontendproxy - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: frontend-proxy + app.kubernetes.io/name: frontend-proxy + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10206,20 +10878,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-frontendproxy + opentelemetry.io/name: frontend-proxy template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-frontendproxy + opentelemetry.io/name: frontend-proxy app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: frontendproxy - app.kubernetes.io/name: opentelemetry-demo-frontendproxy + app.kubernetes.io/component: frontend-proxy + app.kubernetes.io/name: frontend-proxy spec: serviceAccountName: opentelemetry-demo containers: - - name: frontendproxy - image: 'ghcr.io/open-telemetry/demo:1.12.0-frontendproxy' + - name: frontend-proxy + image: 'ghcr.io/open-telemetry/demo:2.0.0-frontend-proxy' imagePullPolicy: IfNotPresent ports: @@ -10232,37 +10904,37 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: ENVOY_PORT value: "8080" - name: FLAGD_HOST - value: 'opentelemetry-demo-flagd' + value: flagd - name: FLAGD_PORT value: "8013" - name: FLAGD_UI_HOST - value: 'opentelemetry-demo-flagd' + value: flagd - name: FLAGD_UI_PORT value: "4000" - name: FRONTEND_HOST - value: 'opentelemetry-demo-frontend' + value: frontend - name: FRONTEND_PORT value: "8080" - - name: GRAFANA_SERVICE_HOST - value: 'opentelemetry-demo-grafana' - - name: GRAFANA_SERVICE_PORT + - name: GRAFANA_HOST + value: grafana + - name: GRAFANA_PORT value: "80" - name: IMAGE_PROVIDER_HOST - value: 'opentelemetry-demo-imageprovider' + value: image-provider - name: IMAGE_PROVIDER_PORT value: "8081" - - name: JAEGER_SERVICE_HOST - value: 'opentelemetry-demo-jaeger-query' - - name: JAEGER_SERVICE_PORT + - name: JAEGER_HOST + value: jaeger-query + - name: JAEGER_PORT value: "16686" - name: LOCUST_WEB_HOST - value: 'opentelemetry-demo-loadgenerator' + value: load-generator - name: LOCUST_WEB_PORT value: "8089" - name: OTEL_COLLECTOR_HOST @@ -10272,10 +10944,10 @@ spec: - name: OTEL_COLLECTOR_PORT_HTTP value: "4318" - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: - memory: 50Mi + memory: 65Mi securityContext: runAsGroup: 101 runAsNonRoot: true @@ -10287,14 +10959,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-imageprovider + name: image-provider labels: - opentelemetry.io/name: opentelemetry-demo-imageprovider + opentelemetry.io/name: image-provider app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: imageprovider - app.kubernetes.io/name: opentelemetry-demo-imageprovider - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: image-provider + app.kubernetes.io/name: image-provider + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10302,20 +10974,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-imageprovider + opentelemetry.io/name: image-provider template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-imageprovider + opentelemetry.io/name: image-provider app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: imageprovider - app.kubernetes.io/name: opentelemetry-demo-imageprovider + app.kubernetes.io/component: image-provider + app.kubernetes.io/name: image-provider spec: serviceAccountName: opentelemetry-demo containers: - - name: imageprovider - image: 'ghcr.io/open-telemetry/demo:1.12.0-imageprovider' + - name: image-provider + image: 'ghcr.io/open-telemetry/demo:2.0.0-image-provider' imagePullPolicy: IfNotPresent ports: @@ -10328,7 +11000,7 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: IMAGE_PROVIDER_PORT @@ -10338,7 +11010,7 @@ spec: - name: OTEL_COLLECTOR_HOST value: $(OTEL_COLLECTOR_NAME) - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 50Mi @@ -10349,14 +11021,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-kafka + name: kafka labels: - opentelemetry.io/name: opentelemetry-demo-kafka + opentelemetry.io/name: kafka app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: kafka - app.kubernetes.io/name: opentelemetry-demo-kafka - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/name: kafka + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10364,20 +11036,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-kafka + opentelemetry.io/name: kafka template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-kafka + opentelemetry.io/name: kafka app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: kafka - app.kubernetes.io/name: opentelemetry-demo-kafka + app.kubernetes.io/name: kafka spec: serviceAccountName: opentelemetry-demo containers: - name: kafka - image: 'ghcr.io/open-telemetry/demo:1.12.0-kafka' + image: 'ghcr.io/open-telemetry/demo:2.0.0-kafka' imagePullPolicy: IfNotPresent ports: @@ -10392,17 +11064,17 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: KAFKA_ADVERTISED_LISTENERS - value: PLAINTEXT://opentelemetry-demo-kafka:9092 + value: PLAINTEXT://kafka:9092 - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: KAFKA_HEAP_OPTS value: -Xmx400M -Xms400M - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 600Mi @@ -10417,14 +11089,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-loadgenerator + name: load-generator labels: - opentelemetry.io/name: opentelemetry-demo-loadgenerator + opentelemetry.io/name: load-generator app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: loadgenerator - app.kubernetes.io/name: opentelemetry-demo-loadgenerator - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: load-generator + app.kubernetes.io/name: load-generator + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10432,20 +11104,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-loadgenerator + opentelemetry.io/name: load-generator template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-loadgenerator + opentelemetry.io/name: load-generator app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: loadgenerator - app.kubernetes.io/name: opentelemetry-demo-loadgenerator + app.kubernetes.io/component: load-generator + app.kubernetes.io/name: load-generator spec: serviceAccountName: opentelemetry-demo containers: - - name: loadgenerator - image: 'ghcr.io/open-telemetry/demo:1.12.0-loadgenerator' + - name: load-generator + image: 'ghcr.io/open-telemetry/demo:2.0.0-load-generator' imagePullPolicy: IfNotPresent ports: @@ -10458,9 +11130,11 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: LOCUST_WEB_HOST + value: 0.0.0.0 - name: LOCUST_WEB_PORT value: "8089" - name: LOCUST_USERS @@ -10468,7 +11142,7 @@ spec: - name: LOCUST_SPAWN_RATE value: "1" - name: LOCUST_HOST - value: http://opentelemetry-demo-frontendproxy:8080 + value: http://frontend-proxy:8080 - name: LOCUST_HEADLESS value: "false" - name: LOCUST_AUTOSTART @@ -10478,13 +11152,13 @@ spec: - name: PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION value: python - name: FLAGD_HOST - value: 'opentelemetry-demo-flagd' + value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 1500Mi @@ -10495,14 +11169,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-paymentservice + name: payment labels: - opentelemetry.io/name: opentelemetry-demo-paymentservice + opentelemetry.io/name: payment app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: paymentservice - app.kubernetes.io/name: opentelemetry-demo-paymentservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: payment + app.kubernetes.io/name: payment + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10510,20 +11184,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-paymentservice + opentelemetry.io/name: payment template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-paymentservice + opentelemetry.io/name: payment app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: paymentservice - app.kubernetes.io/name: opentelemetry-demo-paymentservice + app.kubernetes.io/component: payment + app.kubernetes.io/name: payment spec: serviceAccountName: opentelemetry-demo containers: - - name: paymentservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-paymentservice' + - name: payment + image: 'ghcr.io/open-telemetry/demo:2.0.0-payment' imagePullPolicy: IfNotPresent ports: @@ -10536,19 +11210,19 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: PAYMENT_SERVICE_PORT + - name: PAYMENT_PORT value: "8080" - name: FLAGD_HOST - value: 'opentelemetry-demo-flagd' + value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 120Mi @@ -10563,14 +11237,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-productcatalogservice + name: product-catalog labels: - opentelemetry.io/name: opentelemetry-demo-productcatalogservice + opentelemetry.io/name: product-catalog app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: productcatalogservice - app.kubernetes.io/name: opentelemetry-demo-productcatalogservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: product-catalog + app.kubernetes.io/name: product-catalog + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10578,20 +11252,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-productcatalogservice + opentelemetry.io/name: product-catalog template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-productcatalogservice + opentelemetry.io/name: product-catalog app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: productcatalogservice - app.kubernetes.io/name: opentelemetry-demo-productcatalogservice + app.kubernetes.io/component: product-catalog + app.kubernetes.io/name: product-catalog spec: serviceAccountName: opentelemetry-demo containers: - - name: productcatalogservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-productcatalogservice' + - name: product-catalog + image: 'ghcr.io/open-telemetry/demo:2.0.0-product-catalog' imagePullPolicy: IfNotPresent ports: @@ -10604,37 +11278,44 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: PRODUCT_CATALOG_SERVICE_PORT + - name: PRODUCT_CATALOG_PORT value: "8080" + - name: PRODUCT_CATALOG_RELOAD_INTERVAL + value: "10" - name: FLAGD_HOST - value: 'opentelemetry-demo-flagd' + value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 20Mi volumeMounts: + - name: product-catalog-products + mountPath: /usr/src/app/products volumes: + - name: product-catalog-products + configMap: + name: product-catalog-products --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-quoteservice + name: quote labels: - opentelemetry.io/name: opentelemetry-demo-quoteservice + opentelemetry.io/name: quote app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: quoteservice - app.kubernetes.io/name: opentelemetry-demo-quoteservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: quote + app.kubernetes.io/name: quote + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10642,20 +11323,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-quoteservice + opentelemetry.io/name: quote template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-quoteservice + opentelemetry.io/name: quote app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: quoteservice - app.kubernetes.io/name: opentelemetry-demo-quoteservice + app.kubernetes.io/component: quote + app.kubernetes.io/name: quote spec: serviceAccountName: opentelemetry-demo containers: - - name: quoteservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-quoteservice' + - name: quote + image: 'ghcr.io/open-telemetry/demo:2.0.0-quote' imagePullPolicy: IfNotPresent ports: @@ -10668,17 +11349,17 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: QUOTE_SERVICE_PORT + - name: QUOTE_PORT value: "8080" - name: OTEL_PHP_AUTOLOAD_ENABLED value: "true" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 40Mi @@ -10693,14 +11374,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-recommendationservice + name: recommendation labels: - opentelemetry.io/name: opentelemetry-demo-recommendationservice + opentelemetry.io/name: recommendation app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: recommendationservice - app.kubernetes.io/name: opentelemetry-demo-recommendationservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: recommendation + app.kubernetes.io/name: recommendation + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10708,20 +11389,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-recommendationservice + opentelemetry.io/name: recommendation template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-recommendationservice + opentelemetry.io/name: recommendation app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: recommendationservice - app.kubernetes.io/name: opentelemetry-demo-recommendationservice + app.kubernetes.io/component: recommendation + app.kubernetes.io/name: recommendation spec: serviceAccountName: opentelemetry-demo containers: - - name: recommendationservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-recommendationservice' + - name: recommendation + image: 'ghcr.io/open-telemetry/demo:2.0.0-recommendation' imagePullPolicy: IfNotPresent ports: @@ -10734,25 +11415,25 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: RECOMMENDATION_SERVICE_PORT + - name: RECOMMENDATION_PORT value: "8080" - - name: PRODUCT_CATALOG_SERVICE_ADDR - value: 'opentelemetry-demo-productcatalogservice:8080' + - name: PRODUCT_CATALOG_ADDR + value: product-catalog:8080 - name: OTEL_PYTHON_LOG_CORRELATION value: "true" - name: PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION value: python - name: FLAGD_HOST - value: 'opentelemetry-demo-flagd' + value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 500Mi @@ -10763,14 +11444,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-shippingservice + name: shipping labels: - opentelemetry.io/name: opentelemetry-demo-shippingservice + opentelemetry.io/name: shipping app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: shippingservice - app.kubernetes.io/name: opentelemetry-demo-shippingservice - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: shipping + app.kubernetes.io/name: shipping + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10778,20 +11459,20 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-shippingservice + opentelemetry.io/name: shipping template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-shippingservice + opentelemetry.io/name: shipping app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: shippingservice - app.kubernetes.io/name: opentelemetry-demo-shippingservice + app.kubernetes.io/component: shipping + app.kubernetes.io/name: shipping spec: serviceAccountName: opentelemetry-demo containers: - - name: shippingservice - image: 'ghcr.io/open-telemetry/demo:1.12.0-shippingservice' + - name: shipping + image: 'ghcr.io/open-telemetry/demo:2.0.0-shipping' imagePullPolicy: IfNotPresent ports: @@ -10804,17 +11485,17 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - - name: SHIPPING_SERVICE_PORT + - name: SHIPPING_PORT value: "8080" - - name: QUOTE_SERVICE_ADDR - value: http://opentelemetry-demo-quoteservice:8080 + - name: QUOTE_ADDR + value: http://quote:8080 - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 20Mi @@ -10825,14 +11506,14 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: opentelemetry-demo-valkey + name: valkey-cart labels: - opentelemetry.io/name: opentelemetry-demo-valkey + opentelemetry.io/name: valkey-cart app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: valkey - app.kubernetes.io/name: opentelemetry-demo-valkey - app.kubernetes.io/version: "1.12.0" + app.kubernetes.io/component: valkey-cart + app.kubernetes.io/name: valkey-cart + app.kubernetes.io/version: "2.0.0" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10840,25 +11521,25 @@ spec: selector: matchLabels: - opentelemetry.io/name: opentelemetry-demo-valkey + opentelemetry.io/name: valkey-cart template: metadata: labels: - opentelemetry.io/name: opentelemetry-demo-valkey + opentelemetry.io/name: valkey-cart app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/component: valkey - app.kubernetes.io/name: opentelemetry-demo-valkey + app.kubernetes.io/component: valkey-cart + app.kubernetes.io/name: valkey-cart spec: serviceAccountName: opentelemetry-demo containers: - - name: valkey + - name: valkey-cart image: 'valkey/valkey:7.2-alpine' imagePullPolicy: IfNotPresent ports: - containerPort: 6379 - name: valkey + name: valkey-cart env: - name: OTEL_SERVICE_NAME valueFrom: @@ -10866,11 +11547,11 @@ spec: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME - value: 'opentelemetry-demo-otelcol' + value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=1.12.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 resources: limits: memory: 20Mi @@ -10885,16 +11566,16 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: otel-demo-opensearch + name: opensearch labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.18.0" - app.kubernetes.io/component: otel-demo-opensearch + app.kubernetes.io/version: "2.19.0" + app.kubernetes.io/component: opensearch annotations: majorVersion: "2" spec: - serviceName: otel-demo-opensearch-headless + serviceName: opensearch-headless selector: matchLabels: app.kubernetes.io/name: opensearch @@ -10905,14 +11586,14 @@ spec: type: RollingUpdate template: metadata: - name: "otel-demo-opensearch" + name: "opensearch" labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.18.0" - app.kubernetes.io/component: otel-demo-opensearch + app.kubernetes.io/version: "2.19.0" + app.kubernetes.io/component: opensearch annotations: - configchecksum: 6b540fc53745495be7b7bc6fdf907e4fa78e90b008ac9ff231c3b50a12e2d80 + configchecksum: 39d5e484f1cc28f685f786a856c4336341c6c034f5c0b1a81337e4a39511e47 spec: securityContext: fsGroup: 1000 @@ -10938,13 +11619,13 @@ spec: volumes: - name: config configMap: - name: otel-demo-opensearch-config + name: opensearch-config - emptyDir: {} name: config-emptydir enableServiceLinks: true initContainers: - name: configfile - image: "opensearchproject/opensearch:2.18.0" + image: "opensearchproject/opensearch:2.19.0" imagePullPolicy: "IfNotPresent" command: - sh @@ -10969,7 +11650,7 @@ spec: runAsNonRoot: true runAsUser: 1000 - image: "opensearchproject/opensearch:2.18.0" + image: "opensearchproject/opensearch:2.19.0" imagePullPolicy: "IfNotPresent" readinessProbe: failureThreshold: 3 @@ -10993,7 +11674,7 @@ spec: containerPort: 9600 resources: limits: - memory: 1Gi + memory: 1100Mi requests: cpu: 1000m memory: 100Mi From cc782991ecec5056ab504f2b47991abfb443bcf4 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 24 Feb 2025 08:06:51 -0500 Subject: [PATCH 143/178] [frontend] Cypress Tests: update cypress/included to 14.0.3 (#2072) * update cypress/included to 14.0.3 * update cypress/included to 14.0.3 --------- Co-authored-by: Juliano Costa --- CHANGELOG.md | 3 +++ src/frontend/Dockerfile.cypress | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43d6c9168b..b865833285 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ the release. ## Unreleased +* [frontend] Cypress tests base image updated to 14.0.3 + ([#2072](https://github.com/open-telemetry/opentelemetry-demo/pull/2072)) + ## 2.0.0 * [grafana] Update grafana to 11.3.0 diff --git a/src/frontend/Dockerfile.cypress b/src/frontend/Dockerfile.cypress index c421f753eb..c68de6b70d 100644 --- a/src/frontend/Dockerfile.cypress +++ b/src/frontend/Dockerfile.cypress @@ -1,4 +1,4 @@ -FROM cypress/included:10.3.1-typescript +FROM cypress/included:14.0.3 WORKDIR /app COPY ./src/frontend . RUN npm clean-install From 028125db5646a483a0e2f28318cdc36e6312415d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 21:05:14 -0500 Subject: [PATCH 144/178] build(deps): bump the go-production-dependencies group across 2 directories with 1 update (#2074) Bumps the go-production-dependencies group with 1 update in the /src/checkout directory: [github.com/open-feature/go-sdk-contrib/providers/flagd](https://github.com/open-feature/go-sdk-contrib). Bumps the go-production-dependencies group with 1 update in the /src/product-catalog directory: [github.com/open-feature/go-sdk-contrib/providers/flagd](https://github.com/open-feature/go-sdk-contrib). Updates `github.com/open-feature/go-sdk-contrib/providers/flagd` from 0.2.5 to 0.2.6 - [Release notes](https://github.com/open-feature/go-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/go-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/go-sdk-contrib/compare/providers/flagd/v0.2.5...providers/flagd/v0.2.6) Updates `github.com/open-feature/go-sdk-contrib/providers/flagd` from 0.2.5 to 0.2.6 - [Release notes](https://github.com/open-feature/go-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/go-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/go-sdk-contrib/compare/providers/flagd/v0.2.5...providers/flagd/v0.2.6) --- updated-dependencies: - dependency-name: github.com/open-feature/go-sdk-contrib/providers/flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies - dependency-name: github.com/open-feature/go-sdk-contrib/providers/flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/checkout/go.mod | 18 ++++++++--------- src/checkout/go.sum | 40 +++++++++++++++++++------------------- src/product-catalog/go.mod | 16 +++++++-------- src/product-catalog/go.sum | 36 +++++++++++++++++----------------- 4 files changed, 55 insertions(+), 55 deletions(-) diff --git a/src/checkout/go.mod b/src/checkout/go.mod index 73d66cf541..6b36f62089 100644 --- a/src/checkout/go.mod +++ b/src/checkout/go.mod @@ -9,7 +9,7 @@ require ( github.com/google/uuid v1.6.0 github.com/open-feature/go-sdk v1.14.1 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 - github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5 + github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.6 github.com/sirupsen/logrus v1.9.3 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 @@ -28,13 +28,13 @@ require ( require ( buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1 // indirect buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2 // indirect - buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1 // indirect + buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.5-20250127221518-be6d1143b690.1 // indirect connectrpc.com/connect v1.18.1 // indirect connectrpc.com/otelconnect v0.7.1 // indirect github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/diegoholiveira/jsonlogic/v3 v3.7.3 // indirect + github.com/diegoholiveira/jsonlogic/v3 v3.7.4 // indirect github.com/eapache/go-resiliency v1.7.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect github.com/eapache/queue v1.1.0 // indirect @@ -63,7 +63,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5 // indirect - github.com/open-feature/flagd/core v0.11.1 // indirect + github.com/open-feature/flagd/core v0.11.2 // indirect github.com/pierrec/lz4/v4 v4.1.22 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/twmb/murmur3 v1.1.8 // indirect @@ -78,12 +78,12 @@ require ( go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.32.0 // indirect - golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c // indirect - golang.org/x/mod v0.22.0 // indirect + golang.org/x/crypto v0.33.0 // indirect + golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect + golang.org/x/mod v0.23.0 // indirect golang.org/x/net v0.34.0 // indirect - golang.org/x/sys v0.29.0 // indirect - golang.org/x/text v0.21.0 // indirect + golang.org/x/sys v0.30.0 // indirect + golang.org/x/text v0.22.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/src/checkout/go.sum b/src/checkout/go.sum index 94cd3ca587..dc62200bd1 100644 --- a/src/checkout/go.sum +++ b/src/checkout/go.sum @@ -2,8 +2,8 @@ buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901 buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1/go.mod h1:jKw7gioqYsWaHUKr5Ja6MiadsXcrGJxQ86gucJ0luUA= buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2 h1:D3HI5RQbqgffyf+Z77+hReDx5kigFVAKGvttULD9/ms= buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2/go.mod h1:b9rfG6rbGXZAlLwQwedvZ0kI0nUcR+aLaYF70pj920E= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1 h1:0vXmOkGv8nO5H1W8TkSz+GtZhvD2LNXiQaiucEio6vk= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1/go.mod h1:wemFLfCpuNfhrBQ7NwzbtYxbg+IihAYqJcNeS+fLpLI= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.5-20250127221518-be6d1143b690.1 h1:eZKupK8gUTuc6zifAFQon8Gnt44fR4cd0GnTWjELvEw= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.5-20250127221518-be6d1143b690.1/go.mod h1:wJvVIADHM0IaBc5sYf8wgMMgSHi0nAtc6rgr5rfizhA= connectrpc.com/connect v1.18.1 h1:PAg7CjSAGvscaf6YZKUefjoih5Z/qYkyaTrBW8xvYPw= connectrpc.com/connect v1.18.1/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8= connectrpc.com/otelconnect v0.7.1 h1:scO5pOb0i4yUE66CnNrHeK1x51yq0bE0ehPg6WvzXJY= @@ -18,8 +18,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/diegoholiveira/jsonlogic/v3 v3.7.3 h1:orvGaTW5Qdcowpr7vgfMNuqYNjQYcqtw9W1Bk4QyI38= -github.com/diegoholiveira/jsonlogic/v3 v3.7.3/go.mod h1:OYRb6FSTVmMM+MNQ7ElmMsczyNSepw+OU4Z8emDSi4w= +github.com/diegoholiveira/jsonlogic/v3 v3.7.4 h1:92HSmB9bwM/o0ZvrCpcvTP2EsPXSkKtAniIr2W/dcIM= +github.com/diegoholiveira/jsonlogic/v3 v3.7.4/go.mod h1:OYRb6FSTVmMM+MNQ7ElmMsczyNSepw+OU4Z8emDSi4w= github.com/eapache/go-resiliency v1.7.0 h1:n3NRTnBn5N0Cbi/IeOHuQn9s2UwVUH7Ga0ZWcP+9JTA= github.com/eapache/go-resiliency v1.7.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho= github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 h1:Oy0F4ALJ04o5Qqpdz8XLIpNA3WM/iSIXqxtqo7UGVws= @@ -110,14 +110,14 @@ github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5 h1:0RKCLYeQpvSsKR95kc894tm8GAZmq7bcG48v0KJ0HCs= github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= -github.com/open-feature/flagd/core v0.11.1 h1:0qBVXcRBZOFoZ5lNK/Yba2IyUDdxUHcLsv5OhUJtltA= -github.com/open-feature/flagd/core v0.11.1/go.mod h1:yzPjp7D9wNusvOyKt8wBND5PQGslcu+5e+xmaIBGgLE= +github.com/open-feature/flagd/core v0.11.2 h1:3LAuLR2vXpBF80RwwCAu9JX898JasfPH7ErJEf5C5YA= +github.com/open-feature/flagd/core v0.11.2/go.mod h1:rTdYFyLGP1tGwxo0X26ygIrC31nINCv8hcCq+vhFD0E= github.com/open-feature/go-sdk v1.14.1 h1:jcxjCIG5Up3XkgYwWN5Y/WWfc6XobOhqrIwjyDBsoQo= github.com/open-feature/go-sdk v1.14.1/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5 h1:ddHmyboKzvCWYWEBKHiH39eRPdynuUkNPsPumRm/wrE= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5/go.mod h1:IFTzm7V7Gr0EX3AYA+SEGgMujqs2D45My6oZqmjQ2B4= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.6 h1:5LZkT79u5JEkh4KLYqO92vog2E1aTAhCjbMZQvBIXOo= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.6/go.mod h1:W1aiixVJlJVpNsMAryZv9dW01kW+Hg+gVvVd3tcZz/Y= github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -199,15 +199,15 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= -golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c h1:KL/ZBHXgKGVmuZBZ01Lt57yE5ws8ZPSkkihmEyq7FXc= -golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= +golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= +golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac h1:l5+whBCLH3iH2ZNHYLbAe58bo7yrN4mVcnkHDYz5vvs= +golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac/go.mod h1:hH+7mtFmImwwcMvScyxUhjuVHR3HGaDPMn9rMSUUbxo= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= +golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -234,8 +234,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= -golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -243,15 +243,15 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= -golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= +golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= +golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/src/product-catalog/go.mod b/src/product-catalog/go.mod index 758928cd0c..a51f374012 100644 --- a/src/product-catalog/go.mod +++ b/src/product-catalog/go.mod @@ -7,7 +7,7 @@ toolchain go1.22.9 require ( github.com/open-feature/go-sdk v1.14.1 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 - github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5 + github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.6 github.com/sirupsen/logrus v1.9.3 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0 @@ -25,12 +25,12 @@ require ( require ( buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1 // indirect buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2 // indirect - buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1 // indirect + buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.5-20250127221518-be6d1143b690.1 // indirect connectrpc.com/connect v1.18.1 // indirect connectrpc.com/otelconnect v0.7.1 // indirect github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect - github.com/diegoholiveira/jsonlogic/v3 v3.7.3 // indirect + github.com/diegoholiveira/jsonlogic/v3 v3.7.4 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/go-logr/logr v1.4.2 // indirect @@ -46,7 +46,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5 // indirect - github.com/open-feature/flagd/core v0.11.1 // indirect + github.com/open-feature/flagd/core v0.11.2 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect @@ -59,11 +59,11 @@ require ( go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c // indirect - golang.org/x/mod v0.22.0 // indirect + golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect + golang.org/x/mod v0.23.0 // indirect golang.org/x/net v0.34.0 // indirect - golang.org/x/sys v0.29.0 // indirect - golang.org/x/text v0.21.0 // indirect + golang.org/x/sys v0.30.0 // indirect + golang.org/x/text v0.22.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/src/product-catalog/go.sum b/src/product-catalog/go.sum index 44e411ea4b..7ca4a6b059 100644 --- a/src/product-catalog/go.sum +++ b/src/product-catalog/go.sum @@ -2,8 +2,8 @@ buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901 buf.build/gen/go/open-feature/flagd/connectrpc/go v1.17.0-20240906125204-0a6a901b42e8.1/go.mod h1:jKw7gioqYsWaHUKr5Ja6MiadsXcrGJxQ86gucJ0luUA= buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2 h1:D3HI5RQbqgffyf+Z77+hReDx5kigFVAKGvttULD9/ms= buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2/go.mod h1:b9rfG6rbGXZAlLwQwedvZ0kI0nUcR+aLaYF70pj920E= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1 h1:0vXmOkGv8nO5H1W8TkSz+GtZhvD2LNXiQaiucEio6vk= -buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.4-20250127221518-be6d1143b690.1/go.mod h1:wemFLfCpuNfhrBQ7NwzbtYxbg+IihAYqJcNeS+fLpLI= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.5-20250127221518-be6d1143b690.1 h1:eZKupK8gUTuc6zifAFQon8Gnt44fR4cd0GnTWjELvEw= +buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.5-20250127221518-be6d1143b690.1/go.mod h1:wJvVIADHM0IaBc5sYf8wgMMgSHi0nAtc6rgr5rfizhA= connectrpc.com/connect v1.18.1 h1:PAg7CjSAGvscaf6YZKUefjoih5Z/qYkyaTrBW8xvYPw= connectrpc.com/connect v1.18.1/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8= connectrpc.com/otelconnect v0.7.1 h1:scO5pOb0i4yUE66CnNrHeK1x51yq0bE0ehPg6WvzXJY= @@ -16,8 +16,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/diegoholiveira/jsonlogic/v3 v3.7.3 h1:orvGaTW5Qdcowpr7vgfMNuqYNjQYcqtw9W1Bk4QyI38= -github.com/diegoholiveira/jsonlogic/v3 v3.7.3/go.mod h1:OYRb6FSTVmMM+MNQ7ElmMsczyNSepw+OU4Z8emDSi4w= +github.com/diegoholiveira/jsonlogic/v3 v3.7.4 h1:92HSmB9bwM/o0ZvrCpcvTP2EsPXSkKtAniIr2W/dcIM= +github.com/diegoholiveira/jsonlogic/v3 v3.7.4/go.mod h1:OYRb6FSTVmMM+MNQ7ElmMsczyNSepw+OU4Z8emDSi4w= github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= @@ -72,14 +72,14 @@ github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5 h1:0RKCLYeQpvSsKR95kc894tm8GAZmq7bcG48v0KJ0HCs= github.com/open-feature/flagd-schemas v0.2.9-0.20250127221449-bb763438abc5/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= -github.com/open-feature/flagd/core v0.11.1 h1:0qBVXcRBZOFoZ5lNK/Yba2IyUDdxUHcLsv5OhUJtltA= -github.com/open-feature/flagd/core v0.11.1/go.mod h1:yzPjp7D9wNusvOyKt8wBND5PQGslcu+5e+xmaIBGgLE= +github.com/open-feature/flagd/core v0.11.2 h1:3LAuLR2vXpBF80RwwCAu9JX898JasfPH7ErJEf5C5YA= +github.com/open-feature/flagd/core v0.11.2/go.mod h1:rTdYFyLGP1tGwxo0X26ygIrC31nINCv8hcCq+vhFD0E= github.com/open-feature/go-sdk v1.14.1 h1:jcxjCIG5Up3XkgYwWN5Y/WWfc6XobOhqrIwjyDBsoQo= github.com/open-feature/go-sdk v1.14.1/go.mod h1:t337k0VB/t/YxJ9S0prT30ISUHwYmUd/jhUZgFcOvGg= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 h1:1+YZs4PjvIX2vGjg3FenuXJpN8m83jiTAdfudUjAQuU= github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4/go.mod h1:QiuIhaGRUFNmW+w1q0OaYLm92lfm//aJr4uTPQonSGQ= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5 h1:ddHmyboKzvCWYWEBKHiH39eRPdynuUkNPsPumRm/wrE= -github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.5/go.mod h1:IFTzm7V7Gr0EX3AYA+SEGgMujqs2D45My6oZqmjQ2B4= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.6 h1:5LZkT79u5JEkh4KLYqO92vog2E1aTAhCjbMZQvBIXOo= +github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.6/go.mod h1:W1aiixVJlJVpNsMAryZv9dW01kW+Hg+gVvVd3tcZz/Y= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -146,12 +146,12 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c h1:KL/ZBHXgKGVmuZBZ01Lt57yE5ws8ZPSkkihmEyq7FXc= -golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac h1:l5+whBCLH3iH2ZNHYLbAe58bo7yrN4mVcnkHDYz5vvs= +golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac/go.mod h1:hH+7mtFmImwwcMvScyxUhjuVHR3HGaDPMn9rMSUUbxo= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= +golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -168,18 +168,18 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= -golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= -golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= +golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= +golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From c9659fa5672e7f576fc40e135aa9d4d653837ee9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 21:12:01 -0500 Subject: [PATCH 145/178] build(deps): bump the pip-production-dependencies group across 3 directories with 3 updates (#2075) Bumps the pip-production-dependencies group with 3 updates in the /src directory: [flask-cors](https://github.com/corydolphin/flask-cors), [locust](https://github.com/locustio/locust) and [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib). Bumps the pip-production-dependencies group with 3 updates in the /src/load-generator directory: [flask-cors](https://github.com/corydolphin/flask-cors), [locust](https://github.com/locustio/locust) and [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib). Bumps the pip-production-dependencies group with 1 update in the /src/recommendation directory: [openfeature-hooks-opentelemetry](https://github.com/open-feature/python-sdk-contrib). Updates `flask-cors` from 5.0.0 to 5.0.1 - [Release notes](https://github.com/corydolphin/flask-cors/releases) - [Changelog](https://github.com/corydolphin/flask-cors/blob/main/CHANGELOG.md) - [Commits](https://github.com/corydolphin/flask-cors/compare/5.0.0...5.0.1) Updates `locust` from 2.32.10 to 2.33.0 - [Release notes](https://github.com/locustio/locust/releases) - [Changelog](https://github.com/locustio/locust/blob/master/CHANGELOG.md) - [Commits](https://github.com/locustio/locust/compare/2.32.10...2.33.0) Updates `openfeature-hooks-opentelemetry` from 0.1.3 to 0.2.0 - [Release notes](https://github.com/open-feature/python-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/python-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.1.3...openfeature-hooks-opentelemetry/v0.2.0) Updates `flask-cors` from 5.0.0 to 5.0.1 - [Release notes](https://github.com/corydolphin/flask-cors/releases) - [Changelog](https://github.com/corydolphin/flask-cors/blob/main/CHANGELOG.md) - [Commits](https://github.com/corydolphin/flask-cors/compare/5.0.0...5.0.1) Updates `locust` from 2.32.10 to 2.33.0 - [Release notes](https://github.com/locustio/locust/releases) - [Changelog](https://github.com/locustio/locust/blob/master/CHANGELOG.md) - [Commits](https://github.com/locustio/locust/compare/2.32.10...2.33.0) Updates `openfeature-hooks-opentelemetry` from 0.1.3 to 0.2.0 - [Release notes](https://github.com/open-feature/python-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/python-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.1.3...openfeature-hooks-opentelemetry/v0.2.0) Updates `openfeature-hooks-opentelemetry` from 0.1.3 to 0.2.0 - [Release notes](https://github.com/open-feature/python-sdk-contrib/releases) - [Changelog](https://github.com/open-feature/python-sdk-contrib/blob/main/release-please-config.json) - [Commits](https://github.com/open-feature/python-sdk-contrib/compare/openfeature-hooks-opentelemetry/v0.1.3...openfeature-hooks-opentelemetry/v0.2.0) --- updated-dependencies: - dependency-name: flask-cors dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: locust dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: openfeature-hooks-opentelemetry dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: flask-cors dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: locust dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: openfeature-hooks-opentelemetry dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: openfeature-hooks-opentelemetry dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/load-generator/requirements.txt | 6 +++--- src/recommendation/requirements.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/load-generator/requirements.txt b/src/load-generator/requirements.txt index 54f9fe48ec..8201b094aa 100644 --- a/src/load-generator/requirements.txt +++ b/src/load-generator/requirements.txt @@ -7,7 +7,7 @@ configargparse==1.7 deprecated==1.2.18 flask==3.1.0 flask-basicauth==0.2.0 -flask-cors==5.0.0 +flask-cors==5.0.1 gevent==24.11.1 geventhttpclient==2.3.3 googleapis-common-protos==1.68.0 @@ -15,7 +15,7 @@ greenlet==3.1.1 idna==3.10 itsdangerous==2.2.0 jinja2==3.1.5 -locust==2.32.10 +locust==2.33.0 locust-plugins[playwright]==4.5.3 markupsafe==3.0.2 msgpack==1.1.0 @@ -32,7 +32,7 @@ opentelemetry-semantic-conventions==0.51b0 opentelemetry-util-http==0.51b0 openfeature-sdk==0.8.0 openfeature-provider-flagd==0.1.5 -openfeature-hooks-opentelemetry==0.1.3 +openfeature-hooks-opentelemetry==0.2.0 protobuf==5.29.3 psutil==6.1.1 pyzmq==26.2.1 diff --git a/src/recommendation/requirements.txt b/src/recommendation/requirements.txt index 31dae3ac51..ddde052525 100644 --- a/src/recommendation/requirements.txt +++ b/src/recommendation/requirements.txt @@ -6,6 +6,6 @@ python-dotenv==1.0.1 python-json-logger==3.2.1 openfeature-sdk==0.8.0 openfeature-provider-flagd==0.2.0 -openfeature-hooks-opentelemetry==0.1.3 +openfeature-hooks-opentelemetry==0.2.0 psutil==6.1.1 # Importing this will also import opentelemetry-instrumentation-system-metrics when running opentelemetry-bootstrap From e13911de4f33bde47dc666f3067c3fbde1b20bab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 21:17:09 -0500 Subject: [PATCH 146/178] build(deps): bump the npm-production-dependencies group across 2 directories with 8 updates (#2076) Bumps the npm-production-dependencies group with 1 update in the /src/flagd-ui directory: [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss). Bumps the npm-production-dependencies group with 7 updates in the /src/payment directory: | Package | From | To | | --- | --- | --- | | [@opentelemetry/auto-instrumentations-node](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.56.0` | `0.56.1` | | [@opentelemetry/resource-detector-alibaba-cloud](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.30.0` | `0.30.1` | | [@opentelemetry/resource-detector-aws](https://github.com/open-telemetry/opentelemetry-js-contrib) | `1.11.0` | `1.12.0` | | [@opentelemetry/resource-detector-container](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.6.0` | `0.6.1` | | [@opentelemetry/resource-detector-gcp](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.33.0` | `0.33.1` | | [uuid](https://github.com/uuidjs/uuid) | `11.0.5` | `11.1.0` | | [@opentelemetry/instrumentation-runtime-node](https://github.com/open-telemetry/opentelemetry-js-contrib) | `0.12.1` | `0.12.2` | Updates `@tailwindcss/postcss` from 4.0.6 to 4.0.8 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.0.8/packages/@tailwindcss-postcss) Updates `@opentelemetry/auto-instrumentations-node` from 0.56.0 to 0.56.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/auto-instrumentations-node-v0.56.0...auto-instrumentations-node-v0.56.1) Updates `@opentelemetry/resource-detector-alibaba-cloud` from 0.30.0 to 0.30.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/host-metrics-v0.30.0...host-metrics-v0.30.1) Updates `@opentelemetry/resource-detector-aws` from 1.11.0 to 1.12.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-aws-v1.11.0...resource-detector-aws-v1.12.0) Updates `@opentelemetry/resource-detector-container` from 0.6.0 to 0.6.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/v0.6.0...v0.6.1) Updates `@opentelemetry/resource-detector-gcp` from 0.33.0 to 0.33.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/host-metrics-v0.33.0...host-metrics-v0.33.1) Updates `uuid` from 11.0.5 to 11.1.0 - [Release notes](https://github.com/uuidjs/uuid/releases) - [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md) - [Commits](https://github.com/uuidjs/uuid/compare/v11.0.5...v11.1.0) Updates `@opentelemetry/instrumentation-runtime-node` from 0.12.1 to 0.12.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-js-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/v0.12.1...instrumentation-runtime-node-v0.12.2) --- updated-dependencies: - dependency-name: "@tailwindcss/postcss" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/auto-instrumentations-node" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-alibaba-cloud" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-aws" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-container" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/resource-detector-gcp" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: uuid dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: "@opentelemetry/instrumentation-runtime-node" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/flagd-ui/package-lock.json | 144 ++++----- src/flagd-ui/package.json | 2 +- src/payment/package-lock.json | 541 ++++++++++++++++++--------------- src/payment/package.json | 14 +- 4 files changed, 365 insertions(+), 336 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 5f21bdd883..3fde70ec09 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -8,7 +8,7 @@ "name": "flagd-ui", "version": "0.1.0", "dependencies": { - "@tailwindcss/postcss": "^4.0.6", + "@tailwindcss/postcss": "^4.0.8", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", "next": "15.1.7", @@ -1058,48 +1058,42 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.6.tgz", - "integrity": "sha512-jb6E0WeSq7OQbVYcIJ6LxnZTeC4HjMvbzFBMCrQff4R50HBlo/obmYNk6V2GCUXDeqiXtvtrQgcIbT+/boB03Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.8.tgz", + "integrity": "sha512-FKArQpbrbwv08TNT0k7ejYXpF+R8knZFAatNc0acOxbgeqLzwb86r+P3LGOjIeI3Idqe9CVkZrh4GlsJLJKkkw==", "license": "MIT", "dependencies": { - "enhanced-resolve": "^5.18.0", + "enhanced-resolve": "^5.18.1", "jiti": "^2.4.2", - "tailwindcss": "4.0.6" + "tailwindcss": "4.0.8" } }, - "node_modules/@tailwindcss/node/node_modules/tailwindcss": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.6.tgz", - "integrity": "sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw==", - "license": "MIT" - }, "node_modules/@tailwindcss/oxide": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.6.tgz", - "integrity": "sha512-lVyKV2y58UE9CeKVcYykULe9QaE1dtKdxDEdrTPIdbzRgBk6bdxHNAoDqvcqXbIGXubn3VOl1O/CFF77v/EqSA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.8.tgz", + "integrity": "sha512-KfMcuAu/Iw+DcV1e8twrFyr2yN8/ZDC/odIGta4wuuJOGkrkHZbvJvRNIbQNhGh7erZTYV6Ie0IeD6WC9Y8Hcw==", "license": "MIT", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.0.6", - "@tailwindcss/oxide-darwin-arm64": "4.0.6", - "@tailwindcss/oxide-darwin-x64": "4.0.6", - "@tailwindcss/oxide-freebsd-x64": "4.0.6", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.6", - "@tailwindcss/oxide-linux-arm64-gnu": "4.0.6", - "@tailwindcss/oxide-linux-arm64-musl": "4.0.6", - "@tailwindcss/oxide-linux-x64-gnu": "4.0.6", - "@tailwindcss/oxide-linux-x64-musl": "4.0.6", - "@tailwindcss/oxide-win32-arm64-msvc": "4.0.6", - "@tailwindcss/oxide-win32-x64-msvc": "4.0.6" + "@tailwindcss/oxide-android-arm64": "4.0.8", + "@tailwindcss/oxide-darwin-arm64": "4.0.8", + "@tailwindcss/oxide-darwin-x64": "4.0.8", + "@tailwindcss/oxide-freebsd-x64": "4.0.8", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.8", + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.8", + "@tailwindcss/oxide-linux-arm64-musl": "4.0.8", + "@tailwindcss/oxide-linux-x64-gnu": "4.0.8", + "@tailwindcss/oxide-linux-x64-musl": "4.0.8", + "@tailwindcss/oxide-win32-arm64-msvc": "4.0.8", + "@tailwindcss/oxide-win32-x64-msvc": "4.0.8" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.6.tgz", - "integrity": "sha512-xDbym6bDPW3D2XqQqX3PjqW3CKGe1KXH7Fdkc60sX5ZLVUbzPkFeunQaoP+BuYlLc2cC1FoClrIRYnRzof9Sow==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.8.tgz", + "integrity": "sha512-We7K79+Sm4mwJHk26Yzu/GAj7C7myemm7PeXvpgMxyxO70SSFSL3uCcqFbz9JA5M5UPkrl7N9fkBe/Y0iazqpA==", "cpu": [ "arm64" ], @@ -1113,9 +1107,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.6.tgz", - "integrity": "sha512-1f71/ju/tvyGl5c2bDkchZHy8p8EK/tDHCxlpYJ1hGNvsYihZNurxVpZ0DefpN7cNc9RTT8DjrRoV8xXZKKRjg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.8.tgz", + "integrity": "sha512-Lv9Isi2EwkCTG1sRHNDi0uRNN1UGFdEThUAGFrydRmQZnraGLMjN8gahzg2FFnOizDl7LB2TykLUuiw833DSNg==", "cpu": [ "arm64" ], @@ -1129,9 +1123,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.6.tgz", - "integrity": "sha512-s/hg/ZPgxFIrGMb0kqyeaqZt505P891buUkSezmrDY6lxv2ixIELAlOcUVTkVh245SeaeEiUVUPiUN37cwoL2g==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.8.tgz", + "integrity": "sha512-fWfywfYIlSWtKoqWTjukTHLWV3ARaBRjXCC2Eo0l6KVpaqGY4c2y8snUjp1xpxUtpqwMvCvFWFaleMoz1Vhzlw==", "cpu": [ "x64" ], @@ -1145,9 +1139,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.6.tgz", - "integrity": "sha512-Z3Wo8FWZnmio8+xlcbb7JUo/hqRMSmhQw8IGIRoRJ7GmLR0C+25Wq+bEX/135xe/yEle2lFkhu9JBHd4wZYiig==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.8.tgz", + "integrity": "sha512-SO+dyvjJV9G94bnmq2288Ke0BIdvrbSbvtPLaQdqjqHR83v5L2fWADyFO+1oecHo9Owsk8MxcXh1agGVPIKIqw==", "cpu": [ "x64" ], @@ -1161,9 +1155,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.6.tgz", - "integrity": "sha512-SNSwkkim1myAgmnbHs4EjXsPL7rQbVGtjcok5EaIzkHkCAVK9QBQsWeP2Jm2/JJhq4wdx8tZB9Y7psMzHYWCkA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.8.tgz", + "integrity": "sha512-ZSHggWiEblQNV69V0qUK5vuAtHP+I+S2eGrKGJ5lPgwgJeAd6GjLsVBN+Mqn2SPVfYM3BOpS9jX/zVg9RWQVDQ==", "cpu": [ "arm" ], @@ -1177,9 +1171,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.6.tgz", - "integrity": "sha512-tJ+mevtSDMQhKlwCCuhsFEFg058kBiSy4TkoeBG921EfrHKmexOaCyFKYhVXy4JtkaeeOcjJnCLasEeqml4i+Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.8.tgz", + "integrity": "sha512-xWpr6M0OZLDNsr7+bQz+3X7zcnDJZJ1N9gtBWCtfhkEtDjjxYEp+Lr5L5nc/yXlL4MyCHnn0uonGVXy3fhxaVA==", "cpu": [ "arm64" ], @@ -1193,9 +1187,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.6.tgz", - "integrity": "sha512-IoArz1vfuTR4rALXMUXI/GWWfx2EaO4gFNtBNkDNOYhlTD4NVEwE45nbBoojYiTulajI4c2XH8UmVEVJTOJKxA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.8.tgz", + "integrity": "sha512-5tz2IL7LN58ssGEq7h/staD7pu/izF/KeMWdlJ86WDe2Ah46LF3ET6ZGKTr5eZMrnEA0M9cVFuSPprKRHNgjeg==", "cpu": [ "arm64" ], @@ -1209,9 +1203,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.6.tgz", - "integrity": "sha512-QtsUfLkEAeWAC3Owx9Kg+7JdzE+k9drPhwTAXbXugYB9RZUnEWWx5x3q/au6TvUYcL+n0RBqDEO2gucZRvRFgQ==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.8.tgz", + "integrity": "sha512-KSzMkhyrxAQyY2o194NKVKU9j/c+NFSoMvnHWFaNHKi3P1lb+Vq1UC19tLHrmxSkKapcMMu69D7+G1+FVGNDXQ==", "cpu": [ "x64" ], @@ -1225,9 +1219,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.6.tgz", - "integrity": "sha512-QthvJqIji2KlGNwLcK/PPYo7w1Wsi/8NK0wAtRGbv4eOPdZHkQ9KUk+oCoP20oPO7i2a6X1aBAFQEL7i08nNMA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.8.tgz", + "integrity": "sha512-yFYKG5UtHTRimjtqxUWXBgI4Tc6NJe3USjRIVdlTczpLRxq/SFwgzGl5JbatCxgSRDPBFwRrNPxq+ukfQFGdrw==", "cpu": [ "x64" ], @@ -1241,9 +1235,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.6.tgz", - "integrity": "sha512-+oka+dYX8jy9iP00DJ9Y100XsqvbqR5s0yfMZJuPR1H/lDVtDfsZiSix1UFBQ3X1HWxoEEl6iXNJHWd56TocVw==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.8.tgz", + "integrity": "sha512-tndGujmCSba85cRCnQzXgpA2jx5gXimyspsUYae5jlPyLRG0RjXbDshFKOheVXU4TLflo7FSG8EHCBJ0EHTKdQ==", "cpu": [ "arm64" ], @@ -1257,9 +1251,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.6.tgz", - "integrity": "sha512-+o+juAkik4p8Ue/0LiflQXPmVatl6Av3LEZXpBTfg4qkMIbZdhCGWFzHdt2NjoMiLOJCFDddoV6GYaimvK1Olw==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.8.tgz", + "integrity": "sha512-T77jroAc0p4EHVVgTUiNeFn6Nj3jtD3IeNId2X+0k+N1XxfNipy81BEkYErpKLiOkNhpNFjPee8/ZVas29b2OQ==", "cpu": [ "x64" ], @@ -1273,25 +1267,19 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.6.tgz", - "integrity": "sha512-noTaGPHjGCXTCc487TWnfAEN0VMjqDAecssWDOsfxV2hFrcZR0AHthX7IdY/0xHTg/EtpmIPdssddlZ5/B7JnQ==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.8.tgz", + "integrity": "sha512-SUwlrXjn1ycmUbA0o0n3Y0LqlXqxN5R8HR+ti+OBbRS79wl2seDmiypEs3xJCuQXe07ol81s1AmRMitBmPveJA==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "^4.0.6", - "@tailwindcss/oxide": "^4.0.6", + "@tailwindcss/node": "4.0.8", + "@tailwindcss/oxide": "4.0.8", "lightningcss": "^1.29.1", "postcss": "^8.4.41", - "tailwindcss": "4.0.6" + "tailwindcss": "4.0.8" } }, - "node_modules/@tailwindcss/postcss/node_modules/tailwindcss": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.6.tgz", - "integrity": "sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw==", - "license": "MIT" - }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -2295,9 +2283,10 @@ "dev": true }, "node_modules/enhanced-resolve": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", - "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -5432,10 +5421,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.7.tgz", - "integrity": "sha512-yH5bPPyapavo7L+547h3c4jcBXcrKwybQRjwdEIVAd9iXRvy/3T1CC6XSQEgZtRySjKfqvo3Cc0ZF1DTheuIdA==", - "dev": true, + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.8.tgz", + "integrity": "sha512-Me7N5CKR+D2A1xdWA5t5+kjjT7bwnxZOE6/yDI/ixJdJokszsn2n++mdU5yJwrsTpqFX2B9ZNMBJDwcqk9C9lw==", "license": "MIT" }, "node_modules/tapable": { diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 2a94178799..d5ea3f4c5f 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@tailwindcss/postcss": "^4.0.6", + "@tailwindcss/postcss": "^4.0.8", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", "next": "15.1.7", diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index 728816c4c8..a7dbe4ebc4 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -13,22 +13,22 @@ "@openfeature/flagd-provider": "0.13.3", "@openfeature/server-sdk": "1.17.1", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.56.0", + "@opentelemetry/auto-instrumentations-node": "0.56.1", "@opentelemetry/core": "1.30.1", "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.2", "@opentelemetry/exporter-trace-otlp-grpc": "0.57.2", - "@opentelemetry/instrumentation-runtime-node": "0.12.1", - "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", - "@opentelemetry/resource-detector-aws": "1.11.0", - "@opentelemetry/resource-detector-container": "0.6.0", - "@opentelemetry/resource-detector-gcp": "0.33.0", + "@opentelemetry/instrumentation-runtime-node": "0.12.2", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.1", + "@opentelemetry/resource-detector-aws": "1.12.0", + "@opentelemetry/resource-detector-container": "0.6.1", + "@opentelemetry/resource-detector-gcp": "0.33.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-node": "0.57.2", "grpc-js-health-check": "1.2.2", "pino": "9.6.0", "simple-card-validator": "1.1.0", - "uuid": "11.0.5" + "uuid": "11.1.0" } }, "node_modules/@grpc/grpc-js": { @@ -165,58 +165,58 @@ } }, "node_modules/@opentelemetry/auto-instrumentations-node": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.56.0.tgz", - "integrity": "sha512-d1X3DQY0+VmhNUir/3U3JO6Uh0FOSm8G91zsPzVVKc6NGDwmHP6Dn7PMVH70O6FZ0yErzlHqRx8vkNiAsTWt5A==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", - "@opentelemetry/instrumentation-amqplib": "^0.46.0", - "@opentelemetry/instrumentation-aws-lambda": "^0.50.2", - "@opentelemetry/instrumentation-aws-sdk": "^0.49.0", - "@opentelemetry/instrumentation-bunyan": "^0.45.0", - "@opentelemetry/instrumentation-cassandra-driver": "^0.45.0", - "@opentelemetry/instrumentation-connect": "^0.43.0", - "@opentelemetry/instrumentation-cucumber": "^0.14.0", - "@opentelemetry/instrumentation-dataloader": "^0.16.0", - "@opentelemetry/instrumentation-dns": "^0.43.0", - "@opentelemetry/instrumentation-express": "^0.47.0", - "@opentelemetry/instrumentation-fastify": "^0.44.1", - "@opentelemetry/instrumentation-fs": "^0.19.0", - "@opentelemetry/instrumentation-generic-pool": "^0.43.0", - "@opentelemetry/instrumentation-graphql": "^0.47.0", - "@opentelemetry/instrumentation-grpc": "^0.57.0", - "@opentelemetry/instrumentation-hapi": "^0.45.1", - "@opentelemetry/instrumentation-http": "^0.57.0", - "@opentelemetry/instrumentation-ioredis": "^0.47.0", - "@opentelemetry/instrumentation-kafkajs": "^0.7.0", - "@opentelemetry/instrumentation-knex": "^0.44.0", - "@opentelemetry/instrumentation-koa": "^0.47.0", - "@opentelemetry/instrumentation-lru-memoizer": "^0.44.0", - "@opentelemetry/instrumentation-memcached": "^0.43.0", - "@opentelemetry/instrumentation-mongodb": "^0.51.0", - "@opentelemetry/instrumentation-mongoose": "^0.46.0", - "@opentelemetry/instrumentation-mysql": "^0.45.0", - "@opentelemetry/instrumentation-mysql2": "^0.45.1", - "@opentelemetry/instrumentation-nestjs-core": "^0.44.0", - "@opentelemetry/instrumentation-net": "^0.43.0", - "@opentelemetry/instrumentation-pg": "^0.51.0", - "@opentelemetry/instrumentation-pino": "^0.46.0", - "@opentelemetry/instrumentation-redis": "^0.46.0", - "@opentelemetry/instrumentation-redis-4": "^0.46.0", - "@opentelemetry/instrumentation-restify": "^0.45.0", - "@opentelemetry/instrumentation-router": "^0.44.0", - "@opentelemetry/instrumentation-socket.io": "^0.46.0", - "@opentelemetry/instrumentation-tedious": "^0.18.0", - "@opentelemetry/instrumentation-undici": "^0.10.0", - "@opentelemetry/instrumentation-winston": "^0.44.0", - "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", - "@opentelemetry/resource-detector-aws": "1.11.0", - "@opentelemetry/resource-detector-azure": "^0.6.0", - "@opentelemetry/resource-detector-container": "0.6.0", - "@opentelemetry/resource-detector-gcp": "0.33.0", + "version": "0.56.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.56.1.tgz", + "integrity": "sha512-4cK0+unfkXRRbQQg2r9K3ki8JlE0j9Iw8+4DZEkChShAnmviiE+/JMgHGvK+VVcLrSlgV6BBHv4+ZTLukQwhkA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/instrumentation-amqplib": "^0.46.1", + "@opentelemetry/instrumentation-aws-lambda": "^0.50.3", + "@opentelemetry/instrumentation-aws-sdk": "^0.49.1", + "@opentelemetry/instrumentation-bunyan": "^0.45.1", + "@opentelemetry/instrumentation-cassandra-driver": "^0.45.1", + "@opentelemetry/instrumentation-connect": "^0.43.1", + "@opentelemetry/instrumentation-cucumber": "^0.14.1", + "@opentelemetry/instrumentation-dataloader": "^0.16.1", + "@opentelemetry/instrumentation-dns": "^0.43.1", + "@opentelemetry/instrumentation-express": "^0.47.1", + "@opentelemetry/instrumentation-fastify": "^0.44.2", + "@opentelemetry/instrumentation-fs": "^0.19.1", + "@opentelemetry/instrumentation-generic-pool": "^0.43.1", + "@opentelemetry/instrumentation-graphql": "^0.47.1", + "@opentelemetry/instrumentation-grpc": "^0.57.1", + "@opentelemetry/instrumentation-hapi": "^0.45.2", + "@opentelemetry/instrumentation-http": "^0.57.1", + "@opentelemetry/instrumentation-ioredis": "^0.47.1", + "@opentelemetry/instrumentation-kafkajs": "^0.7.1", + "@opentelemetry/instrumentation-knex": "^0.44.1", + "@opentelemetry/instrumentation-koa": "^0.47.1", + "@opentelemetry/instrumentation-lru-memoizer": "^0.44.1", + "@opentelemetry/instrumentation-memcached": "^0.43.1", + "@opentelemetry/instrumentation-mongodb": "^0.52.0", + "@opentelemetry/instrumentation-mongoose": "^0.46.1", + "@opentelemetry/instrumentation-mysql": "^0.45.1", + "@opentelemetry/instrumentation-mysql2": "^0.45.2", + "@opentelemetry/instrumentation-nestjs-core": "^0.44.1", + "@opentelemetry/instrumentation-net": "^0.43.1", + "@opentelemetry/instrumentation-pg": "^0.51.1", + "@opentelemetry/instrumentation-pino": "^0.46.1", + "@opentelemetry/instrumentation-redis": "^0.46.1", + "@opentelemetry/instrumentation-redis-4": "^0.46.1", + "@opentelemetry/instrumentation-restify": "^0.45.1", + "@opentelemetry/instrumentation-router": "^0.44.1", + "@opentelemetry/instrumentation-socket.io": "^0.46.1", + "@opentelemetry/instrumentation-tedious": "^0.18.1", + "@opentelemetry/instrumentation-undici": "^0.10.1", + "@opentelemetry/instrumentation-winston": "^0.44.1", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.1", + "@opentelemetry/resource-detector-aws": "1.12.0", + "@opentelemetry/resource-detector-azure": "^0.6.1", + "@opentelemetry/resource-detector-container": "0.6.1", + "@opentelemetry/resource-detector-gcp": "0.33.1", "@opentelemetry/resources": "^1.24.0", - "@opentelemetry/sdk-node": "^0.57.0" + "@opentelemetry/sdk-node": "^0.57.1" }, "engines": { "node": ">=14" @@ -508,12 +508,13 @@ } }, "node_modules/@opentelemetry/instrumentation-amqplib": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.0.tgz", - "integrity": "sha512-04VHHV1KIN/c1wLWwzmLI02d/welgscBJ4BuDqrHaxd+ZIdlVXK9UYQsYf3JwSeF52z/4YoSzr8bfdVBSWoMAg==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.1.tgz", + "integrity": "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -524,14 +525,14 @@ } }, "node_modules/@opentelemetry/instrumentation-aws-lambda": { - "version": "0.50.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.50.2.tgz", - "integrity": "sha512-jz1a7t2q0SsiztEMyZjFLEFC4pOQ+1C588gWzl878k9Qr6TI1Wu3sa7/dikxJmeRIETcOTUilaa2Otxh6HUVlA==", + "version": "0.50.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.50.3.tgz", + "integrity": "sha512-kotm/mRvSWUauudxcylc5YCDei+G/r+jnOH6q5S99aPLQ/Ms8D2yonMIxEJUILIPlthEmwLYxkw3ualWzMjm/A==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", - "@types/aws-lambda": "8.10.143" + "@types/aws-lambda": "8.10.147" }, "engines": { "node": ">=14" @@ -541,13 +542,14 @@ } }, "node_modules/@opentelemetry/instrumentation-aws-sdk": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.49.0.tgz", - "integrity": "sha512-m3yC3ni4Yo8tggbZgygS/ccAP9e/EYqsMwzooHiIymbnyZwDAB7kMZ3OrjcLVPCFx9gjNMDKW4MdwOPC0vTEeQ==", + "version": "0.49.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.49.1.tgz", + "integrity": "sha512-Vbj4BYeV/1K4Pbbfk+gQ8gwYL0w+tBeUwG88cOxnF7CLPO1XnskGV8Q3Gzut2Ah/6Dg17dBtlzEqL3UiFP2Z6A==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", - "@opentelemetry/propagation-utils": "^0.30.15", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/propagation-utils": "^0.30.16", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -558,13 +560,14 @@ } }, "node_modules/@opentelemetry/instrumentation-bunyan": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.45.0.tgz", - "integrity": "sha512-K3ZleoOxKUzGjt0TfAT1jfSNcgyt7+toqjhWymPf2tsGUETXxaxGDzAoNepWcfIkgPauJLPpRLLKcP6LjYLILw==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.45.1.tgz", + "integrity": "sha512-T9POV9ccS41UjpsjLrJ4i0m8LfplBiN3dMeH9XZ2btiDrjoaWtDrst6tNb1avetBjkeshOuBp1EWKP22EVSr0g==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "^0.57.0", - "@opentelemetry/instrumentation": "^0.57.0", - "@types/bunyan": "1.8.9" + "@opentelemetry/api-logs": "^0.57.1", + "@opentelemetry/instrumentation": "^0.57.1", + "@types/bunyan": "1.8.11" }, "engines": { "node": ">=14" @@ -574,11 +577,12 @@ } }, "node_modules/@opentelemetry/instrumentation-cassandra-driver": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.45.0.tgz", - "integrity": "sha512-IKoA0lLfF7EyIL85MfqzvfAa/Oz9zHNFXwzSiQ6Iqej89BMyOm3eYaAsyUDAvgiLG12M189temMMyRuR07YsZg==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.45.1.tgz", + "integrity": "sha512-RqnP0rK2hcKK1AKcmYvedLiL6G5TvFGiSUt2vI9wN0cCBdTt9Y9+wxxY19KoGxq7e9T/aHow6P5SUhCVI1sHvQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -589,14 +593,15 @@ } }, "node_modules/@opentelemetry/instrumentation-connect": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.0.tgz", - "integrity": "sha512-Q57JGpH6T4dkYHo9tKXONgLtxzsh1ZEW5M9A/OwKrZFyEpLqWgjhcZ3hIuVvDlhb426iDF1f9FPToV/mi5rpeA==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.1.tgz", + "integrity": "sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", - "@types/connect": "3.4.36" + "@types/connect": "3.4.38" }, "engines": { "node": ">=14" @@ -606,12 +611,12 @@ } }, "node_modules/@opentelemetry/instrumentation-cucumber": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.14.0.tgz", - "integrity": "sha512-i/GlurL1IM+CnbmItW8kx59YxAp0wu/YQkzQQRU/YGmUjym5g+/dOVjnk/K46lAU49Nn1XyFd7S3ZNf83PHL2Q==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.14.1.tgz", + "integrity": "sha512-ybO+tmH85pDO0ywTskmrMtZcccKyQr7Eb7wHy1keR2HFfx46SzZbjHo1AuGAX//Hook3gjM7+w211gJ2bwKe1Q==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -622,11 +627,12 @@ } }, "node_modules/@opentelemetry/instrumentation-dataloader": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.0.tgz", - "integrity": "sha512-88+qCHZC02up8PwKHk0UQKLLqGGURzS3hFQBZC7PnGwReuoKjHXS1o29H58S+QkXJpkTr2GACbx8j6mUoGjNPA==", + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.1.tgz", + "integrity": "sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -636,11 +642,12 @@ } }, "node_modules/@opentelemetry/instrumentation-dns": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.43.0.tgz", - "integrity": "sha512-bGXTyBpjSYt6B7LEj0zMfWkoveGpYf5pVEgTZmDacsG49RdfdCH5PYt3C8MEMwYEFtu2dGdKdKa2LHfefIIDdg==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.43.1.tgz", + "integrity": "sha512-e/tMZYU1nc+k+J3259CQtqVZIPsPRSLNoAQbGEmSKrjLEY/KJSbpBZ17lu4dFVBzqoF1cZYIZxn9WPQxy4V9ng==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -650,12 +657,13 @@ } }, "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.0.tgz", - "integrity": "sha512-XFWVx6k0XlU8lu6cBlCa29ONtVt6ADEjmxtyAyeF2+rifk8uBJbk1La0yIVfI0DoKURGbaEDTNelaXG9l/lNNQ==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.1.tgz", + "integrity": "sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -666,13 +674,13 @@ } }, "node_modules/@opentelemetry/instrumentation-fastify": { - "version": "0.44.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.44.1.tgz", - "integrity": "sha512-RoVeMGKcNttNfXMSl6W4fsYoCAYP1vi6ZAWIGhBY+o7R9Y0afA7f9JJL0j8LHbyb0P0QhSYk+6O56OwI2k4iRQ==", + "version": "0.44.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.44.2.tgz", + "integrity": "sha512-arSp97Y4D2NWogoXRb8CzFK3W2ooVdvqRRtQDljFt9uC3zI6OuShgey6CVFC0JxT1iGjkAr1r4PDz23mWrFULQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -683,12 +691,13 @@ } }, "node_modules/@opentelemetry/instrumentation-fs": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.0.tgz", - "integrity": "sha512-JGwmHhBkRT2G/BYNV1aGI+bBjJu4fJUD/5/Jat0EWZa2ftrLV3YE8z84Fiij/wK32oMZ88eS8DI4ecLGZhpqsQ==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.1.tgz", + "integrity": "sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -698,11 +707,12 @@ } }, "node_modules/@opentelemetry/instrumentation-generic-pool": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.0.tgz", - "integrity": "sha512-at8GceTtNxD1NfFKGAuwtqM41ot/TpcLh+YsGe4dhf7gvv1HW/ZWdq6nfRtS6UjIvZJOokViqLPJ3GVtZItAnQ==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.1.tgz", + "integrity": "sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -712,11 +722,12 @@ } }, "node_modules/@opentelemetry/instrumentation-graphql": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.0.tgz", - "integrity": "sha512-Cc8SMf+nLqp0fi8oAnooNEfwZWFnzMiBHCGmDFYqmgjPylyLmi83b+NiTns/rKGwlErpW0AGPt0sMpkbNlzn8w==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.1.tgz", + "integrity": "sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -741,12 +752,13 @@ } }, "node_modules/@opentelemetry/instrumentation-hapi": { - "version": "0.45.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.1.tgz", - "integrity": "sha512-VH6mU3YqAKTePPfUPwfq4/xr049774qWtfTuJqVHoVspCLiT3bW+fCQ1toZxt6cxRPYASoYaBsMA3CWo8B8rcw==", + "version": "0.45.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.2.tgz", + "integrity": "sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -775,11 +787,12 @@ } }, "node_modules/@opentelemetry/instrumentation-ioredis": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.0.tgz", - "integrity": "sha512-4HqP9IBC8e7pW9p90P3q4ox0XlbLGme65YTrA3UTLvqvo4Z6b0puqZQP203YFu8m9rE/luLfaG7/xrwwqMUpJw==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.1.tgz", + "integrity": "sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, @@ -791,11 +804,12 @@ } }, "node_modules/@opentelemetry/instrumentation-kafkajs": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.0.tgz", - "integrity": "sha512-LB+3xiNzc034zHfCtgs4ITWhq6Xvdo8bsq7amR058jZlf2aXXDrN9SV4si4z2ya9QX4tz6r4eZJwDkXOp14/AQ==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.1.tgz", + "integrity": "sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -806,11 +820,12 @@ } }, "node_modules/@opentelemetry/instrumentation-knex": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.0.tgz", - "integrity": "sha512-SlT0+bLA0Lg3VthGje+bSZatlGHw/vwgQywx0R/5u9QC59FddTQSPJeWNw29M6f8ScORMeUOOTwihlQAn4GkJQ==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.1.tgz", + "integrity": "sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -821,12 +836,13 @@ } }, "node_modules/@opentelemetry/instrumentation-koa": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.0.tgz", - "integrity": "sha512-HFdvqf2+w8sWOuwtEXayGzdZ2vWpCKEQv5F7+2DSA74Te/Cv4rvb2E5So5/lh+ok4/RAIPuvCbCb/SHQFzMmbw==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.1.tgz", + "integrity": "sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -837,11 +853,12 @@ } }, "node_modules/@opentelemetry/instrumentation-lru-memoizer": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.0.tgz", - "integrity": "sha512-Tn7emHAlvYDFik3vGU0mdwvWJDwtITtkJ+5eT2cUquct6nIs+H8M47sqMJkCpyPe5QIBJoTOHxmc6mj9lz6zDw==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.1.tgz", + "integrity": "sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -851,11 +868,12 @@ } }, "node_modules/@opentelemetry/instrumentation-memcached": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.43.0.tgz", - "integrity": "sha512-qjldZMBpfxKwI4ODytX6raF1WE+Qov0wTW4+tkofjas1b8e0WmVs+Pw4/YlmjJNOKRLD1usYkP7QlmPLvyzZSA==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.43.1.tgz", + "integrity": "sha512-rK5YWC22gmsLp2aEbaPk5F+9r6BFFZuc9GTnW/ErrWpz2XNHUgeFInoPDg4t+Trs8OttIfn8XwkfFkSKqhxanw==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/memcached": "^2.2.6" }, @@ -867,11 +885,12 @@ } }, "node_modules/@opentelemetry/instrumentation-mongodb": { - "version": "0.51.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.51.0.tgz", - "integrity": "sha512-cMKASxCX4aFxesoj3WK8uoQ0YUrRvnfxaO72QWI2xLu5ZtgX/QvdGBlU3Ehdond5eb74c2s1cqRQUIptBnKz1g==", + "version": "0.52.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.52.0.tgz", + "integrity": "sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -882,12 +901,13 @@ } }, "node_modules/@opentelemetry/instrumentation-mongoose": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.0.tgz", - "integrity": "sha512-mtVv6UeaaSaWTeZtLo4cx4P5/ING2obSqfWGItIFSunQBrYROfhuVe7wdIrFUs2RH1tn2YYpAJyMaRe/bnTTIQ==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.1.tgz", + "integrity": "sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -898,11 +918,12 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.0.tgz", - "integrity": "sha512-tWWyymgwYcTwZ4t8/rLDfPYbOTF3oYB8SxnYMtIQ1zEf5uDm90Ku3i6U/vhaMyfHNlIHvDhvJh+qx5Nc4Z3Acg==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.1.tgz", + "integrity": "sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/mysql": "2.15.26" }, @@ -914,12 +935,12 @@ } }, "node_modules/@opentelemetry/instrumentation-mysql2": { - "version": "0.45.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.1.tgz", - "integrity": "sha512-9R/vxEc02vlSqyQSmXRTvFMZVht8vgSJokKhiWA3z8Idu0mmdKFKeHiuW5yRGxM/WOi+7DWqQfYM7zw/cJc3sA==", + "version": "0.45.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.2.tgz", + "integrity": "sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1" }, @@ -931,11 +952,12 @@ } }, "node_modules/@opentelemetry/instrumentation-nestjs-core": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.44.0.tgz", - "integrity": "sha512-t16pQ7A4WYu1yyQJZhRKIfUNvl5PAaF2pEteLvgJb/BWdd1oNuU1rOYt4S825kMy+0q4ngiX281Ss9qiwHfxFQ==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.44.1.tgz", + "integrity": "sha512-4TXaqJK27QXoMqrt4+hcQ6rKFd8B6V4JfrTJKnqBmWR1cbaqd/uwyl9yxhNH1JEkyo8GaBfdpBC4ZE4FuUhPmg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -946,11 +968,12 @@ } }, "node_modules/@opentelemetry/instrumentation-net": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.43.0.tgz", - "integrity": "sha512-jFzYpCGg1+s4uePNC86GcdzsYzDZpfVMDsHNZzw5MX6tMWyc2jtiXBFWed41HpWOtkIRU/SJd7KR0k1WjNZRuQ==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.43.1.tgz", + "integrity": "sha512-TaMqP6tVx9/SxlY81dHlSyP5bWJIKq+K7vKfk4naB/LX4LBePPY3++1s0edpzH+RfwN+tEGVW9zTb9ci0up/lQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -961,13 +984,13 @@ } }, "node_modules/@opentelemetry/instrumentation-pg": { - "version": "0.51.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.51.0.tgz", - "integrity": "sha512-/NStIcUWUofc11dL7tSgMk25NqvhtbHDCncgm+yc4iJF8Ste2Q/lwUitjfxqj4qWM280uFmBEtcmtMMjbjRU7Q==", + "version": "0.51.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.51.1.tgz", + "integrity": "sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1", "@types/pg": "8.6.1", @@ -981,13 +1004,14 @@ } }, "node_modules/@opentelemetry/instrumentation-pino": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.46.0.tgz", - "integrity": "sha512-TFjW24fwc/5KafDZuXbdViGiTym/6U6tDnOEkM5K9LIKsySMWb8xNIVE7y/6B8zDwImncEssNN1t42NixQJqug==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.46.1.tgz", + "integrity": "sha512-HB8gD/9CNAKlTV+mdZehnFC4tLUtQ7e+729oGq88e4WipxzZxmMYuRwZ2vzOA9/APtq+MRkERJ9PcoDqSIjZ+g==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "^0.57.0", + "@opentelemetry/api-logs": "^0.57.1", "@opentelemetry/core": "^1.25.0", - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -997,11 +1021,12 @@ } }, "node_modules/@opentelemetry/instrumentation-redis": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.46.0.tgz", - "integrity": "sha512-dXgSf+h+v3Bl4/NYzcSHG0NtqbXz74ph9J1ZBwxTnaB79u+C+ntfqtNt9jklIEAEZ1jR0jRCsVbiZyOpoCpTOg==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.46.1.tgz", + "integrity": "sha512-AN7OvlGlXmlvsgbLHs6dS1bggp6Fcki+GxgYZdSrb/DB692TyfjR7sVILaCe0crnP66aJuXsg9cge3hptHs9UA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, @@ -1013,11 +1038,12 @@ } }, "node_modules/@opentelemetry/instrumentation-redis-4": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.0.tgz", - "integrity": "sha512-aTUWbzbFMFeRODn3720TZO0tsh/49T8H3h8vVnVKJ+yE36AeW38Uj/8zykQ/9nO8Vrtjr5yKuX3uMiG/W8FKNw==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.1.tgz", + "integrity": "sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, @@ -1029,12 +1055,13 @@ } }, "node_modules/@opentelemetry/instrumentation-restify": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.45.0.tgz", - "integrity": "sha512-CJ5vq14Plh4W4382Jd/jpNEJStqwqbCzZH1Op4EZVPxXhYOwCafgyflOqjxXSzTvqzhaPDT+A079ix5ebQUlYw==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.45.1.tgz", + "integrity": "sha512-Zd6Go9iEa+0zcoA2vDka9r/plYKaT3BhD3ESIy4JNIzFWXeQBGbH3zZxQIsz0jbNTMEtonlymU7eTLeaGWiApA==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1045,11 +1072,12 @@ } }, "node_modules/@opentelemetry/instrumentation-router": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.44.0.tgz", - "integrity": "sha512-rmQZKYcof4M6vQjwtrlfybQo7BSD0mxkXdhfNHWxFjxOFGw9i7EuXSYLnThcVAqNnJ1EljzZiHzaJiq5Ehcb3A==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.44.1.tgz", + "integrity": "sha512-l4T/S7ByjpY5TCUPeDe1GPns02/5BpR0jroSMexyH3ZnXJt9PtYqx1IKAlOjaFEGEOQF2tGDsMi4PY5l+fSniQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1060,11 +1088,12 @@ } }, "node_modules/@opentelemetry/instrumentation-runtime-node": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-runtime-node/-/instrumentation-runtime-node-0.12.1.tgz", - "integrity": "sha512-l+BnkJVAN3bFugDMW9IxGwtdlA6HxLYDkP/YdEJ8i5g7vbS8upxTutyCQVVg8eSL4JABN3LRrFmMekUXdpyJLg==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-runtime-node/-/instrumentation-runtime-node-0.12.2.tgz", + "integrity": "sha512-HNBW1rJiHDBTHQlh5oH1IAcV8O5VR7/L5BBOfGAMpGno3Jq9cNqTh96uUp0qBXBuxD8Yl1eoI5N+B5TdmjLteQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=17.4.0" @@ -1074,11 +1103,12 @@ } }, "node_modules/@opentelemetry/instrumentation-socket.io": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.46.0.tgz", - "integrity": "sha512-BU3XGT63ziF0S9Ky0YevCuMhHUq6U+Wi1g/piJcB16nOqlfd1SW6EACl5LrUe+aNZk2qIXfuS7YV8R+H99+XQQ==", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.46.1.tgz", + "integrity": "sha512-9AsCVUAHOqvfe2RM/2I0DsDnx2ihw1d5jIN4+Bly1YPFTJIbk4+bXjAkr9+X6PUfhiV5urQHZkiYYPU1Q4yzPA==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { @@ -1089,11 +1119,12 @@ } }, "node_modules/@opentelemetry/instrumentation-tedious": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.0.tgz", - "integrity": "sha512-9zhjDpUDOtD+coeADnYEJQ0IeLVCj7w/hqzIutdp5NqS1VqTAanaEfsEcSypyvYv5DX3YOsTUoF+nr2wDXPETA==", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.1.tgz", + "integrity": "sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.57.0", + "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/tedious": "^4.0.14" }, @@ -1105,12 +1136,13 @@ } }, "node_modules/@opentelemetry/instrumentation-undici": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.0.tgz", - "integrity": "sha512-vm+V255NGw9gaSsPD6CP0oGo8L55BffBc8KnxqsMuc6XiAD1L8SFNzsW0RHhxJFqy9CJaJh+YiJ5EHXuZ5rZBw==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.1.tgz", + "integrity": "sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -1120,12 +1152,13 @@ } }, "node_modules/@opentelemetry/instrumentation-winston": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.44.0.tgz", - "integrity": "sha512-2uIrdmDIU9qJuHHKXTI3Gef+tNQmKtcwXDA6S0tm+KpKgkMwZB6AC0rNmGNQsxbGJSORj0NJvy5TVvk6jjsaqg==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.44.1.tgz", + "integrity": "sha512-iexblTsT3fP0hHUz/M1mWr+Ylg3bsYN2En/jvKXZtboW3Qkvt17HrQJYTF9leVIkXAfN97QxAcTE99YGbQW7vQ==", + "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api-logs": "^0.57.0", - "@opentelemetry/instrumentation": "^0.57.0" + "@opentelemetry/api-logs": "^0.57.1", + "@opentelemetry/instrumentation": "^0.57.1" }, "engines": { "node": ">=14" @@ -1202,9 +1235,10 @@ } }, "node_modules/@opentelemetry/propagation-utils": { - "version": "0.30.15", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.15.tgz", - "integrity": "sha512-nQ30K+eXTkd9Kt8yep9FPrqogS712GvdkV6R1T+xZMSZnFrRCyZuWxMtP3+s3hrK2HWw3ti4lsIfBzsHWYiyrA==", + "version": "0.30.16", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.16.tgz", + "integrity": "sha512-ZVQ3Z/PQ+2GQlrBfbMMMT0U7MzvYZLCPP800+ooyaBqm4hMvuQHfP028gB9/db0mwkmyEAMad9houukUVxhwcw==", + "license": "Apache-2.0", "engines": { "node": ">=14" }, @@ -1244,14 +1278,15 @@ "version": "0.36.2", "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz", "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==", + "license": "Apache-2.0", "engines": { "node": ">=14" } }, "node_modules/@opentelemetry/resource-detector-alibaba-cloud": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.30.0.tgz", - "integrity": "sha512-CniMuVcJENb7e6ljXC8BuE8xyHKV6kjHjFzAjbeK7BIq2JSPOqfvC+jjhUYnnSGFnDyoZxJCIbt6XIdwPWRPhg==", + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.30.1.tgz", + "integrity": "sha512-9l0FVP3F4+Z6ax27vMzkmhZdNtxAbDqEfy7rduzya3xFLaRiJSvOpw6cru6Edl5LwO+WvgNui+VzHa9ViE8wCg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", @@ -1266,9 +1301,9 @@ } }, "node_modules/@opentelemetry/resource-detector-aws": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.11.0.tgz", - "integrity": "sha512-j7qQ75enAJrlSPkPowasScuukZ2ffFG659rhxOpUM4dBe/O8Jpq+dy4pIdFtjWKkM9i7LgisdUt/GW7wGIWoEQ==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.12.0.tgz", + "integrity": "sha512-Cvi7ckOqiiuWlHBdA1IjS0ufr3sltex2Uws2RK6loVp4gzIJyOijsddAI6IZ5kiO8h/LgCWe8gxPmwkTKImd+Q==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", @@ -1283,9 +1318,9 @@ } }, "node_modules/@opentelemetry/resource-detector-azure": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.6.0.tgz", - "integrity": "sha512-cQbR/x9IhCYk47GWt4uC1G5yQN8JJ02Ec8uT38fj7uIXRbAARulwGr7Ax0dUo0eAtXEKQ+fXdzkLR1Am8cw4mg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.6.1.tgz", + "integrity": "sha512-Djr31QCExVfWViaf9cGJnH+bUInD72p0GEfgDGgjCAztyvyji6WJvKjs6qmkpPN+Ig6KLk0ho2VgzT5Kdl4L2Q==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.25.1", @@ -1300,9 +1335,9 @@ } }, "node_modules/@opentelemetry/resource-detector-container": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.6.0.tgz", - "integrity": "sha512-HxOzOsGlIjAbnTjwRBWQOsjrQIZ4NnQaaBc6noO8fW0v9ahyRxzwDFVr/3X1kSYLnpr2RGeWmMGDX6VcHECsLA==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.6.1.tgz", + "integrity": "sha512-o4sLzx149DQXDmVa8pgjBDEEKOj9SuQnkSLbjUVOpQNnn10v0WNR6wLwh30mFsK26xOJ6SpqZBGKZiT7i5MjlA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.26.0", @@ -1317,9 +1352,9 @@ } }, "node_modules/@opentelemetry/resource-detector-gcp": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.33.0.tgz", - "integrity": "sha512-y368hq2UM6j42Py7xlR4rTfl+wC4CdGNGT38nqW+6BwGTQso0NC/GeifcwqorEKs/JWU9azA6XNDyUBNEjFpGA==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.33.1.tgz", + "integrity": "sha512-/aZJXI1rU6Eus04ih2vU0hxXAibXXMzH1WlDZ8bXcTJmhwmTY8cP392+6l7cWeMnTQOibBUz8UKV3nhcCBAefw==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "^1.0.0", @@ -1573,23 +1608,25 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@types/aws-lambda": { - "version": "8.10.143", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.143.tgz", - "integrity": "sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==", + "version": "8.10.147", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.147.tgz", + "integrity": "sha512-nD0Z9fNIZcxYX5Mai2CTmFD7wX7UldCkW2ezCF8D1T5hdiLsnTWDGRpfRYntU6VjTdLQjOvyszru7I1c1oCQew==", "license": "MIT" }, "node_modules/@types/bunyan": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.9.tgz", - "integrity": "sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==", + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.11.tgz", + "integrity": "sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", - "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1598,6 +1635,7 @@ "version": "2.2.10", "resolved": "https://registry.npmjs.org/@types/memcached/-/memcached-2.2.10.tgz", "integrity": "sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1606,6 +1644,7 @@ "version": "2.15.26", "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz", "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1649,6 +1688,7 @@ "version": "4.0.14", "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz", "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -2100,9 +2140,9 @@ } }, "node_modules/pg-protocol": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz", - "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.1.tgz", + "integrity": "sha512-gjTHWGYWsEgy9MsY0Gp6ZJxV24IjDqdpTW7Eh0x+WfJLFsm/TJx1MzL6T0D88mBvkpxotCQ6TwW6N+Kko7lhgQ==", "license": "MIT" }, "node_modules/pg-types": { @@ -2398,13 +2438,14 @@ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" }, "node_modules/uuid": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", - "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/esm/bin/uuid" } diff --git a/src/payment/package.json b/src/payment/package.json index 9342b92412..6b1030bd04 100644 --- a/src/payment/package.json +++ b/src/payment/package.json @@ -14,21 +14,21 @@ "@openfeature/flagd-provider": "0.13.3", "@openfeature/server-sdk": "1.17.1", "@opentelemetry/api": "1.9.0", - "@opentelemetry/auto-instrumentations-node": "0.56.0", + "@opentelemetry/auto-instrumentations-node": "0.56.1", "@opentelemetry/core": "1.30.1", "@opentelemetry/exporter-metrics-otlp-grpc": "0.57.2", "@opentelemetry/exporter-trace-otlp-grpc": "0.57.2", - "@opentelemetry/instrumentation-runtime-node": "0.12.1", - "@opentelemetry/resource-detector-alibaba-cloud": "0.30.0", - "@opentelemetry/resource-detector-aws": "1.11.0", - "@opentelemetry/resource-detector-container": "0.6.0", - "@opentelemetry/resource-detector-gcp": "0.33.0", + "@opentelemetry/instrumentation-runtime-node": "0.12.2", + "@opentelemetry/resource-detector-alibaba-cloud": "0.30.1", + "@opentelemetry/resource-detector-aws": "1.12.0", + "@opentelemetry/resource-detector-container": "0.6.1", + "@opentelemetry/resource-detector-gcp": "0.33.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/sdk-metrics": "1.30.1", "@opentelemetry/sdk-node": "0.57.2", "grpc-js-health-check": "1.2.2", "pino": "9.6.0", "simple-card-validator": "1.1.0", - "uuid": "11.0.5" + "uuid": "11.1.0" } } From 77e1f9185aa13e6d294986c33a9a9c7584d60042 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 21:38:02 -0500 Subject: [PATCH 147/178] build(deps): bump the npm-development-dependencies group across 3 directories with 5 updates (#2079) Bumps the npm-development-dependencies group with 5 updates in the /src/flagd-ui directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.13.4` | `22.13.5` | | [eslint](https://github.com/eslint/eslint) | `9.20.1` | `9.21.0` | | [prettier](https://github.com/prettier/prettier) | `3.5.1` | `3.5.2` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.24.1` | `8.25.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.24.1` | `8.25.0` | Bumps the npm-development-dependencies group with 4 updates in the /src/frontend directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [eslint](https://github.com/eslint/eslint), [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Bumps the npm-development-dependencies group with 1 update in the /src/payment directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Updates `@types/node` from 22.13.4 to 22.13.5 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 9.20.1 to 9.21.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.20.1...v9.21.0) Updates `prettier` from 3.5.1 to 3.5.2 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.5.1...3.5.2) Updates `@typescript-eslint/eslint-plugin` from 8.24.1 to 8.25.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.25.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.24.1 to 8.25.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.25.0/packages/parser) Updates `@types/node` from 22.13.4 to 22.13.5 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 9.20.1 to 9.21.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.20.1...v9.21.0) Updates `@typescript-eslint/eslint-plugin` from 8.24.1 to 8.25.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.25.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.24.1 to 8.25.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.25.0/packages/parser) Updates `@types/node` from 22.13.4 to 22.13.5 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/flagd-ui/package-lock.json | 202 +++++++++++++++++---------------- src/flagd-ui/package.json | 2 +- src/frontend/package-lock.json | 181 ++++++++++++++--------------- src/frontend/package.json | 8 +- src/payment/package-lock.json | 6 +- 5 files changed, 195 insertions(+), 204 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 3fde70ec09..3a0d297460 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -24,7 +24,7 @@ "eslint": "^9", "eslint-config-next": "15.1.7", "postcss": "^8.5.3", - "prettier": "^3.5.1", + "prettier": "^3.5.2", "prettier-plugin-tailwindcss": "^0.6.11", "tailwindcss": "^4.0.7", "typescript": "^5" @@ -76,12 +76,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", - "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.5", + "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -90,9 +91,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", - "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -103,10 +104,11 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", + "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -130,6 +132,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -145,12 +148,13 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@eslint/js": { - "version": "9.20.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.20.0.tgz", - "integrity": "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==", + "version": "9.21.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz", + "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==", "dev": true, "license": "MIT", "engines": { @@ -158,22 +162,23 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", - "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", - "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.10.0", + "@eslint/core": "^0.12.0", "levn": "^0.4.1" }, "engines": { @@ -229,10 +234,11 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -1305,9 +1311,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", - "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", + "version": "22.13.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", + "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", "dev": true, "license": "MIT", "dependencies": { @@ -1342,17 +1348,17 @@ "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.1.tgz", - "integrity": "sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.25.0.tgz", + "integrity": "sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.24.1", - "@typescript-eslint/type-utils": "8.24.1", - "@typescript-eslint/utils": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1", + "@typescript-eslint/scope-manager": "8.25.0", + "@typescript-eslint/type-utils": "8.25.0", + "@typescript-eslint/utils": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1372,16 +1378,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.1.tgz", - "integrity": "sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.25.0.tgz", + "integrity": "sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.24.1", - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/typescript-estree": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1", + "@typescript-eslint/scope-manager": "8.25.0", + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/typescript-estree": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0", "debug": "^4.3.4" }, "engines": { @@ -1397,14 +1403,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.1.tgz", - "integrity": "sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz", + "integrity": "sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1" + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1415,14 +1421,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.1.tgz", - "integrity": "sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.25.0.tgz", + "integrity": "sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.24.1", - "@typescript-eslint/utils": "8.24.1", + "@typescript-eslint/typescript-estree": "8.25.0", + "@typescript-eslint/utils": "8.25.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -1439,9 +1445,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.1.tgz", - "integrity": "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.25.0.tgz", + "integrity": "sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==", "dev": true, "license": "MIT", "engines": { @@ -1453,14 +1459,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.1.tgz", - "integrity": "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz", + "integrity": "sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1", + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -1506,16 +1512,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.1.tgz", - "integrity": "sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.25.0.tgz", + "integrity": "sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.24.1", - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/typescript-estree": "8.24.1" + "@typescript-eslint/scope-manager": "8.25.0", + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/typescript-estree": "8.25.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1530,13 +1536,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.1.tgz", - "integrity": "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz", + "integrity": "sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/types": "8.25.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -1604,6 +1610,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -1642,7 +1649,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/aria-query": { "version": "5.3.2", @@ -2003,6 +2011,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2481,22 +2490,22 @@ } }, "node_modules/eslint": { - "version": "9.20.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.1.tgz", - "integrity": "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==", + "version": "9.21.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz", + "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.11.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.20.0", - "@eslint/plugin-kit": "^0.2.5", + "@eslint/config-array": "^0.19.2", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "9.21.0", + "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", + "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", @@ -2851,19 +2860,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/core": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.11.0.tgz", - "integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2903,6 +2899,7 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", @@ -2920,6 +2917,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -3230,6 +3228,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -3372,10 +3371,11 @@ } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -3839,6 +3839,7 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -4572,6 +4573,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -4672,9 +4674,9 @@ } }, "node_modules/prettier": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.1.tgz", - "integrity": "sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", + "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", "dev": true, "license": "MIT", "bin": { @@ -4917,6 +4919,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -5368,6 +5371,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index d5ea3f4c5f..8eec4bf229 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -25,7 +25,7 @@ "eslint": "^9", "eslint-config-next": "15.1.7", "postcss": "^8.5.3", - "prettier": "^3.5.1", + "prettier": "^3.5.2", "prettier-plugin-tailwindcss": "^0.6.11", "tailwindcss": "^4.0.7", "typescript": "^5" diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 4422cb51cf..259b585ea0 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -45,15 +45,15 @@ "uuid": "11.1.0" }, "devDependencies": { - "@types/node": "22.13.4", + "@types/node": "22.13.5", "@types/react": "19.0.10", "@types/react-dom": "19.0.4", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.24.1", - "@typescript-eslint/parser": "8.24.1", + "@typescript-eslint/eslint-plugin": "8.25.0", + "@typescript-eslint/parser": "8.25.0", "cypress": "14.0.3", - "eslint": "9.20.1", + "eslint": "9.21.0", "eslint-config-next": "15.1.7", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", @@ -226,13 +226,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", - "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.5", + "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -265,9 +265,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", - "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -278,9 +278,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", + "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -350,9 +350,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.20.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.20.0.tgz", - "integrity": "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==", + "version": "9.21.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz", + "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==", "dev": true, "license": "MIT", "engines": { @@ -360,9 +360,9 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", - "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -370,13 +370,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", - "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.10.0", + "@eslint/core": "^0.12.0", "levn": "^0.4.1" }, "engines": { @@ -467,9 +467,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3056,9 +3056,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", - "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", + "version": "22.13.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", + "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -3170,17 +3170,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.1.tgz", - "integrity": "sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.25.0.tgz", + "integrity": "sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.24.1", - "@typescript-eslint/type-utils": "8.24.1", - "@typescript-eslint/utils": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1", + "@typescript-eslint/scope-manager": "8.25.0", + "@typescript-eslint/type-utils": "8.25.0", + "@typescript-eslint/utils": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3200,16 +3200,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.1.tgz", - "integrity": "sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.25.0.tgz", + "integrity": "sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.24.1", - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/typescript-estree": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1", + "@typescript-eslint/scope-manager": "8.25.0", + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/typescript-estree": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0", "debug": "^4.3.4" }, "engines": { @@ -3225,14 +3225,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.1.tgz", - "integrity": "sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz", + "integrity": "sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1" + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3243,14 +3243,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.1.tgz", - "integrity": "sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.25.0.tgz", + "integrity": "sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.24.1", - "@typescript-eslint/utils": "8.24.1", + "@typescript-eslint/typescript-estree": "8.25.0", + "@typescript-eslint/utils": "8.25.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -3267,9 +3267,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.1.tgz", - "integrity": "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.25.0.tgz", + "integrity": "sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==", "dev": true, "license": "MIT", "engines": { @@ -3281,14 +3281,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.1.tgz", - "integrity": "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz", + "integrity": "sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1", + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3321,16 +3321,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.1.tgz", - "integrity": "sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.25.0.tgz", + "integrity": "sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.24.1", - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/typescript-estree": "8.24.1" + "@typescript-eslint/scope-manager": "8.25.0", + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/typescript-estree": "8.25.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3345,13 +3345,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.1.tgz", - "integrity": "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz", + "integrity": "sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/types": "8.25.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -4919,22 +4919,22 @@ } }, "node_modules/eslint": { - "version": "9.20.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.1.tgz", - "integrity": "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==", + "version": "9.21.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz", + "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.11.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.20.0", - "@eslint/plugin-kit": "^0.2.5", + "@eslint/config-array": "^0.19.2", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "9.21.0", + "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", + "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", @@ -5352,19 +5352,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/core": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.11.0.tgz", - "integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -6273,9 +6260,9 @@ } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "license": "MIT", "dependencies": { diff --git a/src/frontend/package.json b/src/frontend/package.json index ee5387ff59..eb5726abc9 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -48,15 +48,15 @@ "uuid": "11.1.0" }, "devDependencies": { - "@types/node": "22.13.4", + "@types/node": "22.13.5", "@types/react": "19.0.10", "@types/react-dom": "19.0.4", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.24.1", - "@typescript-eslint/parser": "8.24.1", + "@typescript-eslint/eslint-plugin": "8.25.0", + "@typescript-eslint/parser": "8.25.0", "cypress": "14.0.3", - "eslint": "9.20.1", + "eslint": "9.21.0", "eslint-config-next": "15.1.7", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index a7dbe4ebc4..cd2d926cdc 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -1650,9 +1650,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", - "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", + "version": "22.13.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", + "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" From 61cbcfdc0629949944dbec5560c2a953b18b92ae Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 24 Feb 2025 21:51:10 -0500 Subject: [PATCH 148/178] [chore] Use linkspector to check links (#2070) * Use linkspector to check links * add license * Use linkspector to check links * Use linkspector to check links --------- Co-authored-by: Juliano Costa --- .github/.mlc_config.json | 16 - .github/workflows/checks.yml | 86 +- .linkspector.yml | 20 + CHANGELOG.md | 2 + Makefile | 10 +- package-lock.json | 5422 ++++++++++++++++++++++++++++++---- package.json | 4 +- 7 files changed, 4899 insertions(+), 661 deletions(-) delete mode 100644 .github/.mlc_config.json create mode 100644 .linkspector.yml diff --git a/.github/.mlc_config.json b/.github/.mlc_config.json deleted file mode 100644 index 943c07594d..0000000000 --- a/.github/.mlc_config.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "ignorePatterns": [ - {"pattern": "^http://localhost:8080"}, - {"pattern": "^https://calendar.google.com/calendar"} - ], - "replacementPatterns": [ - { - "pattern": "^/", - "replacement": "/github/workspace/" - } - ], - "aliveStatusCodes": [ - 200, - 429 - ] -} \ No newline at end of file diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 8628f944d6..9aa930aa41 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -4,9 +4,9 @@ name: Checks on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] + branches: [main] workflow_dispatch: jobs: @@ -19,67 +19,59 @@ jobs: markdownlint: runs-on: ubuntu-latest steps: - - name: check out code - uses: actions/checkout@v4 - - - name: install dependencies - run: npm install - - - name: run markdownlint - run: make markdownlint + - name: check out code + uses: actions/checkout@v4 + - name: install dependencies + run: npm install + - name: run markdownlint + run: make markdownlint yamllint: runs-on: ubuntu-latest steps: - - name: check out code - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - - name: install yamllint - run: make install-yamllint - - - name: run yamllint - run: yamllint . -f github + - name: check out code + uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.x' + - name: install yamllint + run: make install-yamllint + - name: run yamllint + run: yamllint . -f github misspell: runs-on: ubuntu-latest steps: - - name: check out code - uses: actions/checkout@v4 - - - name: run misspell - run: make misspell + - name: check out code + uses: actions/checkout@v4 + - name: run misspell + run: make misspell - markdownlinkcheck: - name: markdownlinkcheck + checklinks: + name: linkspector runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: Run link check - uses: gaurav-nelson/github-action-markdown-link-check@v1 - with: - use-quiet-mode: 'no' - use-verbose-mode: 'yes' - config-file: '.github/.mlc_config.json' + - uses: actions/checkout@v4 + - name: Run linkspector + uses: umbrelladocs/action-linkspector@v1 + with: + level: info + fail_level: any + config_file: '.linkspector.yml' sanity: runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: run sanitycheck.py - run: python3 ./internal/tools/sanitycheck.py + - uses: actions/checkout@v4 + - name: run sanitycheck.py + run: python3 ./internal/tools/sanitycheck.py checklicense: runs-on: ubuntu-latest steps: - - name: check out code - uses: actions/checkout@v4 - - name: install tools - run: make install-tools - - name: run checklicense - run: make checklicense + - name: check out code + uses: actions/checkout@v4 + - name: install tools + run: make install-tools + - name: run checklicense + run: make checklicense diff --git a/.linkspector.yml b/.linkspector.yml new file mode 100644 index 0000000000..20e905ecbc --- /dev/null +++ b/.linkspector.yml @@ -0,0 +1,20 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +dirs: + - . + +excludedFiles: + - ./CHANGELOG.md + +ignorePatterns: + - pattern: "^http://localhost:8080" + - pattern: "^https://calendar.google.com/calendar" + +aliveStatusCodes: + - 200 + - 429 + +useGitIgnore: true + +modifiedFilesOnly: false diff --git a/CHANGELOG.md b/CHANGELOG.md index b865833285..4b7ff53d2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ the release. ## Unreleased +* [chore] Use Linkspector to check links + ([#2070](https://github.com/open-telemetry/opentelemetry-demo/pull/2070)) * [frontend] Cypress tests base image updated to 14.0.3 ([#2072](https://github.com/open-telemetry/opentelemetry-demo/pull/2072)) diff --git a/Makefile b/Makefile index ebff8282aa..48db2defbc 100644 --- a/Makefile +++ b/Makefile @@ -62,16 +62,24 @@ yamllint: install-yamllint .PHONY: checklicense checklicense: @echo "Checking license headers..." + @if ! npm ls @kt3k/license-checker; then npm install; fi npx @kt3k/license-checker -q .PHONY: addlicense addlicense: @echo "Adding license headers..." + @if ! npm ls @kt3k/license-checker; then npm install; fi npx @kt3k/license-checker -q -i +.PHONY: checklinks +checklinks: + @echo "Checking links..." + @if ! npm ls @umbrelladocs/linkspector; then npm install; fi + linkspector check + # Run all checks in order of speed / likely failure. .PHONY: check -check: misspell markdownlint checklicense +check: misspell markdownlint checklicense checklinks @echo "All checks complete" # Attempt to fix issues / regenerate tables. diff --git a/package-lock.json b/package-lock.json index 241a5969c8..120e43e7d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,11 +6,36 @@ "": { "devDependencies": { "@kt3k/license-checker": "^3.2.2", - "markdown-link-check": "^3.9.3", + "@umbrelladocs/linkspector": "^0.3.13", "markdown-toc": "^1.2.0", "markdownlint-cli": "0.37.0" } }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@deno/shim-deno": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@deno/shim-deno/-/shim-deno-0.1.2.tgz", @@ -20,6 +45,23 @@ "which": "^2.0.2" } }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -60,6 +102,292 @@ "node": ">=14" } }, + "node_modules/@puppeteer/browsers": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz", + "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.4.0", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.6.3", + "tar-fs": "^3.0.6", + "unbzip2-stream": "^1.4.3", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@puppeteer/browsers/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.13.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", + "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@umbrelladocs/linkspector": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@umbrelladocs/linkspector/-/linkspector-0.3.13.tgz", + "integrity": "sha512-mEitirZCmcA2T8AwX0s9XFucnRBCckQ/n+pBpLQvnwxHW0FwQX++/k3R+RHxYoMbeBRGtCQDr2EvV7sWEHLusg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "commander": "^12.1.0", + "github-slugger": "^2.0.0", + "glob": "^11.0.0", + "ignore": "^5.3.2", + "joi": "^17.13.3", + "js-yaml": "^4.1.0", + "kleur": "^4.1.5", + "ora": "^8.1.0", + "puppeteer": "^23.2.1", + "remark-gfm": "^4.0.0", + "remark-parse": "^11.0.0", + "unified": "^11.0.5", + "unist-util-visit": "^5.0.0" + }, + "bin": { + "linkspector": "index.js" + } + }, + "node_modules/@umbrelladocs/linkspector/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/@umbrelladocs/linkspector/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@umbrelladocs/linkspector/node_modules/glob": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@umbrelladocs/linkspector/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@umbrelladocs/linkspector/node_modules/jackspeak": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", + "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@umbrelladocs/linkspector/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@umbrelladocs/linkspector/node_modules/lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@umbrelladocs/linkspector/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@umbrelladocs/linkspector/node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/ansi-red": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", @@ -114,11 +442,18 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } }, "node_modules/autolinker": { "version": "0.28.1", @@ -129,17 +464,129 @@ "gulp-header": "^1.7.1" } }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "node_modules/bare-events": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-fs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.1.tgz", + "integrity": "sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^3.0.0", + "bare-stream": "^2.0.0" + }, + "engines": { + "bare": ">=1.7.0" + } + }, + "node_modules/bare-os": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.4.0.tgz", + "integrity": "sha512-9Ous7UlnKbe3fMi7Y+qh0DwAup6A1JkYgPnjvMDNOlmnxNRQvQ/7Nst+OnUQKzk0iAT0m9BisbDVp9gCv8+ETA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "bare": ">=1.6.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", + "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } }, "node_modules/brace-expansion": { "version": "2.0.1", @@ -150,12 +597,68 @@ "balanced-match": "^1.0.0" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chalk": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", @@ -168,42 +671,152 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chromium-bidi": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz", + "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" + "mitt": "3.0.1", + "zod": "3.23.8" }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + "peerDependencies": { + "devtools-protocol": "*" } }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, + "license": "MIT", "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/fb55" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/coffee-script": { @@ -277,6 +890,53 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -291,41 +951,28 @@ "node": ">= 8" } }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "node": ">= 14" } }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/deep-extend": { @@ -337,68 +984,59 @@ "node": ">=4.0.0" } }, - "node_modules/diacritics-map": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz", - "integrity": "sha512-3omnDTYrGigU0i4cJjvaKwD52B8aoqyX/NEIkukFFkogBemsIbhSa1O414fpTp5nuszJG6lvQ5vBvDVNCbSsaQ==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dev": true, + "license": "MIT", "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "engines": { + "node": ">= 14" } }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", "dev": true, + "license": "MIT", "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" + "dequal": "^2.0.0" }, "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "node_modules/devtools-protocol": { + "version": "0.0.1367902", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", + "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "license": "BSD-3-Clause" + }, + "node_modules/diacritics-map": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz", + "integrity": "sha512-3omnDTYrGigU0i4cJjvaKwD52B8aoqyX/NEIkukFFkogBemsIbhSa1O414fpTp5nuszJG6lvQ5vBvDVNCbSsaQ==", + "dev": true, + "engines": { + "node": ">=0.8.0" } }, "node_modules/eastasianwidth": { @@ -413,16 +1051,79 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.12" + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, "node_modules/esprima": { @@ -438,6 +1139,26 @@ "node": ">=4" } }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/expand-range": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", @@ -450,6 +1171,13 @@ "node": ">=0.10.0" } }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, "node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -462,6 +1190,62 @@ "node": ">=0.10.0" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/fill-range": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", @@ -503,6 +1287,29 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-stdin": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", @@ -515,9 +1322,65 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-uri": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", + "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/get-uri/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "dev": true, + "license": "ISC" + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { @@ -565,46 +1428,91 @@ "through2": "^2.0.0" } }, - "node_modules/html-link-extractor": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-link-extractor/-/html-link-extractor-1.0.5.tgz", - "integrity": "sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==", + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "license": "MIT", "dependencies": { - "cheerio": "^1.0.0-rc.10" + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "node_modules/htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } - ], + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "ms": "^2.1.3" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -614,6 +1522,23 @@ "node": ">= 4" } }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -629,18 +1554,34 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/is-absolute-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", - "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 12" } }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -665,6 +1606,19 @@ "node": ">=8" } }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", @@ -677,6 +1631,19 @@ "node": ">=0.10.0" } }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -698,16 +1665,14 @@ "node": ">=0.10.0" } }, - "node_modules/is-relative-url": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-4.0.0.tgz", - "integrity": "sha512-PkzoL1qKAYXNFct5IKdKRH/iBQou/oCC85QhXj6WKtUQBliZ4Yfd3Zk27RHu9KQG8r6zgvAA2AQKC9p+rqTszg==", + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, - "dependencies": { - "is-absolute-url": "^4.0.1" - }, + "license": "MIT", "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -719,18 +1684,6 @@ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, - "node_modules/isemail": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", - "dev": true, - "dependencies": { - "punycode": "2.x.x" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -767,6 +1720,27 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -780,6 +1754,20 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, "node_modules/jsonc-parser": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", @@ -798,6 +1786,16 @@ "node": ">=0.10.0" } }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/lazy-cache": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", @@ -810,17 +1808,12 @@ "node": ">=0.10.0" } }, - "node_modules/link-check": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/link-check/-/link-check-5.2.0.tgz", - "integrity": "sha512-xRbhYLaGDw7eRDTibTAcl6fXtmUQ13vkezQiTqshHHdGueQeumgxxmQMIOmJYsh2p8BF08t8thhDQ++EAOOq3w==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true, - "dependencies": { - "is-relative-url": "^4.0.0", - "isemail": "^3.2.0", - "ms": "^2.1.3", - "needle": "^3.1.0" - } + "license": "MIT" }, "node_modules/linkify-it": { "version": "4.0.1", @@ -846,12 +1839,6 @@ "node": ">=0.10.0" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", @@ -877,6 +1864,47 @@ "lodash._reinterpolate": "^3.0.0" } }, + "node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/lru-cache": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", @@ -929,42 +1957,15 @@ "node": ">=0.10.0" } }, - "node_modules/markdown-link-check": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.11.2.tgz", - "integrity": "sha512-zave+vI4AMeLp0FlUllAwGbNytSKsS3R2Zgtf3ufVT892Z/L6Ro9osZwE9PNA7s0IkJ4onnuHqatpsaCiAShJw==", - "dev": true, - "dependencies": { - "async": "^3.2.4", - "chalk": "^5.2.0", - "commander": "^10.0.1", - "link-check": "^5.2.0", - "lodash": "^4.17.21", - "markdown-link-extractor": "^3.1.0", - "needle": "^3.2.0", - "progress": "^2.0.3" - }, - "bin": { - "markdown-link-check": "markdown-link-check" - } - }, - "node_modules/markdown-link-check/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/markdown-link-extractor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-3.1.0.tgz", - "integrity": "sha512-r0NEbP1dsM+IqB62Ru9TXLP/HDaTdBNIeylYXumuBi6Xv4ufjE1/g3TnslYL8VNqNcGAGbMptQFHrrdfoZ/Sug==", + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", "dev": true, - "dependencies": { - "html-link-extractor": "^1.0.5", - "marked": "^4.1.0" + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/markdown-toc": { @@ -1056,167 +2057,1107 @@ "node": ">=16" } }, - "node_modules/marked": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", - "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, "node_modules/math-random": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", "dev": true }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" }, - "engines": { - "node": ">=16 || 14 >=14.17" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/minipass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", - "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", "dev": true, + "license": "MIT", "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/micromark": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", + "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", + "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz", + "integrity": "sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", "dev": true, + "license": "MIT", "dependencies": { - "is-plain-object": "^2.0.4" + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "node_modules/ora/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" }, - "node_modules/needle": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", - "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", + "node_modules/ora/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">= 4.4.x" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", "dev": true, + "license": "MIT", "dependencies": { - "boolbase": "^1.0.0" + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" + "engines": { + "node": ">= 14" } }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "node_modules/pac-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "dependencies": { - "isobject": "^3.0.1" + "ms": "^2.1.3" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/object.pick/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 14" } }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "callsites": "^3.0.0" }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "engines": { + "node": ">=6" } }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/path-key": { @@ -1244,6 +3185,20 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -1259,13 +3214,128 @@ "node": ">=0.4.0" } }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, "engines": { - "node": ">=6" + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/puppeteer": { + "version": "23.11.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.11.1.tgz", + "integrity": "sha512-53uIX3KR5en8l7Vd8n5DUv90Ae9QDQsyIthaUFVzwV6yU750RjqRznEtNMBT20VthqAdemnJN+hxVdmMHKt7Zw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.6.1", + "chromium-bidi": "0.11.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1367902", + "puppeteer-core": "23.11.1", + "typed-query-selector": "^2.12.0" + }, + "bin": { + "puppeteer": "lib/cjs/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core": { + "version": "23.11.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz", + "integrity": "sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.6.1", + "chromium-bidi": "0.11.0", + "debug": "^4.4.0", + "devtools-protocol": "0.0.1367902", + "typed-query-selector": "^2.12.0", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/randomatic": { @@ -1315,6 +3385,58 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remarkable": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz", @@ -1349,6 +3471,43 @@ "node": ">=0.10" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-con": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", @@ -1370,17 +3529,18 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, "node_modules/set-getter": { "version": "0.1.1", @@ -1427,6 +3587,65 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", + "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -1442,6 +3661,33 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "node_modules/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/streamx": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", + "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -1568,6 +3814,50 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tar-fs": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz", + "integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -1596,6 +3886,31 @@ "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", "dev": true }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "dev": true, + "license": "MIT" + }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -1608,13 +3923,111 @@ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true }, - "node_modules/undici": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-4.16.0.tgz", - "integrity": "sha512-tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw==", + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/undici": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-4.16.0.tgz", + "integrity": "sha512-tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw==", + "dev": true, + "engines": { + "node": ">=12.18" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "dev": true, - "engines": { - "node": ">=12.18" + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/util-deprecate": { @@ -1623,6 +4036,36 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -1729,6 +4172,35 @@ "node": ">=8" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -1737,9 +4209,142 @@ "engines": { "node": ">=0.4" } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } }, "dependencies": { + "@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true + }, "@deno/shim-deno": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@deno/shim-deno/-/shim-deno-0.1.2.tgz", @@ -1749,6 +4354,21 @@ "which": "^2.0.2" } }, + "@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, "@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -1780,6 +4400,214 @@ "dev": true, "optional": true }, + "@puppeteer/browsers": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz", + "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==", + "dev": true, + "requires": { + "debug": "^4.4.0", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.6.3", + "tar-fs": "^3.0.6", + "unbzip2-stream": "^1.4.3", + "yargs": "^17.7.2" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + } + } + }, + "@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true + }, + "@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "requires": { + "@types/ms": "*" + } + }, + "@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "requires": { + "@types/unist": "*" + } + }, + "@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true + }, + "@types/node": { + "version": "22.13.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", + "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "dev": true, + "optional": true, + "requires": { + "undici-types": "~6.20.0" + } + }, + "@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, + "@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@umbrelladocs/linkspector": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@umbrelladocs/linkspector/-/linkspector-0.3.13.tgz", + "integrity": "sha512-mEitirZCmcA2T8AwX0s9XFucnRBCckQ/n+pBpLQvnwxHW0FwQX++/k3R+RHxYoMbeBRGtCQDr2EvV7sWEHLusg==", + "dev": true, + "requires": { + "commander": "^12.1.0", + "github-slugger": "^2.0.0", + "glob": "^11.0.0", + "ignore": "^5.3.2", + "joi": "^17.13.3", + "js-yaml": "^4.1.0", + "kleur": "^4.1.5", + "ora": "^8.1.0", + "puppeteer": "^23.2.1", + "remark-gfm": "^4.0.0", + "remark-parse": "^11.0.0", + "unified": "^11.0.5", + "unist-util-visit": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true + }, + "glob": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "dev": true, + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + } + }, + "ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true + }, + "jackspeak": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", + "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "dev": true + }, + "minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "requires": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + } + } + } + }, + "agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "dev": true + }, "ansi-red": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", @@ -1816,31 +4644,98 @@ "sprintf-js": "~1.0.2" } }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + }, + "autolinker": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz", + "integrity": "sha512-zQAFO1Dlsn69eXaO6+7YZc+v84aquQKbwpzCE3L0stj56ERn9hutFxPopViLjo9G+rWwjozRhgS5KJ25Xy19cQ==", + "dev": true, + "requires": { + "gulp-header": "^1.7.1" + } + }, + "b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "dev": true + }, + "bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "autolinker": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz", - "integrity": "sha512-zQAFO1Dlsn69eXaO6+7YZc+v84aquQKbwpzCE3L0stj56ERn9hutFxPopViLjo9G+rWwjozRhgS5KJ25Xy19cQ==", + "bare-events": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "dev": true, + "optional": true + }, + "bare-fs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.1.tgz", + "integrity": "sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==", + "dev": true, + "optional": true, + "requires": { + "bare-events": "^2.0.0", + "bare-path": "^3.0.0", + "bare-stream": "^2.0.0" + } + }, + "bare-os": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.4.0.tgz", + "integrity": "sha512-9Ous7UlnKbe3fMi7Y+qh0DwAup6A1JkYgPnjvMDNOlmnxNRQvQ/7Nst+OnUQKzk0iAT0m9BisbDVp9gCv8+ETA==", + "dev": true, + "optional": true + }, + "bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "dev": true, + "optional": true, + "requires": { + "bare-os": "^3.0.1" + } + }, + "bare-stream": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", + "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", "dev": true, + "optional": true, "requires": { - "gulp-header": "^1.7.1" + "streamx": "^2.21.0" } }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", "dev": true }, "brace-expansion": { @@ -1852,45 +4747,140 @@ "balanced-match": "^1.0.0" } }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true + }, "chalk": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true }, - "cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "dev": true + }, + "chromium-bidi": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz", + "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==", "dev": true, "requires": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" + "mitt": "3.0.1", + "zod": "3.23.8" } }, - "cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "requires": { + "restore-cursor": "^5.0.0" + } + }, + "cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "requires": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } } }, "coffee-script": { @@ -1947,6 +4937,35 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, + "cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "requires": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1958,32 +4977,19 @@ "which": "^2.0.1" } }, - "css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", "dev": true }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "dev": true, "requires": { - "ms": "^2.1.1" + "character-entities": "^2.0.0" } }, "deep-extend": { @@ -1992,48 +4998,43 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, - "diacritics-map": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz", - "integrity": "sha512-3omnDTYrGigU0i4cJjvaKwD52B8aoqyX/NEIkukFFkogBemsIbhSa1O414fpTp5nuszJG6lvQ5vBvDVNCbSsaQ==", - "dev": true - }, - "dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dev": true, "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" } }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true }, - "domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", "dev": true, "requires": { - "domelementtype": "^2.3.0" + "dequal": "^2.0.0" } }, - "domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "dev": true, - "requires": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - } + "devtools-protocol": { + "version": "0.0.1367902", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", + "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", + "dev": true + }, + "diacritics-map": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz", + "integrity": "sha512-3omnDTYrGigU0i4cJjvaKwD52B8aoqyX/NEIkukFFkogBemsIbhSa1O414fpTp5nuszJG6lvQ5vBvDVNCbSsaQ==", + "dev": true }, "eastasianwidth": { "version": "0.2.0", @@ -2047,18 +5048,72 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true + }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true }, + "escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "source-map": "~0.6.1" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, "expand-range": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", @@ -2068,6 +5123,12 @@ "fill-range": "^2.1.0" } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -2077,6 +5138,44 @@ "is-extendable": "^0.1.0" } }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + } + } + }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, "fill-range": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", @@ -2106,12 +5205,61 @@ "signal-exit": "^4.0.1" } }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true + }, "get-stdin": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", "dev": true }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-uri": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", + "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", + "dev": true, + "requires": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + } + } + }, + "github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "dev": true + }, "glob": { "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", @@ -2149,35 +5297,53 @@ "through2": "^2.0.0" } }, - "html-link-extractor": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-link-extractor/-/html-link-extractor-1.0.5.tgz", - "integrity": "sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==", + "http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "requires": { - "cheerio": "^1.0.0-rc.10" + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + } } }, - "htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" + "agent-base": "^7.1.2", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + } } }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true }, "ignore": { "version": "5.2.4", @@ -2185,6 +5351,16 @@ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, + "import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -2197,10 +5373,28 @@ "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true }, - "is-absolute-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", - "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", + "ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "requires": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "is-buffer": { @@ -2221,6 +5415,12 @@ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, + "is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true + }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", @@ -2230,6 +5430,12 @@ "kind-of": "^3.0.2" } }, + "is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -2247,14 +5453,11 @@ } } }, - "is-relative-url": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-4.0.0.tgz", - "integrity": "sha512-PkzoL1qKAYXNFct5IKdKRH/iBQou/oCC85QhXj6WKtUQBliZ4Yfd3Zk27RHu9KQG8r6zgvAA2AQKC9p+rqTszg==", - "dev": true, - "requires": { - "is-absolute-url": "^4.0.1" - } + "is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true }, "isarray": { "version": "1.0.0", @@ -2262,15 +5465,6 @@ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, - "isemail": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", - "dev": true, - "requires": { - "punycode": "2.x.x" - } - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -2296,6 +5490,25 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -2306,6 +5519,18 @@ "esprima": "^4.0.0" } }, + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, "jsonc-parser": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", @@ -2321,6 +5546,12 @@ "is-buffer": "^1.1.5" } }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, "lazy-cache": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", @@ -2330,17 +5561,11 @@ "set-getter": "^0.1.0" } }, - "link-check": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/link-check/-/link-check-5.2.0.tgz", - "integrity": "sha512-xRbhYLaGDw7eRDTibTAcl6fXtmUQ13vkezQiTqshHHdGueQeumgxxmQMIOmJYsh2p8BF08t8thhDQ++EAOOq3w==", - "dev": true, - "requires": { - "is-relative-url": "^4.0.0", - "isemail": "^3.2.0", - "ms": "^2.1.3", - "needle": "^3.1.0" - } + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true }, "linkify-it": { "version": "4.0.1", @@ -2363,12 +5588,6 @@ "repeat-string": "^1.5.2" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", @@ -2394,6 +5613,30 @@ "lodash._reinterpolate": "^3.0.0" } }, + "log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "dev": true, + "requires": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "dependencies": { + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true + } + } + }, + "longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "dev": true + }, "lru-cache": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", @@ -2433,39 +5676,11 @@ "integrity": "sha512-TurLymbyLyo+kAUUAV9ggR9EPcDjP/ctlv9QAFiqUH7c+t6FlsbivPo9OKTU8xdOx9oNd2drW/Fi5RRElQbUqA==", "dev": true }, - "markdown-link-check": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.11.2.tgz", - "integrity": "sha512-zave+vI4AMeLp0FlUllAwGbNytSKsS3R2Zgtf3ufVT892Z/L6Ro9osZwE9PNA7s0IkJ4onnuHqatpsaCiAShJw==", - "dev": true, - "requires": { - "async": "^3.2.4", - "chalk": "^5.2.0", - "commander": "^10.0.1", - "link-check": "^5.2.0", - "lodash": "^4.17.21", - "markdown-link-extractor": "^3.1.0", - "needle": "^3.2.0", - "progress": "^2.0.3" - }, - "dependencies": { - "commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true - } - } - }, - "markdown-link-extractor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-3.1.0.tgz", - "integrity": "sha512-r0NEbP1dsM+IqB62Ru9TXLP/HDaTdBNIeylYXumuBi6Xv4ufjE1/g3TnslYL8VNqNcGAGbMptQFHrrdfoZ/Sug==", - "dev": true, - "requires": { - "html-link-extractor": "^1.0.5", - "marked": "^4.1.0" - } + "markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "dev": true }, "markdown-toc": { "version": "1.2.0", @@ -2537,24 +5752,505 @@ "integrity": "sha512-BbRPTC72fl5vlSKv37v/xIENSRDYL/7X/XoFzZ740FGEbs9vZerLrIkFRY0rv7slQKxDczToYuMmqQFN61fi4Q==", "dev": true }, - "marked": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", - "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==", - "dev": true - }, "math-random": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", "dev": true }, + "mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + } + }, + "mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + } + }, + "mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "dev": true, + "requires": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + } + }, + "mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + } + }, + "mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + } + }, + "mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + } + }, + "mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + } + }, + "mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + } + }, + "mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + } + }, + "mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + } + }, + "mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0" + } + }, "mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", "dev": true }, + "micromark": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", + "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", + "dev": true, + "requires": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + } + } + }, + "micromark-core-commonmark": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", + "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", + "dev": true, + "requires": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "dev": true, + "requires": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "dev": true, + "requires": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "dev": true, + "requires": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "dev": true, + "requires": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "dev": true, + "requires": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "dev": true, + "requires": { + "micromark-util-types": "^2.0.0" + } + }, + "micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "dev": true, + "requires": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "dev": true, + "requires": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "dev": true, + "requires": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "dev": true, + "requires": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "dev": true, + "requires": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "dev": true, + "requires": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "dev": true, + "requires": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "dev": true, + "requires": { + "micromark-util-symbol": "^2.0.0" + } + }, + "micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "dev": true, + "requires": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "dev": true, + "requires": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "dev": true, + "requires": { + "micromark-util-symbol": "^2.0.0" + } + }, + "micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "dev": true, + "requires": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "dev": true + }, + "micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "dev": true + }, + "micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "dev": true, + "requires": { + "micromark-util-symbol": "^2.0.0" + } + }, + "micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "dev": true, + "requires": { + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "dev": true, + "requires": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "micromark-util-subtokenize": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz", + "integrity": "sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==", + "dev": true, + "requires": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "dev": true + }, + "micromark-util-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", + "dev": true + }, + "mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true + }, "minimatch": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", @@ -2571,9 +6267,15 @@ "dev": true }, "minipass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", - "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true + }, + "mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", "dev": true }, "mixin-deep": { @@ -2597,32 +6299,18 @@ } } }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "needle": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", - "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", - "dev": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - } - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -2640,23 +6328,122 @@ } } }, - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { - "entities": "^4.4.0" + "wrappy": "1" } }, - "parse5-htmlparser2-tree-adapter": { + "onetime": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "requires": { + "mimic-function": "^5.0.0" + } + }, + "ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "dev": true, + "requires": { + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" + }, + "dependencies": { + "emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true + }, + "string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "requires": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + } + } + } + }, + "pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "dev": true, + "requires": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + } + } + }, + "pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "requires": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + } + }, + "package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, "path-key": { @@ -2675,6 +6462,18 @@ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -2687,12 +6486,94 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "dev": true, + "requires": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + } + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, + "pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "puppeteer": { + "version": "23.11.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.11.1.tgz", + "integrity": "sha512-53uIX3KR5en8l7Vd8n5DUv90Ae9QDQsyIthaUFVzwV6yU750RjqRznEtNMBT20VthqAdemnJN+hxVdmMHKt7Zw==", + "dev": true, + "requires": { + "@puppeteer/browsers": "2.6.1", + "chromium-bidi": "0.11.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1367902", + "puppeteer-core": "23.11.1", + "typed-query-selector": "^2.12.0" + } + }, + "puppeteer-core": { + "version": "23.11.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz", + "integrity": "sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==", + "dev": true, + "requires": { + "@puppeteer/browsers": "2.6.1", + "chromium-bidi": "0.11.0", + "debug": "^4.4.0", + "devtools-protocol": "0.0.1367902", + "typed-query-selector": "^2.12.0", + "ws": "^8.18.0" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + } + } + }, "randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", @@ -2733,6 +6614,43 @@ "util-deprecate": "~1.0.1" } }, + "remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + } + }, + "remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + } + }, + "remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "dev": true, + "requires": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + } + }, "remarkable": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz", @@ -2755,6 +6673,28 @@ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "requires": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + } + }, "run-con": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", @@ -2773,16 +6713,10 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true }, "set-getter": { @@ -2815,6 +6749,44 @@ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, + "socks": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", + "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", + "dev": true, + "requires": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "requires": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + } + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -2827,6 +6799,23 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "dev": true + }, + "streamx": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", + "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", + "dev": true, + "requires": { + "bare-events": "^2.2.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -2919,6 +6908,44 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "tar-fs": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz", + "integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==", + "dev": true, + "requires": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "requires": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dev": true, + "requires": { + "b4a": "^1.6.4" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -2944,6 +6971,24 @@ "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", "dev": true }, + "trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "dev": true + }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true + }, + "typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "dev": true + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -2956,18 +7001,109 @@ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "undici": { "version": "4.16.0", "resolved": "https://registry.npmjs.org/undici/-/undici-4.16.0.tgz", "integrity": "sha512-tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw==", "dev": true }, + "undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "optional": true + }, + "unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + } + }, + "unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0" + } + }, + "unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0" + } + }, + "unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + } + }, + "unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, + "vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + } + }, + "vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3042,11 +7178,107 @@ } } }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "dev": true, + "requires": {} + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dev": true + }, + "zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true } } } diff --git a/package.json b/package.json index f99b090b79..6a08551afc 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "devDependencies": { - "markdown-link-check": "^3.9.3", "markdown-toc": "^1.2.0", "markdownlint-cli": "0.37.0", - "@kt3k/license-checker": "^3.2.2" + "@kt3k/license-checker": "^3.2.2", + "@umbrelladocs/linkspector": "^0.3.13" } } From 71ad801eb00a8191aeaf44e32468eb39ce49fe3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Feb 2025 20:52:11 -0500 Subject: [PATCH 149/178] build(deps): bump @tailwindcss/postcss (#2081) Bumps the npm-production-dependencies group with 1 update in the /src/flagd-ui directory: [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss). Updates `@tailwindcss/postcss` from 4.0.8 to 4.0.9 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.0.9/packages/@tailwindcss-postcss) --- updated-dependencies: - dependency-name: "@tailwindcss/postcss" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/flagd-ui/package-lock.json | 122 ++++++++++++++++----------------- src/flagd-ui/package.json | 2 +- 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 3a0d297460..81e4f1cbe7 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -8,7 +8,7 @@ "name": "flagd-ui", "version": "0.1.0", "dependencies": { - "@tailwindcss/postcss": "^4.0.8", + "@tailwindcss/postcss": "^4.0.9", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", "next": "15.1.7", @@ -1064,42 +1064,42 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.8.tgz", - "integrity": "sha512-FKArQpbrbwv08TNT0k7ejYXpF+R8knZFAatNc0acOxbgeqLzwb86r+P3LGOjIeI3Idqe9CVkZrh4GlsJLJKkkw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.9.tgz", + "integrity": "sha512-tOJvdI7XfJbARYhxX+0RArAhmuDcczTC46DGCEziqxzzbIaPnfYaIyRT31n4u8lROrsO7Q6u/K9bmQHL2uL1bQ==", "license": "MIT", "dependencies": { "enhanced-resolve": "^5.18.1", "jiti": "^2.4.2", - "tailwindcss": "4.0.8" + "tailwindcss": "4.0.9" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.8.tgz", - "integrity": "sha512-KfMcuAu/Iw+DcV1e8twrFyr2yN8/ZDC/odIGta4wuuJOGkrkHZbvJvRNIbQNhGh7erZTYV6Ie0IeD6WC9Y8Hcw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.9.tgz", + "integrity": "sha512-eLizHmXFqHswJONwfqi/WZjtmWZpIalpvMlNhTM99/bkHtUs6IqgI1XQ0/W5eO2HiRQcIlXUogI2ycvKhVLNcA==", "license": "MIT", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.0.8", - "@tailwindcss/oxide-darwin-arm64": "4.0.8", - "@tailwindcss/oxide-darwin-x64": "4.0.8", - "@tailwindcss/oxide-freebsd-x64": "4.0.8", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.8", - "@tailwindcss/oxide-linux-arm64-gnu": "4.0.8", - "@tailwindcss/oxide-linux-arm64-musl": "4.0.8", - "@tailwindcss/oxide-linux-x64-gnu": "4.0.8", - "@tailwindcss/oxide-linux-x64-musl": "4.0.8", - "@tailwindcss/oxide-win32-arm64-msvc": "4.0.8", - "@tailwindcss/oxide-win32-x64-msvc": "4.0.8" + "@tailwindcss/oxide-android-arm64": "4.0.9", + "@tailwindcss/oxide-darwin-arm64": "4.0.9", + "@tailwindcss/oxide-darwin-x64": "4.0.9", + "@tailwindcss/oxide-freebsd-x64": "4.0.9", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.9", + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.9", + "@tailwindcss/oxide-linux-arm64-musl": "4.0.9", + "@tailwindcss/oxide-linux-x64-gnu": "4.0.9", + "@tailwindcss/oxide-linux-x64-musl": "4.0.9", + "@tailwindcss/oxide-win32-arm64-msvc": "4.0.9", + "@tailwindcss/oxide-win32-x64-msvc": "4.0.9" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.8.tgz", - "integrity": "sha512-We7K79+Sm4mwJHk26Yzu/GAj7C7myemm7PeXvpgMxyxO70SSFSL3uCcqFbz9JA5M5UPkrl7N9fkBe/Y0iazqpA==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.9.tgz", + "integrity": "sha512-YBgy6+2flE/8dbtrdotVInhMVIxnHJPbAwa7U1gX4l2ThUIaPUp18LjB9wEH8wAGMBZUb//SzLtdXXNBHPUl6Q==", "cpu": [ "arm64" ], @@ -1113,9 +1113,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.8.tgz", - "integrity": "sha512-Lv9Isi2EwkCTG1sRHNDi0uRNN1UGFdEThUAGFrydRmQZnraGLMjN8gahzg2FFnOizDl7LB2TykLUuiw833DSNg==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.9.tgz", + "integrity": "sha512-pWdl4J2dIHXALgy2jVkwKBmtEb73kqIfMpYmcgESr7oPQ+lbcQ4+tlPeVXaSAmang+vglAfFpXQCOvs/aGSqlw==", "cpu": [ "arm64" ], @@ -1129,9 +1129,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.8.tgz", - "integrity": "sha512-fWfywfYIlSWtKoqWTjukTHLWV3ARaBRjXCC2Eo0l6KVpaqGY4c2y8snUjp1xpxUtpqwMvCvFWFaleMoz1Vhzlw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.9.tgz", + "integrity": "sha512-4Dq3lKp0/C7vrRSkNPtBGVebEyWt9QPPlQctxJ0H3MDyiQYvzVYf8jKow7h5QkWNe8hbatEqljMj/Y0M+ERYJg==", "cpu": [ "x64" ], @@ -1145,9 +1145,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.8.tgz", - "integrity": "sha512-SO+dyvjJV9G94bnmq2288Ke0BIdvrbSbvtPLaQdqjqHR83v5L2fWADyFO+1oecHo9Owsk8MxcXh1agGVPIKIqw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.9.tgz", + "integrity": "sha512-k7U1RwRODta8x0uealtVt3RoWAWqA+D5FAOsvVGpYoI6ObgmnzqWW6pnVwz70tL8UZ/QXjeMyiICXyjzB6OGtQ==", "cpu": [ "x64" ], @@ -1161,9 +1161,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.8.tgz", - "integrity": "sha512-ZSHggWiEblQNV69V0qUK5vuAtHP+I+S2eGrKGJ5lPgwgJeAd6GjLsVBN+Mqn2SPVfYM3BOpS9jX/zVg9RWQVDQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.9.tgz", + "integrity": "sha512-NDDjVweHz2zo4j+oS8y3KwKL5wGCZoXGA9ruJM982uVJLdsF8/1AeKvUwKRlMBpxHt1EdWJSAh8a0Mfhl28GlQ==", "cpu": [ "arm" ], @@ -1177,9 +1177,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.8.tgz", - "integrity": "sha512-xWpr6M0OZLDNsr7+bQz+3X7zcnDJZJ1N9gtBWCtfhkEtDjjxYEp+Lr5L5nc/yXlL4MyCHnn0uonGVXy3fhxaVA==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.9.tgz", + "integrity": "sha512-jk90UZ0jzJl3Dy1BhuFfRZ2KP9wVKMXPjmCtY4U6fF2LvrjP5gWFJj5VHzfzHonJexjrGe1lMzgtjriuZkxagg==", "cpu": [ "arm64" ], @@ -1193,9 +1193,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.8.tgz", - "integrity": "sha512-5tz2IL7LN58ssGEq7h/staD7pu/izF/KeMWdlJ86WDe2Ah46LF3ET6ZGKTr5eZMrnEA0M9cVFuSPprKRHNgjeg==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.9.tgz", + "integrity": "sha512-3eMjyTC6HBxh9nRgOHzrc96PYh1/jWOwHZ3Kk0JN0Kl25BJ80Lj9HEvvwVDNTgPg154LdICwuFLuhfgH9DULmg==", "cpu": [ "arm64" ], @@ -1209,9 +1209,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.8.tgz", - "integrity": "sha512-KSzMkhyrxAQyY2o194NKVKU9j/c+NFSoMvnHWFaNHKi3P1lb+Vq1UC19tLHrmxSkKapcMMu69D7+G1+FVGNDXQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.9.tgz", + "integrity": "sha512-v0D8WqI/c3WpWH1kq/HP0J899ATLdGZmENa2/emmNjubT0sWtEke9W9+wXeEoACuGAhF9i3PO5MeyditpDCiWQ==", "cpu": [ "x64" ], @@ -1225,9 +1225,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.8.tgz", - "integrity": "sha512-yFYKG5UtHTRimjtqxUWXBgI4Tc6NJe3USjRIVdlTczpLRxq/SFwgzGl5JbatCxgSRDPBFwRrNPxq+ukfQFGdrw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.9.tgz", + "integrity": "sha512-Kvp0TCkfeXyeehqLJr7otsc4hd/BUPfcIGrQiwsTVCfaMfjQZCG7DjI+9/QqPZha8YapLA9UoIcUILRYO7NE1Q==", "cpu": [ "x64" ], @@ -1241,9 +1241,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.8.tgz", - "integrity": "sha512-tndGujmCSba85cRCnQzXgpA2jx5gXimyspsUYae5jlPyLRG0RjXbDshFKOheVXU4TLflo7FSG8EHCBJ0EHTKdQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.9.tgz", + "integrity": "sha512-m3+60T/7YvWekajNq/eexjhV8z10rswcz4BC9bioJ7YaN+7K8W2AmLmG0B79H14m6UHE571qB0XsPus4n0QVgQ==", "cpu": [ "arm64" ], @@ -1257,9 +1257,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.8.tgz", - "integrity": "sha512-T77jroAc0p4EHVVgTUiNeFn6Nj3jtD3IeNId2X+0k+N1XxfNipy81BEkYErpKLiOkNhpNFjPee8/ZVas29b2OQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.9.tgz", + "integrity": "sha512-dpc05mSlqkwVNOUjGu/ZXd5U1XNch1kHFJ4/cHkZFvaW1RzbHmRt24gvM8/HC6IirMxNarzVw4IXVtvrOoZtxA==", "cpu": [ "x64" ], @@ -1273,17 +1273,17 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.8.tgz", - "integrity": "sha512-SUwlrXjn1ycmUbA0o0n3Y0LqlXqxN5R8HR+ti+OBbRS79wl2seDmiypEs3xJCuQXe07ol81s1AmRMitBmPveJA==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.9.tgz", + "integrity": "sha512-BT/E+pdMqulavEAVM5NCpxmGEwHiLDPpkmg/c/X25ZBW+izTe+aZ+v1gf/HXTrihRoCxrUp5U4YyHsBTzspQKQ==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.0.8", - "@tailwindcss/oxide": "4.0.8", + "@tailwindcss/node": "4.0.9", + "@tailwindcss/oxide": "4.0.9", "lightningcss": "^1.29.1", "postcss": "^8.4.41", - "tailwindcss": "4.0.8" + "tailwindcss": "4.0.9" } }, "node_modules/@types/estree": { @@ -5425,9 +5425,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.8.tgz", - "integrity": "sha512-Me7N5CKR+D2A1xdWA5t5+kjjT7bwnxZOE6/yDI/ixJdJokszsn2n++mdU5yJwrsTpqFX2B9ZNMBJDwcqk9C9lw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.9.tgz", + "integrity": "sha512-12laZu+fv1ONDRoNR9ipTOpUD7RN9essRVkX36sjxuRUInpN7hIiHN4lBd/SIFjbISvnXzp8h/hXzmU8SQQYhw==", "license": "MIT" }, "node_modules/tapable": { diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 8eec4bf229..5e7a136d55 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@tailwindcss/postcss": "^4.0.8", + "@tailwindcss/postcss": "^4.0.9", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", "next": "15.1.7", From 5030f2c15205c6105847f9ee0d2ec3b5448ae1e5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Feb 2025 20:58:14 -0500 Subject: [PATCH 150/178] build(deps): bump the gradle-production-dependencies group across 2 directories with 2 updates (#2083) Bumps the gradle-production-dependencies group with 1 update in the /src/ad directory: [com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java). Bumps the gradle-production-dependencies group with 2 updates in the /src/fraud-detection directory: [com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java) and org.slf4j:slf4j-api. Updates `com.google.api.grpc:proto-google-common-protos` from 2.52.0 to 2.53.0 - [Release notes](https://github.com/googleapis/sdk-platform-java/releases) - [Changelog](https://github.com/googleapis/sdk-platform-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/googleapis/sdk-platform-java/compare/v2.52.0...v2.53.0) Updates `com.google.api.grpc:proto-google-common-protos` from 2.52.0 to 2.53.0 - [Release notes](https://github.com/googleapis/sdk-platform-java/releases) - [Changelog](https://github.com/googleapis/sdk-platform-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/googleapis/sdk-platform-java/compare/v2.52.0...v2.53.0) Updates `org.slf4j:slf4j-api` from 2.0.16 to 2.0.17 --- updated-dependencies: - dependency-name: com.google.api.grpc:proto-google-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.google.api.grpc:proto-google-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/ad/build.gradle | 2 +- src/fraud-detection/build.gradle.kts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ad/build.gradle b/src/ad/build.gradle index 26fe38ce6a..267fac9bfc 100644 --- a/src/ad/build.gradle +++ b/src/ad/build.gradle @@ -40,7 +40,7 @@ dependencies { implementation platform("io.opentelemetry:opentelemetry-bom:${opentelemetryVersion}") implementation platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:${opentelemetryInstrumentationVersion}") - implementation "com.google.api.grpc:proto-google-common-protos:2.52.0", + implementation "com.google.api.grpc:proto-google-common-protos:2.53.0", "com.google.protobuf:protobuf-java:${protocVersion}", "javax.annotation:javax.annotation-api:1.3.2", "io.grpc:grpc-protobuf:${grpcVersion}", diff --git a/src/fraud-detection/build.gradle.kts b/src/fraud-detection/build.gradle.kts index 60e144c545..673a14cc2d 100644 --- a/src/fraud-detection/build.gradle.kts +++ b/src/fraud-detection/build.gradle.kts @@ -31,7 +31,7 @@ dependencies { testImplementation(kotlin("test")) implementation(kotlin("script-runtime")) implementation("org.apache.kafka:kafka-clients:3.9.0") - implementation("com.google.api.grpc:proto-google-common-protos:2.52.0") + implementation("com.google.api.grpc:proto-google-common-protos:2.53.0") implementation("io.grpc:grpc-protobuf:${grpcVersion}") implementation("io.grpc:grpc-stub:${grpcVersion}") implementation("io.grpc:grpc-netty:${grpcVersion}") @@ -40,7 +40,7 @@ dependencies { implementation("io.opentelemetry:opentelemetry-sdk:1.47.0") implementation("io.opentelemetry:opentelemetry-extension-annotations:1.18.0") implementation("org.apache.logging.log4j:log4j-core:2.24.3") - implementation("org.slf4j:slf4j-api:2.0.16") + implementation("org.slf4j:slf4j-api:2.0.17") implementation("com.google.protobuf:protobuf-kotlin:${protobufVersion}") implementation("dev.openfeature:sdk:1.14.1") implementation("dev.openfeature.contrib.providers:flagd:0.11.3") From 8598bb10ff0a3e045befeca0b185d88bdedb1d32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Feb 2025 21:14:04 -0500 Subject: [PATCH 151/178] build(deps-dev): bump the npm-development-dependencies group across 2 directories with 2 updates (#2084) Bumps the npm-development-dependencies group with 1 update in the /src/flagd-ui directory: [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next). Bumps the npm-development-dependencies group with 2 updates in the /src/frontend directory: [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) and [cypress](https://github.com/cypress-io/cypress). Updates `eslint-config-next` from 15.1.7 to 15.2.0 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.2.0/packages/eslint-config-next) Updates `eslint-config-next` from 15.1.7 to 15.2.0 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.2.0/packages/eslint-config-next) Updates `cypress` from 14.0.3 to 14.1.0 - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v14.0.3...v14.1.0) --- updated-dependencies: - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: cypress dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/flagd-ui/package-lock.json | 16 ++++++++-------- src/flagd-ui/package.json | 2 +- src/frontend/package-lock.json | 26 +++++++++++++------------- src/frontend/package.json | 4 ++-- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 81e4f1cbe7..8601e340b0 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -22,7 +22,7 @@ "@types/react-dom": "^19.0.4", "autoprefixer": "^10.4.20", "eslint": "^9", - "eslint-config-next": "15.1.7", + "eslint-config-next": "15.2.0", "postcss": "^8.5.3", "prettier": "^3.5.2", "prettier-plugin-tailwindcss": "^0.6.11", @@ -596,9 +596,9 @@ "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.7.tgz", - "integrity": "sha512-kRP7RjSxfTO13NE317ek3mSGzoZlI33nc/i5hs1KaWpK+egs85xg0DJ4p32QEiHnR0mVjuUfhRIun7awqfL7pQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.2.0.tgz", + "integrity": "sha512-jHFUG2OwmAuOASqq253RAEG/5BYcPHn27p1NoWZDCf4OdvdK0yRYWX92YKkL+Mk2s+GyJrmd/GATlL5b2IySpw==", "dev": true, "license": "MIT", "dependencies": { @@ -2550,13 +2550,13 @@ } }, "node_modules/eslint-config-next": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.7.tgz", - "integrity": "sha512-zXoMnYUIy3XHaAoOhrcYkT9UQWvXqWju2K7NNsmb5wd/7XESDwof61eUdW4QhERr3eJ9Ko/vnXqIrj8kk/drYw==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.2.0.tgz", + "integrity": "sha512-LkG0KKpinAoNPk2HXSx0fImFb/hQ6RnhSxTkpJFTkQ0SmnzsbRsjjN95WC/mDY34nKOenpptYEVvfkCR/h+VjA==", "dev": true, "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.1.7", + "@next/eslint-plugin-next": "15.2.0", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 5e7a136d55..da249805ff 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -23,7 +23,7 @@ "@types/react-dom": "^19.0.4", "autoprefixer": "^10.4.20", "eslint": "^9", - "eslint-config-next": "15.1.7", + "eslint-config-next": "15.2.0", "postcss": "^8.5.3", "prettier": "^3.5.2", "prettier-plugin-tailwindcss": "^0.6.11", diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 259b585ea0..22c7ab6c0f 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -52,9 +52,9 @@ "@types/uuid": "10.0.0", "@typescript-eslint/eslint-plugin": "8.25.0", "@typescript-eslint/parser": "8.25.0", - "cypress": "14.0.3", + "cypress": "14.1.0", "eslint": "9.21.0", - "eslint-config-next": "15.1.7", + "eslint-config-next": "15.2.0", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", "openapi-typescript": "7.6.1", @@ -858,9 +858,9 @@ "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.7.tgz", - "integrity": "sha512-kRP7RjSxfTO13NE317ek3mSGzoZlI33nc/i5hs1KaWpK+egs85xg0DJ4p32QEiHnR0mVjuUfhRIun7awqfL7pQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.2.0.tgz", + "integrity": "sha512-jHFUG2OwmAuOASqq253RAEG/5BYcPHn27p1NoWZDCf4OdvdK0yRYWX92YKkL+Mk2s+GyJrmd/GATlL5b2IySpw==", "dev": true, "license": "MIT", "dependencies": { @@ -4373,9 +4373,9 @@ "license": "BSD-2-Clause" }, "node_modules/cypress": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.0.3.tgz", - "integrity": "sha512-yIdvobANw3kS+KF/t5vwjjPNufBA8ux7iQHaWxPTkUw2yCKI72m9mKM24eOwE84Wk4ALPsSvEcGbDrwgmhr4RA==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.1.0.tgz", + "integrity": "sha512-pPPj8Uu9NwjaaiXAEcjYZZmgsq6v9Zs1Nw6a+zRF+ANgYSNhH4S32SjFRsvMcuOHR/8dp4GBJhBPqIPSs+TxaA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -4391,7 +4391,7 @@ "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", - "ci-info": "^4.0.0", + "ci-info": "^4.1.0", "cli-cursor": "^3.1.0", "cli-table3": "~0.6.1", "commander": "^6.2.1", @@ -4979,13 +4979,13 @@ } }, "node_modules/eslint-config-next": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.7.tgz", - "integrity": "sha512-zXoMnYUIy3XHaAoOhrcYkT9UQWvXqWju2K7NNsmb5wd/7XESDwof61eUdW4QhERr3eJ9Ko/vnXqIrj8kk/drYw==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.2.0.tgz", + "integrity": "sha512-LkG0KKpinAoNPk2HXSx0fImFb/hQ6RnhSxTkpJFTkQ0SmnzsbRsjjN95WC/mDY34nKOenpptYEVvfkCR/h+VjA==", "dev": true, "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.1.7", + "@next/eslint-plugin-next": "15.2.0", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", diff --git a/src/frontend/package.json b/src/frontend/package.json index eb5726abc9..f8d9c58d62 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -55,9 +55,9 @@ "@types/uuid": "10.0.0", "@typescript-eslint/eslint-plugin": "8.25.0", "@typescript-eslint/parser": "8.25.0", - "cypress": "14.0.3", + "cypress": "14.1.0", "eslint": "9.21.0", - "eslint-config-next": "15.1.7", + "eslint-config-next": "15.2.0", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.1.0", "openapi-typescript": "7.6.1", From 8fd20a7bb247b4ef566578642afebd014c01aafe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Feb 2025 14:47:38 +0100 Subject: [PATCH 152/178] build(deps): bump docker/build-push-action (#2090) Bumps the actions-production-dependencies group with 1 update in the / directory: [docker/build-push-action](https://github.com/docker/build-push-action). Updates `docker/build-push-action` from 6.14.0 to 6.15.0 - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v6.14.0...v6.15.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/component-build-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/component-build-images.yml b/.github/workflows/component-build-images.yml index 2dd98a422b..5d4011873b 100644 --- a/.github/workflows/component-build-images.yml +++ b/.github/workflows/component-build-images.yml @@ -189,7 +189,7 @@ jobs: max-parallelism = 2 - name: Matrix Build and push demo images if: steps.check_changes.outputs.skip == 'false' - uses: docker/build-push-action@v6.14.0 + uses: docker/build-push-action@v6.15.0 with: context: ${{ matrix.file_tag.context }} file: ${{ matrix.file_tag.file }} From 8072c5bd72e15b2b1787fae0d1c09defec3b4f13 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Thu, 27 Feb 2025 15:57:50 -0500 Subject: [PATCH 153/178] [grafana] cleanup dashboards (#2085) --- CHANGELOG.md | 2 + docker-compose.minimal.yml | 1 + docker-compose.yml | 1 + src/grafana/grafana.ini | 4 +- src/grafana/provisioning/dashboards/demo.yaml | 1 + .../dashboards/demo/demo-dashboard.json | 386 +- .../dashboards/demo/exemplars-dashboard.json | 2 +- .../opentelemetry-collector-data-flow.json | 2332 -------- .../demo/opentelemetry-collector.json | 4849 ++++++++++++++--- .../demo/spanmetrics-dashboard.json | 2 +- .../provisioning/datasources/opensearch.yaml | 3 +- src/otel-collector/otelcol-config.yml | 31 +- src/prometheus/prometheus-config.yaml | 6 - 13 files changed, 4224 insertions(+), 3396 deletions(-) delete mode 100644 src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b7ff53d2e..07dc3ab017 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ the release. ([#2070](https://github.com/open-telemetry/opentelemetry-demo/pull/2070)) * [frontend] Cypress tests base image updated to 14.0.3 ([#2072](https://github.com/open-telemetry/opentelemetry-demo/pull/2072)) +* [grafana] Update dashboards with service map + ([#2085](https://github.com/open-telemetry/opentelemetry-demo/pull/2085)) ## 2.0.0 diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index 0b50e6a490..a52755b0cc 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -617,6 +617,7 @@ services: - OTEL_COLLECTOR_HOST - OTEL_COLLECTOR_PORT_GRPC - OTEL_COLLECTOR_PORT_HTTP + - GOMEMLIMIT=160MiB # Prometheus prometheus: diff --git a/docker-compose.yml b/docker-compose.yml index 5bb59ac14f..7013b1028f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -763,6 +763,7 @@ services: - OTEL_COLLECTOR_HOST - OTEL_COLLECTOR_PORT_GRPC - OTEL_COLLECTOR_PORT_HTTP + - GOMEMLIMIT=160MiB # Prometheus prometheus: diff --git a/src/grafana/grafana.ini b/src/grafana/grafana.ini index 2443041290..0a653bde68 100644 --- a/src/grafana/grafana.ini +++ b/src/grafana/grafana.ini @@ -373,7 +373,7 @@ serve_from_sub_path = true ;default_theme = dark # Path to a custom home page. Users are only redirected to this if the default home dashboard is used. It should match a frontend route and contain a leading slash. -; home_page = +home_page = /grafana/dashboards/f/demo/?orgId=1 # External user management, these options affect the organization users view ;external_manage_link_url = @@ -436,7 +436,7 @@ disable_login_form = true #################################### Anonymous Auth ###################### [auth.anonymous] # enable anonymous access -enabled = true +enabled = true # specify organization name that should be used for unauthenticated users org_name = Main Org. diff --git a/src/grafana/provisioning/dashboards/demo.yaml b/src/grafana/provisioning/dashboards/demo.yaml index 5c685e11d0..b75b4a478e 100644 --- a/src/grafana/provisioning/dashboards/demo.yaml +++ b/src/grafana/provisioning/dashboards/demo.yaml @@ -7,6 +7,7 @@ providers: - name: 'OpenTelemetry Demo' orgId: 1 folder: 'Demo' + folderUid: 'demo' type: file disableDeletion: false editable: true diff --git a/src/grafana/provisioning/dashboards/demo/demo-dashboard.json b/src/grafana/provisioning/dashboards/demo/demo-dashboard.json index 46814412e7..e86d5534f8 100644 --- a/src/grafana/provisioning/dashboards/demo/demo-dashboard.json +++ b/src/grafana/provisioning/dashboards/demo/demo-dashboard.json @@ -23,8 +23,8 @@ }, "editable": true, "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 4, + "graphTooltip": 1, + "id": 2, "links": [], "panels": [ { @@ -33,7 +33,7 @@ "overrides": [] }, "gridPos": { - "h": 2, + "h": 3, "w": 24, "x": 0, "y": 0 @@ -45,10 +45,10 @@ "showLineNumbers": false, "showMiniMap": false }, - "content": "This dashboard shows RED metrics for the selected service, as generated by the spanmetrics connector in the OpenTelemetry Collector.\nIf the selected service emits logs, the logs will also be displayed.\nCustom metrics generated by some services are also displayed.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "content": "This dashboard shows RED metrics for the selected service, as generated by the spanmetrics connector in the OpenTelemetry Collector.\nIf the selected service emits logs, the logs will also be displayed.\nCustom metrics generated by some services are also displayed. \n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", "mode": "html" }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "title": "", "type": "text" }, @@ -58,11 +58,11 @@ "h": 1, "w": 24, "x": 0, - "y": 2 + "y": 3 }, "id": 14, "panels": [], - "title": "Spanmetrics", + "title": "Spanmetrics (RED metrics)", "type": "row" }, { @@ -70,7 +70,6 @@ "type": "prometheus", "uid": "webstore-metrics" }, - "description": "", "fieldConfig": { "defaults": { "color": { @@ -99,7 +98,7 @@ "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -123,17 +122,17 @@ } ] }, - "unit": "dtdurationms" + "unit": "reqps" }, "overrides": [] }, "gridPos": { "h": 8, - "w": 12, + "w": 8, "x": 0, - "y": 3 + "y": 4 }, - "id": 2, + "id": 12, "interval": "2m", "options": { "legend": { @@ -143,11 +142,12 @@ "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -155,53 +155,13 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "exemplar": true, - "expr": "histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", - "legendFormat": "quantile50", + "expr": "sum by (span_name) (rate(traces_span_metrics_duration_milliseconds_count{service_name=\"${service}\"}[$__rate_interval]))", + "legendFormat": "{{ span_name }}", "range": true, "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "histogram_quantile(0.95, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", - "hide": false, - "legendFormat": "quantile95", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "histogram_quantile(0.99, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", - "hide": false, - "legendFormat": "quantile99", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "histogram_quantile(0.999, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", - "hide": false, - "legendFormat": "quantile999", - "range": true, - "refId": "D" } ], - "title": "Latency for ${service}", + "title": "Requests Rate by Span Name", "type": "timeseries" }, { @@ -238,7 +198,7 @@ "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -267,9 +227,9 @@ }, "gridPos": { "h": 8, - "w": 12, - "x": 12, - "y": 3 + "w": 8, + "x": 8, + "y": 4 }, "id": 10, "interval": "2m", @@ -281,11 +241,12 @@ "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -293,14 +254,14 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": " sum by (span_name) (rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\", service_name=\"${service}\"}[$__rate_interval]))", + "expr": "sum by (span_name) (rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\", service_name=\"${service}\"}[$__rate_interval]))", "interval": "", "legendFormat": "{{ span_name }}", "range": true, "refId": "A" } ], - "title": "Error Rate for ${service} by span name", + "title": "Error Rate by Span Name", "type": "timeseries" }, { @@ -308,6 +269,7 @@ "type": "prometheus", "uid": "webstore-metrics" }, + "description": "", "fieldConfig": { "defaults": { "color": { @@ -336,7 +298,7 @@ "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -360,31 +322,32 @@ } ] }, - "unit": "reqps" + "unit": "dtdurationms" }, "overrides": [] }, "gridPos": { "h": 8, - "w": 12, - "x": 0, - "y": 11 + "w": 8, + "x": 16, + "y": 4 }, - "id": 12, + "id": 2, "interval": "2m", "options": { "legend": { "calcs": [], - "displayMode": "table", + "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -392,13 +355,14 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum by (span_name) (rate(traces_span_metrics_duration_milliseconds_count{service_name=\"${service}\"}[$__rate_interval]))", - "legendFormat": "{{ span_name }}", + "exemplar": false, + "expr": "histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le, span_name))", + "legendFormat": "{{span_name}}", "range": true, "refId": "A" } ], - "title": "Requests Rate for ${service} by span name", + "title": "Average Duration by Span Name", "type": "timeseries" }, { @@ -407,17 +371,17 @@ "h": 1, "w": 24, "x": 0, - "y": 19 + "y": 12 }, "id": 19, "panels": [], - "title": "Application Logs", + "title": "Application Log Records", "type": "row" }, { "datasource": { "type": "grafana-opensearch-datasource", - "uid": "P9744FCCEAAFBD98F" + "uid": "webstore-logs" }, "description": "", "fieldConfig": { @@ -466,7 +430,7 @@ "h": 8, "w": 4, "x": 0, - "y": 20 + "y": 13 }, "id": 20, "options": { @@ -481,23 +445,26 @@ }, "showHeader": true }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "alias": "", "bucketAggs": [ { - "field": "time", - "id": "2", + "field": "severity.text.keyword", + "id": "3", "settings": { - "interval": "auto" + "min_doc_count": "1", + "order": "desc", + "orderBy": "_count", + "size": "0" }, - "type": "date_histogram" + "type": "terms" } ], "datasource": { "type": "grafana-opensearch-datasource", - "uid": "P9744FCCEAAFBD98F" + "uid": "webstore-logs" }, "format": "table", "metrics": [ @@ -509,16 +476,30 @@ "query": "search source=otel\n| where resource.service.name=\"${service}\"\n| stats count() by severity.text", "queryType": "PPL", "refId": "A", - "timeField": "time" + "timeField": "observedTimestamp" + } + ], + "title": "Log Records by Severity", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": {}, + "includeByName": {}, + "indexByName": {}, + "renameByName": { + "Count": "", + "severity.text.keyword": "Severity" + } + } } ], - "title": "${service} Log entries by Severity", "type": "table" }, { "datasource": { "type": "grafana-opensearch-datasource", - "uid": "P9744FCCEAAFBD98F" + "uid": "webstore-logs" }, "fieldConfig": { "defaults": { @@ -528,9 +509,11 @@ "custom": { "align": "auto", "cellOptions": { - "type": "auto" + "type": "auto", + "wrapText": false }, - "inspect": false + "filterable": true, + "inspect": true }, "mappings": [], "thresholds": { @@ -553,10 +536,29 @@ "id": "byName", "options": "observedTimestamp" }, + "properties": [] + }, + { + "matcher": { + "id": "byName", + "options": "body" + }, "properties": [ { "id": "custom.width", - "value": 222 + "value": 386 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "severity.text" + }, + "properties": [ + { + "id": "custom.width", + "value": 127 } ] } @@ -566,7 +568,7 @@ "h": 8, "w": 20, "x": 4, - "y": 20 + "y": 13 }, "id": 17, "options": { @@ -580,46 +582,72 @@ "show": false }, "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "observedTimestamp" - } - ] + "sortBy": [] }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "alias": "", - "bucketAggs": [ - { - "field": "time", - "id": "2", - "settings": { - "interval": "auto" - }, - "type": "date_histogram" - } - ], + "bucketAggs": [], "datasource": { "type": "grafana-opensearch-datasource", - "uid": "P9744FCCEAAFBD98F" + "uid": "webstore-logs" }, - "format": "logs", + "format": "table", "hide": false, "metrics": [ { "id": "1", - "type": "count" + "settings": { + "order": "desc", + "size": "100", + "useTimeRange": true + }, + "type": "raw_data" } ], - "query": "search source=otel\n| where resource.service.name=\"${service}\"| sort - observedTimestamp | head 100", + "query": "search source=otel\n| where resource.service.name=\"${service}\"\n| sort - observedTimestamp \n| head 100", "queryType": "PPL", "refId": "A", "timeField": "observedTimestamp" } ], - "title": "${service} Logs (100 recent entries)", + "title": "Log Records (100 recent entries)", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "@timestamp": true + }, + "includeByName": {}, + "indexByName": { + "@timestamp": 1, + "attributes.data_stream.dataset": 4, + "attributes.data_stream.namespace": 5, + "attributes.data_stream.type": 6, + "attributes.productId": 7, + "attributes.quantity": 8, + "attributes.userId": 9, + "body": 3, + "instrumentationScope.name": 10, + "observedTimestamp": 0, + "resource.container.id": 11, + "resource.docker.cli.cobra.command_path": 12, + "resource.host.name": 13, + "resource.service.name": 14, + "resource.telemetry.sdk.language": 15, + "resource.telemetry.sdk.name": 16, + "resource.telemetry.sdk.version": 17, + "severity.number": 18, + "severity.text": 2, + "spanId": 19, + "traceId": 20 + }, + "renameByName": {} + } + } + ], "type": "table" }, { @@ -628,7 +656,7 @@ "h": 1, "w": 24, "x": 0, - "y": 28 + "y": 21 }, "id": 18, "panels": [], @@ -668,7 +696,7 @@ "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -683,7 +711,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -699,7 +728,7 @@ "h": 8, "w": 12, "x": 0, - "y": 29 + "y": 22 }, "id": 6, "options": { @@ -710,11 +739,12 @@ "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -788,7 +818,7 @@ "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -803,7 +833,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -819,7 +850,7 @@ "h": 8, "w": 12, "x": 12, - "y": 29 + "y": 22 }, "id": 8, "options": { @@ -830,11 +861,12 @@ "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -878,7 +910,7 @@ "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, - "drawStyle": "bars", + "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { @@ -893,7 +925,7 @@ "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -908,7 +940,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -923,7 +956,7 @@ "h": 8, "w": 12, "x": 0, - "y": 37 + "y": 30 }, "id": 4, "options": { @@ -934,11 +967,12 @@ "showLegend": false }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -989,7 +1023,7 @@ "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -1004,7 +1038,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1019,7 +1054,7 @@ "h": 8, "w": 12, "x": 12, - "y": 37 + "y": 30 }, "id": 16, "interval": "2m", @@ -1031,11 +1066,12 @@ "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1052,6 +1088,59 @@ ], "title": "Quote Service batch span processor", "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 38 + }, + "id": 23, + "panels": [], + "title": "Service Dependency", + "type": "row" + }, + { + "datasource": { + "type": "jaeger", + "uid": "webstore-traces" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 18, + "w": 24, + "x": 0, + "y": 39 + }, + "id": 22, + "options": { + "edges": { + "mainStatUnit": "requests" + }, + "nodes": { + "arcs": [], + "mainStatUnit": "" + }, + "zoomMode": "cooperative" + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "jaeger", + "uid": "webstore-traces" + }, + "queryType": "dependencyGraph", + "refId": "A" + } + ], + "title": "Service Dependency", + "type": "nodeGraph" } ], "preload": false, @@ -1071,6 +1160,7 @@ }, "definition": "traces_span_metrics_duration_milliseconds_bucket", "includeAll": false, + "label": "Service", "name": "service", "options": [], "query": { @@ -1078,14 +1168,14 @@ "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, - "regex": "/.*service_name=\\\"([^\\\"]+)\\\".*/", + "regex": "/.*service.name=\\\"([^\\\"]+)\\\".*/", "sort": 1, "type": "query" } ] }, "time": { - "from": "now-1h", + "from": "now-15m", "to": "now" }, "timepicker": {}, diff --git a/src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json b/src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json index 6ac22bc780..9c3ec2611e 100644 --- a/src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json +++ b/src/grafana/provisioning/dashboards/demo/exemplars-dashboard.json @@ -447,7 +447,7 @@ "list": [] }, "time": { - "from": "now-1h", + "from": "now-15m", "to": "now" }, "timepicker": {}, diff --git a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json deleted file mode 100644 index fbcc7df945..0000000000 --- a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector-data-flow.json +++ /dev/null @@ -1,2332 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "otelcol metrics dashboard", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 6, - "links": [], - "panels": [ - { - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 56, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "This dashboard is used to understand the data flows for the OpenTelemetry Collector's metrics and traces pipelines.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", - "mode": "html" - }, - "pluginVersion": "11.4.0", - "title": "", - "type": "text" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 2 - }, - "id": 8, - "panels": [], - "title": "Process", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Otel Collector Instance", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 0, - "y": 3 - }, - "id": 6, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "center", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "count(count(otelcol_process_cpu_seconds_total{service_instance_id=~\".*\"}) by (service_instance_id))", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Instance", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "otelcol_process_cpu_seconds", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 3, - "y": 3 - }, - "id": 24, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "avg(rate(otelcol_process_cpu_seconds_total{}[$__rate_interval])*100) by (instance)", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Cpu", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Memory Rss\navg(otelcol_process_memory_rss{}) by (instance)", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 6, - "y": 3 - }, - "id": 38, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "avg(otelcol_process_memory_rss{}) by (instance)", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Memory", - "type": "gauge" - }, - { - "description": "", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 15, - "x": 9, - "y": 3 - }, - "id": 32, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "## Opentelemetry Collector Data Ingress/Egress\n\n`service_version:` ${service_version}\n\n`opentelemetry collector:` contrib\n\n", - "mode": "markdown" - }, - "pluginVersion": "11.4.0", - "title": "", - "type": "text" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 7 - }, - "id": 10, - "panels": [], - "title": "Trace Pipeline", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "(avg(sum by(job) (rate(otelcol_exporter_sent_spans{}[$__range]))) / avg(sum by(job) (rate(otelcol_receiver_accepted_spans{}[$__range])))) ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-blue", - "value": null - }, - { - "color": "semi-dark-red", - "value": 0 - }, - { - "color": "super-light-orange", - "value": 0.4 - }, - { - "color": "dark-blue", - "value": 0.9 - }, - { - "color": "super-light-orange", - "value": 1.2 - }, - { - "color": "dark-red", - "value": 2.1 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 19, - "w": 3, - "x": 0, - "y": 8 - }, - "id": 55, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": false, - "sizing": "auto" - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_spans_total{}[$__range])))", - "format": "time_series", - "hide": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "export" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_spans_total{}[$__range])))", - "format": "time_series", - "hide": true, - "legendFormat": "__auto", - "range": true, - "refId": "acc" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "(avg(sum by(job) (rate(otelcol_exporter_sent_spans_total{}[$__range]))) / avg(sum by(job) (rate(otelcol_receiver_accepted_spans_total{}[$__range])))) ", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Export Ratio", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 21, - "x": 3, - "y": 8 - }, - "id": 4, - "options": { - "edges": {}, - "nodes": { - "mainStatUnit": "flops" - } - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "label_join(label_join(\n(rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n \nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", - "format": "table", - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n\n ,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n or\n\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n ,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" - } - ], - "title": "", - "type": "nodeGraph" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Spans Accepted by Receiver and Transport", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "noValue": "no data", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 5, - "x": 3, - "y": 19 - }, - "id": 12, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_spans_total{}[$__rate_interval])) by (receiver,transport)", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, - "refId": "A" - } - ], - "title": "Accepted", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total Spans Accepted ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 3, - "x": 8, - "y": 19 - }, - "id": 13, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_spans_total{}[$__rate_interval])) ", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, - "refId": "A" - } - ], - "title": "Total ", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total Batch Processed", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 5, - "x": 11, - "y": 19 - }, - "id": 15, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_processor_batch_batch_send_size_sum{}[$__rate_interval])) by (processor)", - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Batch", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 3, - "x": 16, - "y": 19 - }, - "id": 14, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_spans_total{}[$__interval])) ", - "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Total ", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Sent by Exporter", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 5, - "x": 19, - "y": 19 - }, - "id": 30, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_spans_total{}[$__rate_interval])) by (exporter)", - "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Sent", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "noValue": "no data", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 5, - "x": 3, - "y": 24 - }, - "id": 17, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_spans_total{}[$__rate_interval])) by (receiver,transport)", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, - "refId": "A" - } - ], - "title": "Refused", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total Spans Accepted ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 8, - "y": 24 - }, - "id": 18, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_spans_total{}[$__rate_interval])) ", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, - "refId": "A" - } - ], - "title": "Total ", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "otelcol_exporter_send_failed_spans", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 16, - "y": 24 - }, - "id": 19, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_spans_total{}[$__rate_interval])) ", - "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Total ", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Sent by Exporter\notelcol_exporter_send_failed_spans", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 5, - "x": 19, - "y": 24 - }, - "id": 20, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_spans_total{}[$__rate_interval])) by (exporter)", - "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Failed", - "type": "stat" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 27 - }, - "id": 22, - "panels": [], - "title": "Metrics Pipeline", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points{}[$__range]))) versus avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points{}[$__range])))", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-blue" - }, - { - "color": "semi-dark-red", - "value": 0 - }, - { - "color": "super-light-orange", - "value": 0.4 - }, - { - "color": "dark-blue", - "value": 0.9 - }, - { - "color": "super-light-orange", - "value": 1.2 - }, - { - "color": "dark-red", - "value": 2.1 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 19, - "w": 3, - "x": 0, - "y": 28 - }, - "id": 54, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/.*/", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": false, - "sizing": "auto" - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points_total{}[$__range])))", - "format": "time_series", - "hide": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "export" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points_total{}[$__range])))", - "format": "time_series", - "hide": true, - "legendFormat": "__auto", - "range": true, - "refId": "acc" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "( avg(sum by(job) (rate(otelcol_exporter_sent_metric_points_total{}[$__range]))) /avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points_total{}[$__range]))))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Export Ratio", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "percent", - "binary": { - "left": "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points{}[3600s])))", - "operator": "/", - "reducer": "sum", - "right": "avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points{}[3600s])))" - }, - "mode": "binary", - "reduce": { - "reducer": "sum" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "(sum(rate(otelcol_exporter_sent_metric_points{exporter=\"prometheus\"}[1m0s])) )": true, - "Time": true, - "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points{}[3600s])))": true, - "avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points{}[3600s])))": true, - "{instance=\"otelcol:9464\", job=\"otel\"}": true - }, - "indexByName": {}, - "renameByName": { - "Time": "", - "percent": "Percent", - "{exporter=\"debug\", instance=\"otelcol:8888\", job=\"otel-collector\", service_instance_id=\"fbfa720a-ebf9-45c8-a79a-9d3b6021a663\", service_name=\"otelcol-contrib\", service_version=\"0.70.0\"}": "" - } - } - } - ], - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Metrics Signalling Pipelines", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 21, - "x": 3, - "y": 28 - }, - "id": 25, - "options": { - "edges": {}, - "nodes": { - "mainStatUnit": "flops" - } - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "\nlabel_join(label_join(\n(rate(otelcol_receiver_accepted_metric_points_total{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\n\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\n\n\n\n\nor\nlabel_replace(label_replace(\nsum (rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", - "format": "table", - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_metric_points_total{}[$__interval]))\n\n,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\nor\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\n\n\n\nor\n\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" - } - ], - "title": "", - "type": "nodeGraph" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "otelcol_receiver_accepted_metric_points", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "noValue": "no data", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 5, - "x": 3, - "y": 39 - }, - "id": 26, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_metric_points_total{}[$__rate_interval])) by (receiver,transport)", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, - "refId": "A" - } - ], - "title": "Accepted", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "otelcol_receiver_accepted_metric_points\nTotal Accepted ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 3, - "x": 8, - "y": 39 - }, - "id": 27, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_metric_points_total{}[$__rate_interval])) ", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, - "refId": "A" - } - ], - "title": "Total ", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 5, - "x": 11, - "y": 39 - }, - "id": 28, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_processor_batch_batch_send_size_sum{}[$__rate_interval])) by (processor)", - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Batch", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total Export ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 3, - "x": 16, - "y": 39 - }, - "id": 29, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_metric_points_total{}[$__rate_interval])) ", - "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Total ", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Sent by Exporter", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 5, - "x": 19, - "y": 39 - }, - "id": 16, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_metric_points_total{}[$__rate_interval])) by (exporter) ", - "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Sent", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "noValue": "no data", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 5, - "x": 3, - "y": 44 - }, - "id": 47, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_metric_points_total{}[$__rate_interval])) by (receiver,transport)", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, - "refId": "A" - } - ], - "title": "Refused", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total Refused \nsum(rate(otelcol_receiver_refused_metric_points{}[$__rate_interval])) ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 8, - "y": 44 - }, - "id": 48, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_metric_points_total{}[$__rate_interval])) ", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, - "refId": "A" - } - ], - "title": "Total ", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total Failed Export ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 16, - "y": 44 - }, - "id": 49, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_metric_points_total{}[$__rate_interval])) ", - "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Total", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Sent by Exporter\notelcol_exporter_send_failed_metric_points", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 5, - "x": 19, - "y": 44 - }, - "id": 50, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_metric_points_total{}[$__rate_interval])) by (exporter)", - "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Failed", - "type": "stat" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 47 - }, - "id": 35, - "panels": [], - "title": "Prometheus Scrape", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "otelcol prometheus exporter 8888 export rate versus prometheus scrape metrics", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-blue" - }, - { - "color": "semi-dark-red", - "value": 0 - }, - { - "color": "super-light-orange", - "value": 0.4 - }, - { - "color": "dark-blue", - "value": 0.9 - }, - { - "color": "super-light-orange", - "value": 1.2 - }, - { - "color": "dark-red", - "value": 2.1 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 3, - "x": 0, - "y": 48 - }, - "id": 53, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/.*/", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": false, - "sizing": "auto" - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "(sum_over_time(scrape_samples_scraped{job=\"otel-collector\"}[$__range])/ count_over_time(scrape_samples_scraped{job=\"otel-collector\"}[$__range])/(5*30)) ", - "format": "time_series", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "accepted" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "(sum(rate(otelcol_exporter_sent_metric_points_total{exporter=\"prometheus\"}[$__rate_interval])) )", - "format": "time_series", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Exported/Scraped", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "percent", - "binary": { - "left": "{instance=\"otelcol:9464\", job=\"otel-collector\"}", - "operator": "/", - "reducer": "sum", - "right": "(sum(rate(otelcol_exporter_sent_metric_points{exporter=\"prometheus\"}[1m0s])) )" - }, - "mode": "binary", - "reduce": { - "reducer": "sum" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "(sum(rate(otelcol_exporter_sent_metric_points{exporter=\"prometheus\"}[1m0s])) )": true, - "Time": true, - "{instance=\"otelcol:9464\", job=\"otel\"}": true - }, - "indexByName": {}, - "renameByName": { - "percent": "Percent" - } - } - } - ], - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "sum_over_time(scrape_samples_scraped[$__range])/ count_over_time(scrape_samples_scraped[$__range])", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 5, - "x": 3, - "y": 48 - }, - "id": 37, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "value_and_name", - "wideLayout": true - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum_over_time(scrape_samples_scraped[$__range])/ count_over_time(scrape_samples_scraped[$__range])/(5*30)", - "format": "time_series", - "instant": false, - "legendFormat": "{{job}}/{{instance}}", - "range": true, - "refId": "A" - } - ], - "title": "Samples Scraped", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "scrape_samples_scraped{job!=\"\"}\nTotal Samples Scraped", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 3, - "x": 8, - "y": 48 - }, - "id": 42, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum_over_time(scrape_samples_scraped[$__range])/ count_over_time(scrape_samples_scraped[$__range])/(5*30)", - "format": "time_series", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Total", - "transformations": [ - { - "id": "calculateField", - "options": { - "mode": "reduceRow", - "reduce": { - "include": [ - "{instance=\"otelcol:8888\", job=\"otel-collector\"}" - ], - "reducer": "sum" - }, - "replaceFields": true - } - } - ], - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 8, - "x": 11, - "y": 48 - }, - "id": 41, - "options": { - "edges": {}, - "nodes": {} - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "label_replace(label_replace(label_replace(\nsum (scrape_samples_scraped{job!=\"\"}) by (instance)\n, \"id\", \"$0\", \"instance\", \".*\")\n, \"title\", \"$0\", \"instance\", \".*\")\n,\"mainstat\",\"\",\"\",\"\")\n\nor \n\nlabel_replace(label_replace(label_replace(\nsum (scrape_samples_scraped{job!=\"\"})\n, \"id\", \"prometheus\", \"\", \"\")\n, \"title\", \"prometheus\", \"\", \"\")\n,\"mainstat\",\"\",\"\",\"\")\n", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "label_join(\nlabel_replace(label_replace(\nsum (scrape_samples_scraped{job!=\"\"}) by (instance)\n,\"source\",\"$0\",\"instance\",\".*\")\n,\"target\",\"prometheus\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" - } - ], - "title": "", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true - }, - "indexByName": {}, - "renameByName": {} - } - } - ], - "type": "nodeGraph" - }, - { - "description": "Sent by Exporter", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 5, - "x": 19, - "y": 48 - }, - "id": 52, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "\n \n## Prometheus Config\n\n`evaluation_interval:` 30s\n\n`scrape_interval:` 5s", - "mode": "markdown" - }, - "pluginVersion": "11.3.0", - "title": "", - "type": "text" - } - ], - "preload": false, - "refresh": false, - "schemaVersion": 40, - "tags": [], - "templating": { - "list": [ - { - "allValue": ".*", - "current": { - "text": "0.70.0", - "value": "0.70.0" - }, - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "definition": "query_result(sum(otelcol_process_uptime{}) by (service_version))\n", - "hide": 2, - "includeAll": false, - "label": "service_version", - "multi": true, - "name": "service_version", - "options": [], - "query": { - "query": "query_result(sum(otelcol_process_uptime{}) by (service_version))\n", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "/.*service_version=\"(.*)\".*/", - "type": "query" - } - ] - }, - "time": { - "from": "now-15m", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Opentelemetry Collector Data Flow", - "uid": "rl5_tea4k", - "version": 2, - "weekStart": "" -} \ No newline at end of file diff --git a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json index 529c269785..f867efa117 100644 --- a/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json +++ b/src/grafana/provisioning/dashboards/demo/opentelemetry-collector.json @@ -21,11 +21,11 @@ } ] }, - "description": "Visualize OpenTelemetry (OTEL) collector metrics (tested with OTEL contrib v0.113.0)", + "description": "Visualize OpenTelemetry (OTEL) collector metrics (tested with OTEL contrib v0.120.1)", "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, - "id": 2, + "id": 4, "links": [], "panels": [ { @@ -39,17 +39,17 @@ "x": 0, "y": 0 }, - "id": 62, + "id": 86, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, - "content": "This dashboard uses the metrics generated by the OpenTelemetry Collector.\nIt is used to understand the overall performance and health of the OpenTelemetry Collector.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", - "mode": "markdown" + "content": "This dashboard uses the metrics generated by the OpenTelemetry Collector.\nIt is used to understand the overall performance and health of the OpenTelemetry Collector.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.\n", + "mode": "html" }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "title": "", "type": "text" }, @@ -141,6 +141,10 @@ "fixedColor": "red", "mode": "fixed" } + }, + { + "id": "custom.axisPlacement", + "value": "right" } ] } @@ -166,11 +170,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -178,8 +183,8 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_accepted_spans${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -193,8 +198,8 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_refused_spans${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -282,6 +287,10 @@ "fixedColor": "red", "mode": "fixed" } + }, + { + "id": "custom.axisPlacement", + "value": "right" } ] } @@ -293,7 +302,7 @@ "x": 8, "y": 3 }, - "id": 32, + "id": 80, "interval": "$minstep", "options": { "legend": { @@ -307,11 +316,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -319,8 +329,8 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_accepted_metric_points${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -334,8 +344,8 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_refused_metric_points${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -423,6 +433,10 @@ "fixedColor": "red", "mode": "fixed" } + }, + { + "id": "custom.axisPlacement", + "value": "right" } ] } @@ -448,11 +462,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -460,8 +475,8 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_accepted_log_records${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, @@ -475,8 +490,8 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_refused_log_records${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", @@ -548,7 +563,6 @@ }, "links": [], "mappings": [], - "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -568,7 +582,7 @@ { "matcher": { "id": "byRegexp", - "options": "/.*Refused.*/" + "options": "/Refused.*/" }, "properties": [ { @@ -577,13 +591,17 @@ "fixedColor": "red", "mode": "fixed" } + }, + { + "id": "custom.axisPlacement", + "value": "right" } ] }, { "matcher": { "id": "byRegexp", - "options": "/.*Dropped.*/" + "options": "/Dropped.*/" }, "properties": [ { @@ -592,6 +610,10 @@ "fixedColor": "purple", "mode": "fixed" } + }, + { + "id": "custom.axisPlacement", + "value": "right" } ] } @@ -603,7 +625,7 @@ "x": 0, "y": 12 }, - "id": 36, + "id": 85, "interval": "$minstep", "options": { "legend": { @@ -617,11 +639,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", - "sort": "none" + "sort": "desc" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -629,129 +652,41 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_processor_batch_batch_send_size_count{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Batch send size count: {{processor}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_processor_batch_batch_send_size_sum{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_incoming_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"traces\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", - "hide": false, - "instant": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Batch send size sum: {{processor}}", + "legendFormat": "Incomming: {{processor}} {{service_instance_id}}", + "range": true, "refId": "A" - } - ], - "title": "Batch Metrics", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Number of units in the batch", - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - }, - "links": [] - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 12 - }, - "id": 49, - "interval": "$minstep", - "maxDataPoints": 50, - "options": { - "calculate": false, - "cellGap": 1, - "color": { - "exponent": 0.5, - "fill": "dark-orange", - "mode": "scheme", - "reverse": true, - "scale": "exponential", - "scheme": "Reds", - "steps": 57 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-9 - }, - "legend": { - "show": true - }, - "rowsFrame": { - "layout": "auto" }, - "tooltip": { - "mode": "single", - "showColorScale": false, - "yHistogram": false - }, - "yAxis": { - "axisPlacement": "left", - "reverse": false - } - }, - "pluginVersion": "11.4.0", - "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(increase(otelcol_processor_batch_batch_send_size_bucket{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (le)", - "format": "heatmap", + "exemplar": false, + "expr": "0-sum(${metric:value}(otelcol_processor_outgoing_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"traces\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", "hide": false, - "instant": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "{{le}}", + "legendFormat": "Outgoing: {{processor}} {{service_instance_id}}", + "range": true, "refId": "B" } ], - "title": "Batch Send Size Heatmap", - "type": "heatmap" + "title": "Spans ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "description": "Number of times the batch was sent due to a size trigger. Number of times the batch was sent due to a timeout trigger.", + "description": "", "fieldConfig": { "defaults": { "color": { @@ -792,7 +727,6 @@ }, "links": [], "mappings": [], - "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -812,7 +746,7 @@ { "matcher": { "id": "byRegexp", - "options": "/.*Refused.*/" + "options": "/Refused.*/" }, "properties": [ { @@ -821,13 +755,17 @@ "fixedColor": "red", "mode": "fixed" } + }, + { + "id": "custom.axisPlacement", + "value": "right" } ] }, { "matcher": { "id": "byRegexp", - "options": "/.*Dropped.*/" + "options": "/Dropped.*/" }, "properties": [ { @@ -836,6 +774,10 @@ "fixedColor": "purple", "mode": "fixed" } + }, + { + "id": "custom.axisPlacement", + "value": "right" } ] } @@ -844,10 +786,10 @@ "gridPos": { "h": 8, "w": 8, - "x": 16, + "x": 8, "y": 12 }, - "id": 56, + "id": 83, "interval": "$minstep", "options": { "legend": { @@ -861,11 +803,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", - "sort": "none" + "sort": "desc" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -873,15 +816,14 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_processor_batch_timeout_trigger_send_total {processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_incoming_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"metrics\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", - "hide": false, - "instant": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Batch sent due to a timeout trigger: {{processor}}", - "refId": "B" + "legendFormat": "Incomming: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "A" }, { "datasource": { @@ -889,39 +831,26 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_processor_batch_timeout_trigger_send{processor=~\"$processor\"}[$__rate_interval])) by (processor)", + "exemplar": false, + "expr": "0-sum(${metric:value}(otelcol_processor_outgoing_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"metrics\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, - "instant": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Batch sent due to a timeout trigger: {{processor}}", - "refId": "A" + "legendFormat": "Outgoing: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "B" } ], - "title": "Batch Metrics", + "title": "Metric Points ${metric:text}", "type": "timeseries" }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 20 - }, - "id": 25, - "panels": [], - "title": "Exporters", - "type": "row" - }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "description": "Sent: count/rate of spans successfully sent to destination.\nEngueue: count/rate of spans failed to be added to the sending queue.", + "description": "", "fieldConfig": { "defaults": { "color": { @@ -962,7 +891,6 @@ }, "links": [], "mappings": [], - "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -982,7 +910,7 @@ { "matcher": { "id": "byRegexp", - "options": "/Failed:.*/" + "options": "/Refused.*/" }, "properties": [ { @@ -991,18 +919,41 @@ "fixedColor": "red", "mode": "fixed" } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Dropped.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" } ] } ] }, "gridPos": { - "h": 9, + "h": 8, "w": 8, - "x": 0, - "y": 21 + "x": 16, + "y": 12 }, - "id": 37, + "id": 84, "interval": "$minstep", "options": { "legend": { @@ -1016,11 +967,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", - "sort": "none" + "sort": "desc" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1028,12 +980,12 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_spans_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_incoming_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"logs\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", + "legendFormat": "Incomming: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" }, @@ -1043,34 +995,18 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_spans{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "exemplar": false, + "expr": "0-sum(${metric:value}(otelcol_processor_outgoing_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"logs\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", + "legendFormat": "Outgoing: {{processor}} {{service_instance_id}}", "range": true, "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_send_failed_spans{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", - "range": true, - "refId": "C" } ], - "title": "Spans ${metric:text}", + "title": "Logs Records ${metric:text}", "type": "timeseries" }, { @@ -1078,7 +1014,7 @@ "type": "prometheus", "uid": "$datasource" }, - "description": "Sent: count/rate of metric points successfully sent to destination.\nEngueue: count/rate of metric points failed to be added to the sending queue.", + "description": "Accepted: count/rate of spans successfully pushed into the next component in the pipeline.\nRefused: count/rate of spans that were rejected by the next component in the pipeline.\nDropped: count/rate of spans that were dropped", "fieldConfig": { "defaults": { "color": { @@ -1139,7 +1075,7 @@ { "matcher": { "id": "byRegexp", - "options": "/Failed:.*/" + "options": "/Refused.*/" }, "properties": [ { @@ -1148,18 +1084,41 @@ "fixedColor": "red", "mode": "fixed" } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Dropped.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" } ] } ] }, "gridPos": { - "h": 9, + "h": 8, "w": 8, - "x": 8, - "y": 21 + "x": 0, + "y": 20 }, - "id": 38, + "id": 35, "interval": "$minstep", "options": { "legend": { @@ -1173,11 +1132,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1185,12 +1145,12 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_metric_points_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_accepted_spans${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", + "legendFormat": "Accepted: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" }, @@ -1200,13 +1160,13 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_metric_points{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_refused_spans${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", + "legendFormat": "Refused: {{processor}} {{service_instance_id}}", "range": true, "refId": "B" }, @@ -1216,18 +1176,18 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_send_failed_metric_points{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_dropped_spans${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", + "legendFormat": "Dropped: {{processor}} {{service_instance_id}}", "range": true, "refId": "C" } ], - "title": "Metric Points ${metric:text}", + "title": "Accepted Spans ${metric:text}", "type": "timeseries" }, { @@ -1235,7 +1195,7 @@ "type": "prometheus", "uid": "$datasource" }, - "description": "Sent: count/rate of log records successfully sent to destination.\nEngueue: count/rate of log records failed to be added to the sending queue.", + "description": "Accepted: count/rate of metric points successfully pushed into the next component in the pipeline.\nRefused: count/rate of metric points that were rejected by the next component in the pipeline.\nDropped: count/rate of metric points that were dropped", "fieldConfig": { "defaults": { "color": { @@ -1296,7 +1256,7 @@ { "matcher": { "id": "byRegexp", - "options": "/Failed:.*/" + "options": "/Refused.*/" }, "properties": [ { @@ -1305,18 +1265,41 @@ "fixedColor": "red", "mode": "fixed" } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Dropped.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" } ] } ] }, "gridPos": { - "h": 9, + "h": 8, "w": 8, - "x": 16, - "y": 21 + "x": 8, + "y": 20 }, - "id": 48, + "id": 50, "interval": "$minstep", "options": { "legend": { @@ -1330,11 +1313,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1342,12 +1326,12 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_log_records_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_accepted_metric_points${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", + "legendFormat": "Accepted: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" }, @@ -1357,13 +1341,13 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_log_records{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_refused_metric_points${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", + "legendFormat": "Refused: {{processor}} {{service_instance_id}}", "range": true, "refId": "B" }, @@ -1373,18 +1357,18 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_send_failed_log_records{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_dropped_metric_points${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", + "legendFormat": "Dropped: {{processor}} {{service_instance_id}}", "range": true, "refId": "C" } ], - "title": "Log Records ${metric:text}", + "title": "Accepted Metric Points ${metric:text}", "type": "timeseries" }, { @@ -1392,7 +1376,7 @@ "type": "prometheus", "uid": "$datasource" }, - "description": "Current size of the retry queue (in batches)", + "description": "Accepted: count/rate of log records successfully pushed into the next component in the pipeline.\nRefused: count/rate of log records that were rejected by the next component in the pipeline.\nDropped: count/rate of log records that were dropped", "fieldConfig": { "defaults": { "color": { @@ -1433,11 +1417,13 @@ }, "links": [], "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1447,15 +1433,55 @@ }, "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Refused.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Dropped.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 30 + "h": 8, + "w": 8, + "x": 16, + "y": 20 }, - "id": 10, + "id": 51, + "interval": "$minstep", "options": { "legend": { "calcs": [ @@ -1468,11 +1494,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1480,17 +1507,49 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "max(otelcol_exporter_queue_size{exporter=~\"$exporter\",job=\"$job\"}) by (exporter)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_accepted_log_records${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Max queue size: {{exporter}}", + "legendFormat": "Accepted: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_refused_log_records${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Refused: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_dropped_log_records${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Dropped: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "C" } ], - "title": "Exporter Queue Size", + "title": "Accepted Log Records ${metric:text}", "type": "timeseries" }, { @@ -1498,7 +1557,94 @@ "type": "prometheus", "uid": "$datasource" }, - "description": "Fixed capacity of the retry queue (in batches)", + "description": "Number of units in the batch", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 28 + }, + "id": 49, + "interval": "$minstep", + "maxDataPoints": 50, + "options": { + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 57 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false + } + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(otelcol_processor_batch_batch_send_size_bucket{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" + } + ], + "title": "Batch Send Size Heatmap", + "type": "heatmap" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", "fieldConfig": { "defaults": { "color": { @@ -1539,11 +1685,13 @@ }, "links": [], "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1553,15 +1701,29 @@ }, "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/.*count.*/" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 30 + "h": 8, + "w": 8, + "x": 8, + "y": 28 }, - "id": 55, + "id": 36, + "interval": "$minstep", "options": { "legend": { "calcs": [ @@ -1574,11 +1736,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1586,38 +1749,42 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "min(otelcol_exporter_queue_capacity{exporter=~\"$exporter\",job=\"$job\"}) by (exporter)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_batch_batch_send_size_count{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", + "hide": false, + "instant": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Queue capacity: {{exporter}}", - "range": true, + "legendFormat": "Batch send size count: {{processor}} {{service_instance_id}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_batch_batch_send_size_sum{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Batch send size sum: {{processor}} {{service_instance_id}}", "refId": "A" } ], - "title": "Exporter Queue Capacity", + "title": "Batch Metrics 1", "type": "timeseries" }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 39 - }, - "id": 21, - "panels": [], - "title": "Collector", - "type": "row" - }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "description": "Total physical memory (resident set size)", + "description": "Number of times the batch was sent due to a size trigger. Number of times the batch was sent due to a timeout trigger.", "fieldConfig": { "defaults": { "color": { @@ -1663,7 +1830,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1671,87 +1839,30 @@ } ] }, - "unit": "bytes" + "unit": "short" }, "overrides": [ { "matcher": { - "id": "byName", - "options": "Max Memory RSS " + "id": "byRegexp", + "options": "/.*timeout.*/" }, "properties": [ { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - }, - { - "id": "custom.fillBelowTo", - "value": "Avg Memory RSS " - }, - { - "id": "custom.lineWidth", - "value": 0 - }, - { - "id": "custom.fillOpacity", - "value": 20 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min Memory RSS " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" - } - }, - { - "id": "custom.lineWidth", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Memory RSS " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - }, - { - "id": "custom.fillBelowTo", - "value": "Min Memory RSS " - }, - { - "id": "custom.fillOpacity", - "value": 20 + "id": "custom.axisPlacement", + "value": "right" } ] } ] }, "gridPos": { - "h": 9, + "h": 8, "w": 8, - "x": 0, - "y": 40 + "x": 16, + "y": 28 }, - "id": 40, + "id": 56, "interval": "$minstep", "options": { "legend": { @@ -1765,11 +1876,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1777,30 +1889,15 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "max(otelcol_process_memory_rss{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_batch_batch_size_trigger_send${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, + "instant": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Max Memory RSS {{service_instance_id}}", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "avg(otelcol_process_memory_rss{job=\"$job\"}) by (job $grouping)", - "format": "time_series", - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Avg Memory RSS {{service_instance_id}}", - "range": true, - "refId": "A" + "legendFormat": "Batch sent due to a size trigger: {{processor}}", + "refId": "B" }, { "datasource": { @@ -1808,26 +1905,39 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "min(otelcol_process_memory_rss{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_batch_timeout_trigger_send${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, + "instant": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Min Memory RSS {{service_instance_id}}", - "range": true, - "refId": "B" + "legendFormat": "Batch sent due to a timeout trigger: {{processor}} {{service_instance_id}}", + "refId": "A" } ], - "title": "Total RSS Memory", + "title": "Batch Metrics 2", "type": "timeseries" }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 36 + }, + "id": 25, + "panels": [], + "title": "Exporters", + "type": "row" + }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "description": "Total bytes of memory obtained from the OS (see 'go doc runtime.MemStats.Sys')", + "description": "Sent: count/rate of spans successfully sent to destination.\nEnqueue: count/rate of spans failed to be added to the sending queue.\nFailed: count/rate of spans in failed attempts to send to destination.", "fieldConfig": { "defaults": { "color": { @@ -1873,7 +1983,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1881,13 +1992,13 @@ } ] }, - "unit": "bytes" + "unit": "short" }, "overrides": [ { "matcher": { - "id": "byName", - "options": "Max Memory RSS " + "id": "byRegexp", + "options": "/Failed:.*/" }, "properties": [ { @@ -1898,58 +2009,8 @@ } }, { - "id": "custom.fillBelowTo", - "value": "Avg Memory RSS " - }, - { - "id": "custom.lineWidth", - "value": 0 - }, - { - "id": "custom.fillOpacity", - "value": 20 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min Memory RSS " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" - } - }, - { - "id": "custom.lineWidth", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Memory RSS " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - }, - { - "id": "custom.fillBelowTo", - "value": "Min Memory RSS " - }, - { - "id": "custom.fillOpacity", - "value": 20 + "id": "custom.axisPlacement", + "value": "right" } ] } @@ -1958,10 +2019,10 @@ "gridPos": { "h": 9, "w": 8, - "x": 8, - "y": 40 + "x": 0, + "y": 37 }, - "id": 52, + "id": 37, "interval": "$minstep", "options": { "legend": { @@ -1975,11 +2036,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1987,15 +2049,14 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "max(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_sent_spans${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", - "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Max Memory RSS {{service_instance_id}}", + "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "C" + "refId": "A" }, { "datasource": { @@ -2003,14 +2064,15 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "avg(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_spans${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", + "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Avg Memory RSS {{service_instance_id}}", + "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "A" + "refId": "B" }, { "datasource": { @@ -2018,18 +2080,18 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "min(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_send_failed_spans${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Min Memory RSS {{service_instance_id}}", + "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "B" + "refId": "C" } ], - "title": "Total Runtime Sys Memory", + "title": "Spans ${metric:text}", "type": "timeseries" }, { @@ -2037,7 +2099,7 @@ "type": "prometheus", "uid": "$datasource" }, - "description": "Bytes of allocated heap objects (see 'go doc runtime.MemStats.HeapAlloc')", + "description": "Sent: count/rate of metric points successfully sent to destination.\nEnqueue: count/rate of metric points failed to be added to the sending queue.\nFailed: count/rate of metric points in failed attempts to send to destination.", "fieldConfig": { "defaults": { "color": { @@ -2083,7 +2145,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2091,13 +2154,13 @@ } ] }, - "unit": "bytes" + "unit": "short" }, "overrides": [ { "matcher": { - "id": "byName", - "options": "Max Memory RSS " + "id": "byRegexp", + "options": "/Failed:.*/" }, "properties": [ { @@ -2108,58 +2171,8 @@ } }, { - "id": "custom.fillBelowTo", - "value": "Avg Memory RSS " - }, - { - "id": "custom.lineWidth", - "value": 0 - }, - { - "id": "custom.fillOpacity", - "value": 20 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min Memory RSS " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" - } - }, - { - "id": "custom.lineWidth", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Memory RSS " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - }, - { - "id": "custom.fillBelowTo", - "value": "Min Memory RSS " - }, - { - "id": "custom.fillOpacity", - "value": 20 + "id": "custom.axisPlacement", + "value": "right" } ] } @@ -2168,10 +2181,10 @@ "gridPos": { "h": 9, "w": 8, - "x": 16, - "y": 40 + "x": 8, + "y": 37 }, - "id": 53, + "id": 38, "interval": "$minstep", "options": { "legend": { @@ -2185,11 +2198,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2197,15 +2211,14 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "max(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_sent_metric_points${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", - "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Max Memory RSS {{service_instance_id}}", + "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "C" + "refId": "A" }, { "datasource": { @@ -2213,14 +2226,15 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "avg(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_metric_points${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", + "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Avg Memory RSS {{service_instance_id}}", + "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "A" + "refId": "B" }, { "datasource": { @@ -2228,18 +2242,18 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "min(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_send_failed_metric_points${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Min Memory RSS {{service_instance_id}}", + "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "B" + "refId": "C" } ], - "title": "Total Runtime Heap Memory", + "title": "Metric Points ${metric:text}", "type": "timeseries" }, { @@ -2247,7 +2261,7 @@ "type": "prometheus", "uid": "$datasource" }, - "description": "Total CPU user and system time in percentage", + "description": "Sent: count/rate of log records successfully sent to destination.\nEnqueue: count/rate of log records failed to be added to the sending queue.\nFailed: count/rate of log records in failed attempts to send to destination.", "fieldConfig": { "defaults": { "color": { @@ -2293,7 +2307,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2301,13 +2316,13 @@ } ] }, - "unit": "percent" + "unit": "short" }, "overrides": [ { "matcher": { - "id": "byName", - "options": "Max CPU usage " + "id": "byRegexp", + "options": "/Failed:.*/" }, "properties": [ { @@ -2318,54 +2333,8 @@ } }, { - "id": "custom.fillBelowTo", - "value": "Avg CPU usage " - }, - { - "id": "custom.lineWidth", - "value": 0 - }, - { - "id": "custom.fillOpacity", - "value": 20 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg CPU usage " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - }, - { - "id": "custom.fillBelowTo", - "value": "Min CPU usage " - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min CPU usage " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" - } - }, - { - "id": "custom.lineWidth", - "value": 0 + "id": "custom.axisPlacement", + "value": "right" } ] } @@ -2374,10 +2343,10 @@ "gridPos": { "h": 9, "w": 8, - "x": 0, - "y": 49 + "x": 16, + "y": 37 }, - "id": 39, + "id": 48, "interval": "$minstep", "options": { "legend": { @@ -2391,11 +2360,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2403,15 +2373,14 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "max(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_sent_log_records${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", - "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Max CPU usage {{service_instance_id}}", + "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "B" + "refId": "A" }, { "datasource": { @@ -2419,15 +2388,15 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "avg(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_log_records${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Avg CPU usage {{service_instance_id}}", + "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "A" + "refId": "B" }, { "datasource": { @@ -2435,18 +2404,18 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "min(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_send_failed_log_records${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Min CPU usage {{service_instance_id}}", + "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", "range": true, "refId": "C" } ], - "title": "CPU Usage", + "title": "Log Records ${metric:text}", "type": "timeseries" }, { @@ -2454,7 +2423,7 @@ "type": "prometheus", "uid": "$datasource" }, - "description": "Number of service instances, which are reporting metrics", + "description": "Current size of the retry queue (in batches)", "fieldConfig": { "defaults": { "color": { @@ -2495,12 +2464,12 @@ }, "links": [], "mappings": [], - "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2515,11 +2484,10 @@ "gridPos": { "h": 9, "w": 8, - "x": 8, - "y": 49 + "x": 0, + "y": 46 }, - "id": 41, - "interval": "$minstep", + "id": 10, "options": { "legend": { "calcs": [ @@ -2532,11 +2500,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2544,18 +2513,17 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "count(count(otelcol_process_cpu_seconds_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id))", + "exemplar": false, + "expr": "max(otelcol_exporter_queue_size{exporter=~\"$exporter\",job=\"$job\"}) by (exporter $grouping)", "format": "time_series", - "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Service instance count", + "legendFormat": "Max queue size: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "B" + "refId": "A" } ], - "title": "Service Instance Count", + "title": "Exporter Queue Size", "type": "timeseries" }, { @@ -2563,7 +2531,7 @@ "type": "prometheus", "uid": "$datasource" }, - "description": "", + "description": "Fixed capacity of the retry queue (in batches)", "fieldConfig": { "defaults": { "color": { @@ -2604,12 +2572,12 @@ }, "links": [], "mappings": [], - "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2617,18 +2585,17 @@ } ] }, - "unit": "s" + "unit": "short" }, "overrides": [] }, "gridPos": { "h": 9, "w": 8, - "x": 16, - "y": 49 + "x": 8, + "y": 46 }, - "id": 54, - "interval": "$minstep", + "id": 55, "options": { "legend": { "calcs": [ @@ -2641,11 +2608,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2653,18 +2621,17 @@ "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "max(otelcol_process_uptime_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id)", + "exemplar": false, + "expr": "min(otelcol_exporter_queue_capacity{exporter=~\"$exporter\",job=\"$job\"}) by (exporter $grouping)", "format": "time_series", - "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Service instance uptime: {{service_instance_id}}", + "legendFormat": "Queue capacity: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "B" + "refId": "A" } ], - "title": "Uptime by Service Instance", + "title": "Exporter Queue Capacity", "type": "timeseries" }, { @@ -2676,23 +2643,50 @@ "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" + "mode": "palette-classic" }, "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false }, - "inspect": false + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, "links": [], "mappings": [], - "min": 0, + "max": 1, "thresholds": { "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2700,31 +2694,35 @@ } ] }, - "unit": "s" + "unit": "percentunit" }, "overrides": [] }, "gridPos": { - "h": 5, - "w": 24, - "x": 0, - "y": 58 + "h": 9, + "w": 8, + "x": 16, + "y": 46 }, - "id": 57, - "interval": "$minstep", + "id": 67, "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" + "legend": { + "calcs": [ + "min", + "max", + "mean" ], - "show": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showHeader": true + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2733,32 +2731,17 @@ }, "editorMode": "code", "exemplar": false, - "expr": "max(otelcol_process_uptime_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id,service_name,service_version)", - "format": "table", - "hide": false, - "instant": true, + "expr": "max(\r\n otelcol_exporter_queue_size{\r\n exporter=~\"$exporter\", job=\"$job\"\r\n }\r\n) by (exporter $grouping)\r\n/\r\nmin(\r\n otelcol_exporter_queue_capacity{\r\n exporter=~\"$exporter\", job=\"$job\"\r\n }\r\n) by (exporter $grouping)", + "format": "time_series", "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "__auto", - "range": false, - "refId": "B" - } - ], - "title": "Service Instance Details", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Value": true - }, - "indexByName": {}, - "renameByName": {} - } + "legendFormat": "Queue capacity usage: {{exporter}} {{service_instance_id}}", + "range": true, + "refId": "A" } ], - "type": "table" + "title": "Exporter Queue Usage", + "type": "timeseries" }, { "collapsed": false, @@ -2766,11 +2749,11 @@ "h": 1, "w": 24, "x": 0, - "y": 63 + "y": 55 }, - "id": 59, + "id": 21, "panels": [], - "title": "Data Flows", + "title": "Collector", "type": "row" }, { @@ -2778,107 +2761,161 @@ "type": "prometheus", "uid": "$datasource" }, - "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "description": "Total physical memory (resident set size)", "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 8, - "x": 0, - "y": 64 - }, - "id": 58, - "options": { - "edges": {}, - "nodes": { - "mainStatUnit": "flops" - } - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_spans_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" + "defaults": { + "color": { + "mode": "palette-classic" }, - "editorMode": "code", - "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_spans_total{job=\"$job\"}[$__interval])) by (receiver))\r\n ,\"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n ,\"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_spans_total{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" - } - ], - "title": "Spans Flow", - "transformations": [ - { - "id": "renameByRegex", - "options": { - "regex": "Value", - "renamePattern": "mainstat" - } - }, - { - "disabled": true, - "id": "calculateField", - "options": { - "alias": "secondarystat", - "mode": "reduceRow", - "reduce": { - "include": [ - "mainstat" - ], - "reducer": "sum" + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Max Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.fillBelowTo", + "value": "Avg Memory RSS " + }, + { + "id": "custom.lineWidth", + "value": 0 + }, + { + "id": "custom.fillOpacity", + "value": 20 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Min Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + }, + { + "id": "custom.lineWidth", + "value": 0 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Avg Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + }, + { + "id": "custom.fillBelowTo", + "value": "Min Memory RSS " + }, + { + "id": "custom.fillOpacity", + "value": 20 + } + ] } - } - ], - "type": "nodeGraph" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", - "fieldConfig": { - "defaults": {}, - "overrides": [] + ] }, "gridPos": { "h": 9, "w": 8, - "x": 8, - "y": 64 + "x": 0, + "y": 56 }, - "id": 60, + "id": 40, + "interval": "$minstep", "options": { - "edges": {}, - "nodes": { - "mainStatUnit": "none" + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2887,170 +2924,3097 @@ }, "editorMode": "code", "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_receiver_accepted_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver))\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_exporter_sent_metric_points_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter))\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", - "format": "table", + "expr": "max(otelcol_process_memory_rss${suffix_bytes}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Max Memory RSS {{service_instance_id}}", + "range": true, + "refId": "C" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "editorMode": "code", - "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_metric_points_total{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_metric_points_total{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" - } - ], - "title": "Metric Points Flow", - "transformations": [ - { - "id": "renameByRegex", + "editorMode": "code", + "exemplar": false, + "expr": "avg(otelcol_process_memory_rss${suffix_bytes}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Avg Memory RSS {{service_instance_id}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "min(otelcol_process_memory_rss${suffix_bytes}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Min Memory RSS {{service_instance_id}}", + "range": true, + "refId": "B" + } + ], + "title": "Total RSS Memory", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "Total bytes of memory obtained from the OS (see 'go doc runtime.MemStats.Sys')", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Max Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.fillBelowTo", + "value": "Avg Memory RSS " + }, + { + "id": "custom.lineWidth", + "value": 0 + }, + { + "id": "custom.fillOpacity", + "value": 20 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Min Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + }, + { + "id": "custom.lineWidth", + "value": 0 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Avg Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + }, + { + "id": "custom.fillBelowTo", + "value": "Min Memory RSS " + }, + { + "id": "custom.fillOpacity", + "value": 20 + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 56 + }, + "id": 52, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "max(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Max Memory RSS {{service_instance_id}}", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "avg(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Avg Memory RSS {{service_instance_id}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "min(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Min Memory RSS {{service_instance_id}}", + "range": true, + "refId": "B" + } + ], + "title": "Total Runtime Sys Memory", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "Bytes of allocated heap objects (see 'go doc runtime.MemStats.HeapAlloc')", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Max Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.fillBelowTo", + "value": "Avg Memory RSS " + }, + { + "id": "custom.lineWidth", + "value": 0 + }, + { + "id": "custom.fillOpacity", + "value": 20 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Min Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + }, + { + "id": "custom.lineWidth", + "value": 0 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Avg Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + }, + { + "id": "custom.fillBelowTo", + "value": "Min Memory RSS " + }, + { + "id": "custom.fillOpacity", + "value": 20 + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 56 + }, + "id": 53, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "max(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Max Memory RSS {{service_instance_id}}", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "avg(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Avg Memory RSS {{service_instance_id}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "min(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Min Memory RSS {{service_instance_id}}", + "range": true, + "refId": "B" + } + ], + "title": "Total Runtime Heap Memory", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "Total CPU user and system time in percentage", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Max CPU usage " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.fillBelowTo", + "value": "Avg CPU usage " + }, + { + "id": "custom.lineWidth", + "value": 0 + }, + { + "id": "custom.fillOpacity", + "value": 20 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Avg CPU usage " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + }, + { + "id": "custom.fillBelowTo", + "value": "Min CPU usage " + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Min CPU usage " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + }, + { + "id": "custom.lineWidth", + "value": 0 + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 65 + }, + "id": 39, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "max(rate(otelcol_process_cpu_seconds${suffix_total}{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Max CPU usage {{service_instance_id}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "avg(rate(otelcol_process_cpu_seconds${suffix_total}{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Avg CPU usage {{service_instance_id}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "min(rate(otelcol_process_cpu_seconds${suffix_total}{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Min CPU usage {{service_instance_id}}", + "range": true, + "refId": "C" + } + ], + "title": "CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "Number of service instances, which are reporting metrics", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 0, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 65 + }, + "id": 41, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "count(count(otelcol_process_cpu_seconds${suffix_total}{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id))", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Service instance count", + "range": true, + "refId": "B" + } + ], + "title": "Service Instance Count", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 65 + }, + "id": 54, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "max(otelcol_process_uptime${suffix_seconds}${suffix_total}{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Service instance uptime: {{service_instance_id}}", + "range": true, + "refId": "B" + } + ], + "title": "Uptime by Service Instance", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 24, + "x": 0, + "y": 74 + }, + "id": 57, + "interval": "$minstep", + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "max(otelcol_process_uptime${suffix_seconds}${suffix_total}{service_instance_id=~\".*\",job=\"$job\",service_version=\".+\"}) by (service_instance_id,service_name,service_version)\r\nor\r\nmax(\r\n otelcol_process_uptime${suffix_seconds}${suffix_total}{service_instance_id=~\".*\",job=\"$job\"} \r\n * on(job, instance) \r\n group_left(service_version) \r\n (\r\n target_info \r\n * on(job, instance) \r\n group_left \r\n label_replace(target_info{}, \"service_instance_id\", \"$1\", \"instance\", \"(.*)\")\r\n )\r\n) by (service_instance_id, service_name, service_version)", + "format": "table", + "hide": false, + "instant": true, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "__auto", + "range": false, + "refId": "B" + } + ], + "title": "Service Instance Details", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Value": true + }, + "indexByName": {}, + "renameByName": {} + } + } + ], + "type": "table" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 79 + }, + "id": 59, + "panels": [], + "title": "Signal flows", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 80 + }, + "id": 58, + "options": { + "edges": {}, + "nodes": { + "mainStatUnit": "flops" + }, + "zoomMode": "cooperative" + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_spans${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime${suffix_seconds}${suffix_total}{job=\"$job\"}[$__rate_interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_spans${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "nodes" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_spans${suffix_total}{job=\"$job\"}[$__rate_interval])) by (receiver))\r\n ,\"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n ,\"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_spans${suffix_total}{job=\"$job\"}[$__rate_interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "edges" + } + ], + "title": "Spans Flow", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "Value", + "renamePattern": "mainstat" + } + }, + { + "disabled": true, + "id": "calculateField", + "options": { + "alias": "secondarystat", + "mode": "reduceRow", + "reduce": { + "include": [ + "mainstat" + ], + "reducer": "sum" + } + } + } + ], + "type": "nodeGraph" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 80 + }, + "id": 60, + "options": { + "edges": {}, + "nodes": { + "mainStatUnit": "none" + }, + "zoomMode": "cooperative" + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_receiver_accepted_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (receiver))\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime${suffix_seconds}${suffix_total}{job=\"$job\"}[$__rate_interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_exporter_sent_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (exporter))\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "nodes" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "edges" + } + ], + "title": "Metric Points Flow", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "Value", + "renamePattern": "mainstat" + } + }, + { + "disabled": true, + "id": "calculateField", + "options": { + "alias": "secondarystat", + "mode": "reduceRow", + "reduce": { + "include": [ + "Value #nodes" + ], + "reducer": "sum" + } + } + } + ], + "type": "nodeGraph" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 80 + }, + "id": 61, + "options": { + "edges": {}, + "nodes": { + "mainStatUnit": "flops" + }, + "zoomMode": "cooperative" + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime${suffix_seconds}${suffix_total}{job=\"$job\"}[$__rate_interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "nodes" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-edg-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])) by (exporter))\r\n ,\"target\",\"-exp-\",\"transport\",\"exporter\"\r\n )\r\n ,\"source\",\"processor\",\"\",\"\"\r\n )\r\n ,\"id\",\"-edg-\",\"source\",\"target\"\r\n)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "edges" + } + ], + "title": "Log Records Flow", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "Value", + "renamePattern": "mainstat" + } + }, + { + "disabled": true, + "id": "calculateField", + "options": { + "alias": "secondarystat", + "mode": "reduceRow", + "reduce": { + "include": [ + "mainstat" + ], + "reducer": "sum" + } + } + } + ], + "type": "nodeGraph" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 89 + }, + "id": 79, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 88 + }, + "id": 32, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_filter_spans_filtered${suffix_total}{job=\"$job\"}[$__rate_interval])) by (filter $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Filtered: {{filter}} {{transport}} {{service_instance_id}}", + "range": true, + "refId": "A" + } + ], + "title": "Spans ${metric:text}", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 88 + }, + "id": 81, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_filter_datapoints_filtered${suffix_total}{job=\"$job\"}[$__rate_interval])) by (filter $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Filtered: {{filter}} {{transport}} {{service_instance_id}}", + "range": true, + "refId": "A" + } + ], + "title": "Metric Points ${metric:text}", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 88 + }, + "id": 82, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_filter_log_records_filtered${suffix_total}{job=\"$job\"}[$__rate_interval])) by (filter $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Filtered: {{filter}} {{transport}} {{service_instance_id}}", + "range": true, + "refId": "A" + } + ], + "title": "Log Records ${metric:text}", + "type": "timeseries" + } + ], + "title": "Filter processors", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 90 + }, + "id": 68, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs. GRPC status codes: https://grpc.github.io/grpc/core/md_doc_statuscodes.html", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "0" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "displayName", + "value": "0 - OK" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "1" + }, + "properties": [ + { + "id": "displayName", + "value": "1 - CANCELLED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "2" + }, + "properties": [ + { + "id": "displayName", + "value": "2 - UNKNOWN" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "3" + }, + "properties": [ + { + "id": "displayName", + "value": "3 - INVALID_ARGUMENT" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "4" + }, + "properties": [ + { + "id": "displayName", + "value": "4 - DEADLINE_EXCEEDED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "5" + }, + "properties": [ + { + "id": "displayName", + "value": "5 - NOT_FOUND" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "6" + }, + "properties": [ + { + "id": "displayName", + "value": "6 - ALREADY_EXISTS" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "7" + }, + "properties": [ + { + "id": "displayName", + "value": "7 - PERMISSION_DENIED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "8" + }, + "properties": [ + { + "id": "displayName", + "value": "8 - RESOURCE_EXHAUSTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "9" + }, + "properties": [ + { + "id": "displayName", + "value": "9 - FAILED_PRECONDITION" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "10" + }, + "properties": [ + { + "id": "displayName", + "value": "10 - ABORTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "11" + }, + "properties": [ + { + "id": "displayName", + "value": "11 - OUT_OF_RANGE" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "12" + }, + "properties": [ + { + "id": "displayName", + "value": "12 - UNIMPLEMENTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "13" + }, + "properties": [ + { + "id": "displayName", + "value": "13 - INTERNAL" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "14" + }, + "properties": [ + { + "id": "displayName", + "value": "14 - UNAVAILABLE" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "15" + }, + "properties": [ + { + "id": "displayName", + "value": "15 - DATA_LOSS" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "16" + }, + "properties": [ + { + "id": "displayName", + "value": "16 - UNAUTHENTICATED" + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 291 + }, + "id": 69, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum by(rpc_grpc_status_code) (${metric:value}(${prefix:raw}rpc_server_responses_per_rpc_count{job=\"$job\"}[$__rate_interval]))", + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "RPC server responses by GRPC status code (receivers)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs. GRPC status codes: https://grpc.github.io/grpc/core/md_doc_statuscodes.html", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "0" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "displayName", + "value": "0 - OK" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "1" + }, + "properties": [ + { + "id": "displayName", + "value": "1 - CANCELLED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "2" + }, + "properties": [ + { + "id": "displayName", + "value": "2 - UNKNOWN" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "3" + }, + "properties": [ + { + "id": "displayName", + "value": "3 - INVALID_ARGUMENT" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "4" + }, + "properties": [ + { + "id": "displayName", + "value": "4 - DEADLINE_EXCEEDED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "5" + }, + "properties": [ + { + "id": "displayName", + "value": "5 - NOT_FOUND" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "6" + }, + "properties": [ + { + "id": "displayName", + "value": "6 - ALREADY_EXISTS" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "7" + }, + "properties": [ + { + "id": "displayName", + "value": "7 - PERMISSION_DENIED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "8" + }, + "properties": [ + { + "id": "displayName", + "value": "8 - RESOURCE_EXHAUSTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "9" + }, + "properties": [ + { + "id": "displayName", + "value": "9 - FAILED_PRECONDITION" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "10" + }, + "properties": [ + { + "id": "displayName", + "value": "10 - ABORTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "11" + }, + "properties": [ + { + "id": "displayName", + "value": "11 - OUT_OF_RANGE" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "12" + }, + "properties": [ + { + "id": "displayName", + "value": "12 - UNIMPLEMENTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "13" + }, + "properties": [ + { + "id": "displayName", + "value": "13 - INTERNAL" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "14" + }, + "properties": [ + { + "id": "displayName", + "value": "14 - UNAVAILABLE" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "15" + }, + "properties": [ + { + "id": "displayName", + "value": "15 - DATA_LOSS" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "16" + }, + "properties": [ + { + "id": "displayName", + "value": "16 - UNAUTHENTICATED" + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 291 + }, + "id": 70, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum by(rpc_grpc_status_code) (${metric:value}(${prefix:raw}rpc_client_responses_per_rpc_count{job=\"$job\"}[$__rate_interval]))", + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "RPC client responses by GRPC status code (exporters)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 300 + }, + "id": 72, + "interval": "$minstep", + "maxDataPoints": 50, + "options": { + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "ms" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}rpc_server_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" + } + ], + "title": "RPC server duration (receivers)", + "type": "heatmap" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 300 + }, + "id": 74, + "interval": "$minstep", + "maxDataPoints": 50, + "options": { + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "ms" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}rpc_client_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" + } + ], + "title": "RPC client duration (exporters)", + "type": "heatmap" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 308 + }, + "id": 73, + "interval": "$minstep", + "maxDataPoints": 50, + "options": { + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 0.1 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "bytes" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}rpc_server_request_size_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" + } + ], + "title": "RPC server request size (receivers)", + "type": "heatmap" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 308 + }, + "id": 75, + "interval": "$minstep", + "maxDataPoints": 50, + "options": { + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 0.1 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "bytes" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}rpc_client_request_size_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" + } + ], + "title": "RPC client request size (exporters)", + "type": "heatmap" + } + ], + "title": "RPC server/client", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 91 + }, + "id": 77, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 350 + }, + "id": 76, + "interval": "$minstep", + "maxDataPoints": 50, "options": { - "regex": "Value", - "renamePattern": "mainstat" - } + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "ms" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}http_server_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "__auto", + "refId": "B" + } + ], + "title": "HTTP server duration (receivers)", + "type": "heatmap" }, { - "disabled": true, - "id": "calculateField", + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 350 + }, + "id": 78, + "interval": "$minstep", + "maxDataPoints": 50, "options": { - "alias": "secondarystat", - "mode": "reduceRow", - "reduce": { - "include": [ - "Value #nodes" - ], - "reducer": "sum" + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "ms" } - } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}http_client_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" + } + ], + "title": "HTTP client duration (exporters)", + "type": "heatmap" } ], - "type": "nodeGraph" + "title": "HTTP server/client", + "type": "row" }, { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, + "collapsed": true, "gridPos": { - "h": 9, - "w": 8, - "x": 16, - "y": 64 - }, - "id": 61, - "options": { - "edges": {}, - "nodes": { - "mainStatUnit": "flops" - } + "h": 1, + "w": 24, + "x": 0, + "y": 92 }, - "pluginVersion": "11.3.0", - "targets": [ + "id": 63, + "panels": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "editorMode": "code", - "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_log_records_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" + "description": "Added: Number of namespace add events received.\nUpdated: Number of namespace update events received.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/.*updated.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "blue", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 212 + }, + "id": 64, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "avg(otelcol_otelsvc_k8s_namespace_added${suffix_total}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Added: {{transport}} {{service_instance_id}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "avg(otelcol_otelsvc_k8s_namespace_updated${suffix_total}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Updated: {{transport}} {{service_instance_id}}", + "range": true, + "refId": "B" + } + ], + "title": "Namespaces", + "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "editorMode": "code", - "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_log_records_total{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-edg-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_log_records_total{job=\"$job\"}[$__interval])) by (exporter))\r\n ,\"target\",\"-exp-\",\"transport\",\"exporter\"\r\n )\r\n ,\"source\",\"processor\",\"\",\"\"\r\n )\r\n ,\"id\",\"-edg-\",\"source\",\"target\"\r\n)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" - } - ], - "title": "Log Records Flow", - "transformations": [ - { - "id": "renameByRegex", - "options": { - "regex": "Value", - "renamePattern": "mainstat" - } - }, - { - "disabled": true, - "id": "calculateField", + "description": "Added: Number of pod add events received.\nUpdated: Number of pod update events received.\nDeleted: Number of pod delete events received.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 212 + }, + "id": 65, + "interval": "$minstep", "options": { - "alias": "secondarystat", - "mode": "reduceRow", - "reduce": { - "include": [ - "mainstat" + "legend": { + "calcs": [ + "min", + "max", + "mean" ], - "reducer": "sum" + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" } - } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(otelcol_otelsvc_k8s_pod_added${suffix_total}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Added: {{transport}} {{service_instance_id}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(otelcol_otelsvc_k8s_pod_updated${suffix_total}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Updated: {{transport}} {{service_instance_id}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(otelcol_otelsvc_k8s_pod_deleted${suffix_total}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Deleted: {{transport}} {{service_instance_id}}", + "range": true, + "refId": "C" + } + ], + "title": "Pods", + "type": "timeseries" } ], - "type": "nodeGraph" + "title": "Kubernetes", + "type": "row" }, { - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, + "collapsed": false, "gridPos": { - "h": 3, + "h": 1, "w": 24, "x": 0, - "y": 73 - }, - "id": 45, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "
    | \nOTEL collector troubleshooting (how to enable telemetry metrics) | \nScaling the Collector (metrics to watch) | \nInstalled from Grafana.com dashboards", - "mode": "html" + "y": 93 }, - "pluginVersion": "11.3.0", + "id": 66, + "panels": [], "title": "Documentation", - "type": "text" + "type": "row" } ], "preload": false, - "refresh": "10s", + "refresh": "", "schemaVersion": 40, "tags": [ - "opentelemetry", - "monitoring" + "opentelemetry" ], "templating": { "list": [ @@ -3071,17 +6035,18 @@ "type": "prometheus", "uid": "$datasource" }, - "definition": "label_values(otelcol_process_uptime_total,job)", + "definition": "query_result({__name__=~\"otelcol_process_uptime.*\"})", "includeAll": false, "label": "Job", "name": "job", "options": [], "query": { - "query": "label_values(otelcol_process_uptime_total,job)", - "refId": "StandardVariableQuery" + "qryType": 3, + "query": "query_result({__name__=~\"otelcol_process_uptime.*\"})", + "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, - "regex": "", + "regex": "/.*{.*job=\"([a-zA-Z0-9_-]+)\".*}/", "sort": 1, "type": "query" }, @@ -3090,17 +6055,12 @@ "auto_count": 300, "auto_min": "10s", "current": { - "text": "auto", - "value": "$__auto_interval_minstep" + "text": "$__auto", + "value": "$__auto" }, "label": "Min step", "name": "minstep", "options": [ - { - "selected": true, - "text": "auto", - "value": "$__auto_interval_minstep" - }, { "selected": false, "text": "10s", @@ -3128,7 +6088,7 @@ }, { "current": { - "text": "Rate", + "text": "rate", "value": "rate" }, "includeAll": false, @@ -3156,37 +6116,40 @@ "type": "prometheus", "uid": "$datasource" }, - "definition": "label_values(receiver)", + "definition": "query_result(avg by (receiver) ({__name__=~\"otelcol_receiver_.+\",job=\"$job\"}))", "includeAll": true, "label": "Receiver", "name": "receiver", "options": [], "query": { - "query": "label_values(receiver)", - "refId": "StandardVariableQuery" + "qryType": 3, + "query": "query_result(avg by (receiver) ({__name__=~\"otelcol_receiver_.+\",job=\"$job\"}))", + "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, - "regex": "", + "regex": "/.*receiver=\"(.*)\".*/", "sort": 1, "type": "query" }, { + "allValue": ".*", "current": {}, "datasource": { "type": "prometheus", "uid": "$datasource" }, - "definition": "label_values(processor)", + "definition": "query_result(avg by (processor) ({__name__=~\"otelcol_processor_.+\",job=\"$job\"}))", "includeAll": true, "label": "Processor", "name": "processor", "options": [], "query": { - "query": "label_values(processor)", - "refId": "StandardVariableQuery" + "qryType": 3, + "query": "query_result(avg by (processor) ({__name__=~\"otelcol_processor_.+\",job=\"$job\"}))", + "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, - "regex": "", + "regex": "/.*processor=\"(.*)\".*/", "sort": 1, "type": "query" }, @@ -3197,23 +6160,24 @@ "type": "prometheus", "uid": "$datasource" }, - "definition": "label_values(exporter)", + "definition": "query_result(avg by (exporter) ({__name__=~\"otelcol_exporter_.+\",job=\"$job\"}))", "includeAll": true, "label": "Exporter", "name": "exporter", "options": [], "query": { - "query": "label_values(exporter)", - "refId": "StandardVariableQuery" + "qryType": 3, + "query": "query_result(avg by (exporter) ({__name__=~\"otelcol_exporter_.+\",job=\"$job\"}))", + "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, - "regex": "", + "regex": "/.*exporter=\"(.*)\".*/", "sort": 1, "type": "query" }, { "current": { - "text": "None (basic metrics)", + "text": "", "value": "" }, "description": "Detailed metrics must be configured in the collector configuration. They add grouping by transport protocol (http/grpc) for receivers. ", @@ -3239,17 +6203,116 @@ ], "query": "None (basic metrics) : , By transport (detailed metrics) : \\,transport, By service instance id : \\,service_instance_id", "type": "custom" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "definition": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", + "description": "Some exporter(s) configuration(s) may add the metric suffix _total. This variable will detect this case.", + "hide": 2, + "includeAll": false, + "label": "Suffix _total", + "name": "suffix_total", + "options": [], + "query": { + "qryType": 3, + "query": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "/.*(_total)+{.*/", + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "definition": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", + "description": "Some exporter(s) configuration(s) may add the metric suffix _seconds_total. This variable will detect this \"_seconds\" suffix part.", + "hide": 2, + "includeAll": false, + "label": "Suffix _seconds", + "name": "suffix_seconds", + "options": [], + "query": { + "qryType": 3, + "query": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "/otelcol_process_uptime(.*)_total{.*/", + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "definition": "query_result({__name__=~\"otelcol_process_memory_rss.+\",job=\"$job\"})", + "description": "Some exporter(s) configuration(s) may add the metric suffix _bytes. This variable will detect this \"_bytes\" suffix part.", + "hide": 2, + "includeAll": false, + "label": "Suffix _bytes", + "name": "suffix_bytes", + "options": [], + "query": { + "qryType": 3, + "query": "query_result({__name__=~\"otelcol_process_memory_rss.+\",job=\"$job\"})", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "/otelcol_process_memory_rss(.*){.*/", + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "definition": "query_result({__name__=~\".*.*rpc_server_duration_bucket|.*rpc_client_duration_bucket|.*http_server_duration_bucket|.*http_client_duration_bucket.*\",job=\"$job\"})", + "description": "Some metrics (e.g., RPC, HTTP) may no longer have the otelcol_ prefix. This will detect it. See https://github.com/open-telemetry/opentelemetry-collector/pull/9759", + "hide": 2, + "includeAll": false, + "label": "Prefix", + "name": "prefix", + "options": [], + "query": { + "qryType": 3, + "query": "query_result({__name__=~\".*.*rpc_server_duration_bucket|.*rpc_client_duration_bucket|.*http_server_duration_bucket|.*http_client_duration_bucket.*\",job=\"$job\"})", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "/(.*)(rpc|http)_(server|client)_duration_bucket.*{.*/", + "type": "query" + }, + { + "baseFilters": [], + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "filters": [], + "label": "Ad Hoc", + "name": "adhoc", + "type": "adhoc" } ] }, "time": { - "from": "now-6h", + "from": "now-15m", "to": "now" }, "timepicker": {}, - "timezone": "utc", + "timezone": "", "title": "OpenTelemetry Collector", "uid": "BKf2sowmj", - "version": 2, + "version": 1, "weekStart": "" } \ No newline at end of file diff --git a/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json b/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json index c7a11f1c10..4a26602786 100644 --- a/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json +++ b/src/grafana/provisioning/dashboards/demo/spanmetrics-dashboard.json @@ -1022,7 +1022,7 @@ ] }, "time": { - "from": "now-1h", + "from": "now-15m", "to": "now" }, "timepicker": {}, diff --git a/src/grafana/provisioning/datasources/opensearch.yaml b/src/grafana/provisioning/datasources/opensearch.yaml index df633bc743..814250ae75 100644 --- a/src/grafana/provisioning/datasources/opensearch.yaml +++ b/src/grafana/provisioning/datasources/opensearch.yaml @@ -5,6 +5,7 @@ apiVersion: 1 datasources: - name: OpenSearch + uid: webstore-logs type: grafana-opensearch-datasource url: http://opensearch:9200/ access: proxy @@ -13,7 +14,7 @@ datasources: jsonData: database: otel flavor: opensearch - logLevelField: severity + logLevelField: severity.text.keyword logMessageField: body pplEnabled: true timeField: observedTimestamp diff --git a/src/otel-collector/otelcol-config.yml b/src/otel-collector/otelcol-config.yml index 248c372c4f..2449846e20 100644 --- a/src/otel-collector/otelcol-config.yml +++ b/src/otel-collector/otelcol-config.yml @@ -79,14 +79,6 @@ receivers: mute_process_exe_error: true mute_process_io_error: true mute_process_user_error: true - # Collector metrics - prometheus: - config: - scrape_configs: - - job_name: 'otel-collector' - scrape_interval: 10s - static_configs: - - targets: ['0.0.0.0:8888'] exporters: debug: @@ -107,6 +99,10 @@ exporters: processors: batch: + memory_limiter: + check_interval: 5s + limit_percentage: 80 + spike_limit_percentage: 25 transform: error_mode: ignore trace_statements: @@ -123,13 +119,24 @@ service: pipelines: traces: receivers: [otlp] - processors: [transform, batch] + processors: [memory_limiter, transform, batch] exporters: [otlp, debug, spanmetrics] metrics: - receivers: [hostmetrics, docker_stats, httpcheck/frontend-proxy, otlp, prometheus, redis, spanmetrics] - processors: [batch] + receivers: [hostmetrics, docker_stats, httpcheck/frontend-proxy, otlp, redis, spanmetrics] + processors: [memory_limiter, batch] exporters: [otlphttp/prometheus, debug] logs: receivers: [otlp] - processors: [batch] + processors: [memory_limiter, batch] exporters: [opensearch, debug] + telemetry: + metrics: + level: detailed + readers: + - periodic: + interval: 10000 + timeout: 5000 + exporter: + otlp: + protocol: grpc + endpoint: ${env:OTEL_COLLECTOR_HOST}:${env:OTEL_COLLECTOR_PORT_GRPC} diff --git a/src/prometheus/prometheus-config.yaml b/src/prometheus/prometheus-config.yaml index 736212af42..7ba23eedea 100644 --- a/src/prometheus/prometheus-config.yaml +++ b/src/prometheus/prometheus-config.yaml @@ -16,12 +16,6 @@ otlp: - container.name - deployment.environment.name -scrape_configs: - - job_name: otel-collector - static_configs: - - targets: - - 'otel-collector:8888' - storage: tsdb: out_of_order_time_window: 30m From cc8f620a8a0ff2ccecb21ef1c4c1155af14a56e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Feb 2025 16:38:22 -0500 Subject: [PATCH 154/178] build(deps): bump io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom (#2088) Bumps the gradle-production-dependencies group with 1 update in the /src/ad directory: [io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom](https://github.com/open-telemetry/opentelemetry-java-instrumentation). Updates `io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom` from 2.13.1 to 2.13.2 - [Release notes](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java-instrumentation/compare/v2.13.1...v2.13.2) --- updated-dependencies: - dependency-name: io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/ad/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ad/build.gradle b/src/ad/build.gradle index 267fac9bfc..aec59fe323 100644 --- a/src/ad/build.gradle +++ b/src/ad/build.gradle @@ -17,7 +17,7 @@ group = "ad" version = "0.1.0-SNAPSHOT" def opentelemetryVersion = "1.47.0" -def opentelemetryInstrumentationVersion = "2.13.1" +def opentelemetryInstrumentationVersion = "2.13.2" def grpcVersion = "1.70.0" def jacksonVersion = "2.18.2" def protocVersion = "4.29.3" From f24923727e29fd571ee1273347e7e407e1a8a8b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Feb 2025 17:13:06 -0500 Subject: [PATCH 155/178] build(deps): bump the npm-production-dependencies group across 2 directories with 1 update (#2089) Bumps the npm-production-dependencies group with 1 update in the /src/flagd-ui directory: [next](https://github.com/vercel/next.js). Bumps the npm-production-dependencies group with 1 update in the /src/frontend directory: [next](https://github.com/vercel/next.js). Updates `next` from 15.1.7 to 15.2.0 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.1.7...v15.2.0) Updates `next` from 15.1.7 to 15.2.0 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.1.7...v15.2.0) --- updated-dependencies: - dependency-name: next dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: next dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Roger Coll Co-authored-by: Pierre Tessier --- src/flagd-ui/package-lock.json | 80 +++++++++++++++++----------------- src/flagd-ui/package.json | 2 +- src/frontend/package-lock.json | 80 +++++++++++++++++----------------- src/frontend/package.json | 2 +- 4 files changed, 82 insertions(+), 82 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 8601e340b0..333a62cde1 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -11,7 +11,7 @@ "@tailwindcss/postcss": "^4.0.9", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", - "next": "15.1.7", + "next": "15.2.0", "react": "^19", "react-dom": "^19" }, @@ -590,9 +590,9 @@ } }, "node_modules/@next/env": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.7.tgz", - "integrity": "sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.0.tgz", + "integrity": "sha512-eMgJu1RBXxxqqnuRJQh5RozhskoNUDHBFybvi+Z+yK9qzKeG7dadhv/Vp1YooSZmCnegf7JxWuapV77necLZNA==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -636,9 +636,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.7.tgz", - "integrity": "sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.0.tgz", + "integrity": "sha512-rlp22GZwNJjFCyL7h5wz9vtpBVuCt3ZYjFWpEPBGzG712/uL1bbSkS675rVAUCRZ4hjoTJ26Q7IKhr5DfJrHDA==", "cpu": [ "arm64" ], @@ -652,9 +652,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.7.tgz", - "integrity": "sha512-2qoas+fO3OQKkU0PBUfwTiw/EYpN+kdAx62cePRyY1LqKtP09Vp5UcUntfZYajop5fDFTjSxCHfZVRxzi+9FYQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.0.tgz", + "integrity": "sha512-DiU85EqSHogCz80+sgsx90/ecygfCSGl5P3b4XDRVZpgujBm5lp4ts7YaHru7eVTyZMjHInzKr+w0/7+qDrvMA==", "cpu": [ "x64" ], @@ -668,9 +668,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.7.tgz", - "integrity": "sha512-sKLLwDX709mPdzxMnRIXLIT9zaX2w0GUlkLYQnKGoXeWUhcvpCrK+yevcwCJPdTdxZEUA0mOXGLdPsGkudGdnA==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.0.tgz", + "integrity": "sha512-VnpoMaGukiNWVxeqKHwi8MN47yKGyki5q+7ql/7p/3ifuU2341i/gDwGK1rivk0pVYbdv5D8z63uu9yMw0QhpQ==", "cpu": [ "arm64" ], @@ -684,9 +684,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.7.tgz", - "integrity": "sha512-zblK1OQbQWdC8fxdX4fpsHDw+VSpBPGEUX4PhSE9hkaWPrWoeIJn+baX53vbsbDRaDKd7bBNcXRovY1hEhFd7w==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.0.tgz", + "integrity": "sha512-ka97/ssYE5nPH4Qs+8bd8RlYeNeUVBhcnsNUmFM6VWEob4jfN9FTr0NBhXVi1XEJpj3cMfgSRW+LdE3SUZbPrw==", "cpu": [ "arm64" ], @@ -700,9 +700,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.7.tgz", - "integrity": "sha512-GOzXutxuLvLHFDAPsMP2zDBMl1vfUHHpdNpFGhxu90jEzH6nNIgmtw/s1MDwpTOiM+MT5V8+I1hmVFeAUhkbgQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.0.tgz", + "integrity": "sha512-zY1JduE4B3q0k2ZCE+DAF/1efjTXUsKP+VXRtrt/rJCTgDlUyyryx7aOgYXNc1d8gobys/Lof9P9ze8IyRDn7Q==", "cpu": [ "x64" ], @@ -716,9 +716,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.7.tgz", - "integrity": "sha512-WrZ7jBhR7ATW1z5iEQ0ZJfE2twCNSXbpCSaAunF3BKcVeHFADSI/AW1y5Xt3DzTqPF1FzQlwQTewqetAABhZRQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.0.tgz", + "integrity": "sha512-QqvLZpurBD46RhaVaVBepkVQzh8xtlUN00RlG4Iq1sBheNugamUNPuZEH1r9X1YGQo1KqAe1iiShF0acva3jHQ==", "cpu": [ "x64" ], @@ -732,9 +732,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.7.tgz", - "integrity": "sha512-LDnj1f3OVbou1BqvvXVqouJZKcwq++mV2F+oFHptToZtScIEnhNRJAhJzqAtTE2dB31qDYL45xJwrc+bLeKM2Q==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.0.tgz", + "integrity": "sha512-ODZ0r9WMyylTHAN6pLtvUtQlGXBL9voljv6ujSlcsjOxhtXPI1Ag6AhZK0SE8hEpR1374WZZ5w33ChpJd5fsjw==", "cpu": [ "arm64" ], @@ -748,9 +748,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.7.tgz", - "integrity": "sha512-dC01f1quuf97viOfW05/K8XYv2iuBgAxJZl7mbCKEjMgdQl5JjAKJ0D2qMKZCgPWDeFbFT0Q0nYWwytEW0DWTQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.0.tgz", + "integrity": "sha512-8+4Z3Z7xa13NdUuUAcpVNA6o76lNPniBd9Xbo02bwXQXnZgFvEopwY2at5+z7yHl47X9qbZpvwatZ2BRo3EdZw==", "cpu": [ "x64" ], @@ -4293,12 +4293,12 @@ "dev": true }, "node_modules/next": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/next/-/next-15.1.7.tgz", - "integrity": "sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/next/-/next-15.2.0.tgz", + "integrity": "sha512-VaiM7sZYX8KIAHBrRGSFytKknkrexNfGb8GlG6e93JqueCspuGte8i4ybn8z4ww1x3f2uzY4YpTaBEW4/hvsoQ==", "license": "MIT", "dependencies": { - "@next/env": "15.1.7", + "@next/env": "15.2.0", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.15", "busboy": "1.6.0", @@ -4313,14 +4313,14 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.1.7", - "@next/swc-darwin-x64": "15.1.7", - "@next/swc-linux-arm64-gnu": "15.1.7", - "@next/swc-linux-arm64-musl": "15.1.7", - "@next/swc-linux-x64-gnu": "15.1.7", - "@next/swc-linux-x64-musl": "15.1.7", - "@next/swc-win32-arm64-msvc": "15.1.7", - "@next/swc-win32-x64-msvc": "15.1.7", + "@next/swc-darwin-arm64": "15.2.0", + "@next/swc-darwin-x64": "15.2.0", + "@next/swc-linux-arm64-gnu": "15.2.0", + "@next/swc-linux-arm64-musl": "15.2.0", + "@next/swc-linux-x64-gnu": "15.2.0", + "@next/swc-linux-x64-musl": "15.2.0", + "@next/swc-win32-arm64-msvc": "15.2.0", + "@next/swc-win32-x64-msvc": "15.2.0", "sharp": "^0.33.5" }, "peerDependencies": { diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index da249805ff..d2a6845291 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -12,7 +12,7 @@ "@tailwindcss/postcss": "^4.0.9", "@vercel/otel": "^1.10.1", "ajv": "^8.17.1", - "next": "15.1.7", + "next": "15.2.0", "react": "^19", "react-dom": "^19" }, diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 22c7ab6c0f..a5e32a644d 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -37,7 +37,7 @@ "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", "dotenv-expand": "12.0.1", - "next": "15.1.7", + "next": "15.2.0", "react": "19.0.0", "react-dom": "19.0.0", "sharp": "0.33.5", @@ -852,9 +852,9 @@ } }, "node_modules/@next/env": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.7.tgz", - "integrity": "sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.0.tgz", + "integrity": "sha512-eMgJu1RBXxxqqnuRJQh5RozhskoNUDHBFybvi+Z+yK9qzKeG7dadhv/Vp1YooSZmCnegf7JxWuapV77necLZNA==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -898,9 +898,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.7.tgz", - "integrity": "sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.0.tgz", + "integrity": "sha512-rlp22GZwNJjFCyL7h5wz9vtpBVuCt3ZYjFWpEPBGzG712/uL1bbSkS675rVAUCRZ4hjoTJ26Q7IKhr5DfJrHDA==", "cpu": [ "arm64" ], @@ -914,9 +914,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.7.tgz", - "integrity": "sha512-2qoas+fO3OQKkU0PBUfwTiw/EYpN+kdAx62cePRyY1LqKtP09Vp5UcUntfZYajop5fDFTjSxCHfZVRxzi+9FYQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.0.tgz", + "integrity": "sha512-DiU85EqSHogCz80+sgsx90/ecygfCSGl5P3b4XDRVZpgujBm5lp4ts7YaHru7eVTyZMjHInzKr+w0/7+qDrvMA==", "cpu": [ "x64" ], @@ -930,9 +930,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.7.tgz", - "integrity": "sha512-sKLLwDX709mPdzxMnRIXLIT9zaX2w0GUlkLYQnKGoXeWUhcvpCrK+yevcwCJPdTdxZEUA0mOXGLdPsGkudGdnA==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.0.tgz", + "integrity": "sha512-VnpoMaGukiNWVxeqKHwi8MN47yKGyki5q+7ql/7p/3ifuU2341i/gDwGK1rivk0pVYbdv5D8z63uu9yMw0QhpQ==", "cpu": [ "arm64" ], @@ -946,9 +946,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.7.tgz", - "integrity": "sha512-zblK1OQbQWdC8fxdX4fpsHDw+VSpBPGEUX4PhSE9hkaWPrWoeIJn+baX53vbsbDRaDKd7bBNcXRovY1hEhFd7w==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.0.tgz", + "integrity": "sha512-ka97/ssYE5nPH4Qs+8bd8RlYeNeUVBhcnsNUmFM6VWEob4jfN9FTr0NBhXVi1XEJpj3cMfgSRW+LdE3SUZbPrw==", "cpu": [ "arm64" ], @@ -962,9 +962,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.7.tgz", - "integrity": "sha512-GOzXutxuLvLHFDAPsMP2zDBMl1vfUHHpdNpFGhxu90jEzH6nNIgmtw/s1MDwpTOiM+MT5V8+I1hmVFeAUhkbgQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.0.tgz", + "integrity": "sha512-zY1JduE4B3q0k2ZCE+DAF/1efjTXUsKP+VXRtrt/rJCTgDlUyyryx7aOgYXNc1d8gobys/Lof9P9ze8IyRDn7Q==", "cpu": [ "x64" ], @@ -978,9 +978,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.7.tgz", - "integrity": "sha512-WrZ7jBhR7ATW1z5iEQ0ZJfE2twCNSXbpCSaAunF3BKcVeHFADSI/AW1y5Xt3DzTqPF1FzQlwQTewqetAABhZRQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.0.tgz", + "integrity": "sha512-QqvLZpurBD46RhaVaVBepkVQzh8xtlUN00RlG4Iq1sBheNugamUNPuZEH1r9X1YGQo1KqAe1iiShF0acva3jHQ==", "cpu": [ "x64" ], @@ -994,9 +994,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.7.tgz", - "integrity": "sha512-LDnj1f3OVbou1BqvvXVqouJZKcwq++mV2F+oFHptToZtScIEnhNRJAhJzqAtTE2dB31qDYL45xJwrc+bLeKM2Q==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.0.tgz", + "integrity": "sha512-ODZ0r9WMyylTHAN6pLtvUtQlGXBL9voljv6ujSlcsjOxhtXPI1Ag6AhZK0SE8hEpR1374WZZ5w33ChpJd5fsjw==", "cpu": [ "arm64" ], @@ -1010,9 +1010,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.7.tgz", - "integrity": "sha512-dC01f1quuf97viOfW05/K8XYv2iuBgAxJZl7mbCKEjMgdQl5JjAKJ0D2qMKZCgPWDeFbFT0Q0nYWwytEW0DWTQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.0.tgz", + "integrity": "sha512-8+4Z3Z7xa13NdUuUAcpVNA6o76lNPniBd9Xbo02bwXQXnZgFvEopwY2at5+z7yHl47X9qbZpvwatZ2BRo3EdZw==", "cpu": [ "x64" ], @@ -7365,12 +7365,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/next/-/next-15.1.7.tgz", - "integrity": "sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/next/-/next-15.2.0.tgz", + "integrity": "sha512-VaiM7sZYX8KIAHBrRGSFytKknkrexNfGb8GlG6e93JqueCspuGte8i4ybn8z4ww1x3f2uzY4YpTaBEW4/hvsoQ==", "license": "MIT", "dependencies": { - "@next/env": "15.1.7", + "@next/env": "15.2.0", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.15", "busboy": "1.6.0", @@ -7385,14 +7385,14 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.1.7", - "@next/swc-darwin-x64": "15.1.7", - "@next/swc-linux-arm64-gnu": "15.1.7", - "@next/swc-linux-arm64-musl": "15.1.7", - "@next/swc-linux-x64-gnu": "15.1.7", - "@next/swc-linux-x64-musl": "15.1.7", - "@next/swc-win32-arm64-msvc": "15.1.7", - "@next/swc-win32-x64-msvc": "15.1.7", + "@next/swc-darwin-arm64": "15.2.0", + "@next/swc-darwin-x64": "15.2.0", + "@next/swc-linux-arm64-gnu": "15.2.0", + "@next/swc-linux-arm64-musl": "15.2.0", + "@next/swc-linux-x64-gnu": "15.2.0", + "@next/swc-linux-x64-musl": "15.2.0", + "@next/swc-win32-arm64-msvc": "15.2.0", + "@next/swc-win32-x64-msvc": "15.2.0", "sharp": "^0.33.5" }, "peerDependencies": { diff --git a/src/frontend/package.json b/src/frontend/package.json index f8d9c58d62..bdd9a966a4 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -40,7 +40,7 @@ "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", "dotenv-expand": "12.0.1", - "next": "15.1.7", + "next": "15.2.0", "react": "19.0.0", "react-dom": "19.0.0", "sharp": "0.33.5", From 1c6ba70565799e6b1fec2eb35069fd4388e68b6d Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Fri, 28 Feb 2025 03:06:14 -0500 Subject: [PATCH 156/178] [frontend] update browser tracer provider config (#2092) * updated deprecated calls * remove deprecated calls --- CHANGELOG.md | 2 + .../utils/telemetry/FrontendTracer.ts | 41 ++++++++++--------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07dc3ab017..7d7ce9e9f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ the release. ([#2072](https://github.com/open-telemetry/opentelemetry-demo/pull/2072)) * [grafana] Update dashboards with service map ([#2085](https://github.com/open-telemetry/opentelemetry-demo/pull/2085)) +* [frontend] Update OpenTelemetry Browser SDK initialization + ([#2092](https://github.com/open-telemetry/opentelemetry-demo/pull/2092)) ## 2.0.0 diff --git a/src/frontend/utils/telemetry/FrontendTracer.ts b/src/frontend/utils/telemetry/FrontendTracer.ts index 69681970f1..8f4de75455 100644 --- a/src/frontend/utils/telemetry/FrontendTracer.ts +++ b/src/frontend/utils/telemetry/FrontendTracer.ts @@ -7,11 +7,10 @@ import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base'; import { registerInstrumentations } from '@opentelemetry/instrumentation'; import { getWebAutoInstrumentations } from '@opentelemetry/auto-instrumentations-web'; import { Resource, browserDetector } from '@opentelemetry/resources'; -import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'; +import { SEMRESATTRS_SERVICE_NAME } from '@opentelemetry/semantic-conventions'; import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'; import { SessionIdProcessor } from './SessionIdProcessor'; import { detectResourcesSync } from '@opentelemetry/resources/build/src/detect-resources'; -import { ZoneContextManager } from '@opentelemetry/context-zone'; const { NEXT_PUBLIC_OTEL_SERVICE_NAME = '', @@ -19,34 +18,38 @@ const { IS_SYNTHETIC_REQUEST = '', } = typeof window !== 'undefined' ? window.ENV : {}; -const FrontendTracer = () => { +const FrontendTracer = async () => { + const { ZoneContextManager } = await import('@opentelemetry/context-zone'); + let resource = new Resource({ - [SemanticResourceAttributes.SERVICE_NAME]: NEXT_PUBLIC_OTEL_SERVICE_NAME, + [SEMRESATTRS_SERVICE_NAME]: NEXT_PUBLIC_OTEL_SERVICE_NAME, }); - const detectedResources = detectResourcesSync({ detectors: [browserDetector] }); resource = resource.merge(detectedResources); - const provider = new WebTracerProvider({ resource }); - - provider.addSpanProcessor(new SessionIdProcessor()); - provider.addSpanProcessor( - new BatchSpanProcessor( - new OTLPTraceExporter({ - url: NEXT_PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT || 'http://localhost:4318/v1/traces', - }), - { - scheduledDelayMillis: 500, - } - ) - ); + const provider = new WebTracerProvider({ + resource, + spanProcessors: [ + new SessionIdProcessor(), + new BatchSpanProcessor( + new OTLPTraceExporter({ + url: NEXT_PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT || 'http://localhost:4318/v1/traces', + }), + { + scheduledDelayMillis: 500, + } + ), + ], + }); const contextManager = new ZoneContextManager(); provider.register({ contextManager, propagator: new CompositePropagator({ - propagators: [new W3CBaggagePropagator(), new W3CTraceContextPropagator()], + propagators: [ + new W3CBaggagePropagator(), + new W3CTraceContextPropagator()], }), }); From 3f845a6c3ac7525021f77bcf474ca424729038d9 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Fri, 28 Feb 2025 03:22:39 -0500 Subject: [PATCH 157/178] release 2.0.1 prep (#2091) Co-authored-by: Juliano Costa --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index 50a3b92f2d..b1850e547b 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ # Demo App version -IMAGE_VERSION=2.0.0 +IMAGE_VERSION=2.0.1 IMAGE_NAME=ghcr.io/open-telemetry/demo DEMO_VERSION=latest From 788845b40a0232a0dcc370f8521e980c7a098b79 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 00:41:17 -0500 Subject: [PATCH 158/178] build(deps): bump @tanstack/react-query (#2093) Bumps the npm-production-dependencies group with 1 update in the /src/frontend directory: [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query). Updates `@tanstack/react-query` from 5.66.9 to 5.66.10 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.66.10/packages/react-query) --- updated-dependencies: - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/frontend/package-lock.json | 8 ++++---- src/frontend/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index a5e32a644d..504ef1d3fa 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -32,7 +32,7 @@ "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.66.9", + "@tanstack/react-query": "5.66.10", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", @@ -2966,9 +2966,9 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.66.9", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.9.tgz", - "integrity": "sha512-NRI02PHJsP5y2gAuWKP+awamTIBFBSKMnO6UVzi03GTclmHHHInH5UzVgzi5tpu4+FmGfsdT7Umqegobtsp23A==", + "version": "5.66.10", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.10.tgz", + "integrity": "sha512-84CSj8YZqITJY6nQhK3MrReGErcvXVMlP+piIjmf5h2MG5kXrofGafWHiiPOt1wrvCW5nCWRoJfCzOO5LB2r4g==", "license": "MIT", "dependencies": { "@tanstack/query-core": "5.66.4" diff --git a/src/frontend/package.json b/src/frontend/package.json index bdd9a966a4..6bc3d07515 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -35,7 +35,7 @@ "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.66.9", + "@tanstack/react-query": "5.66.10", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", From f560782e26c138e136726d4acc661fa50e652633 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 00:45:45 -0500 Subject: [PATCH 159/178] build(deps): update php-di/php-di requirement (#2094) Updates the requirements on [php-di/php-di](https://github.com/PHP-DI/PHP-DI) to permit the latest version. Updates `php-di/php-di` to 7.0.9 - [Release notes](https://github.com/PHP-DI/PHP-DI/releases) - [Commits](https://github.com/PHP-DI/PHP-DI/compare/7.0.8...7.0.9) --- updated-dependencies: - dependency-name: php-di/php-di dependency-type: direct:production dependency-group: composer-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/quote/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/quote/composer.json b/src/quote/composer.json index 3c83afac93..acdb349833 100644 --- a/src/quote/composer.json +++ b/src/quote/composer.json @@ -14,7 +14,7 @@ "open-telemetry/detector-container": "1.0.0", "open-telemetry/opentelemetry-logger-monolog": "1.0.0", "guzzlehttp/guzzle": "7.9.2", - "php-di/php-di": "7.0.8", + "php-di/php-di": "7.0.9", "php-di/slim-bridge": "3.4.1", "php-http/guzzle7-adapter": "1.1.0", "react/http": "v1.11.0", From 52fe78a84448bfe80f7151f051338c286d37573d Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Sat, 1 Mar 2025 01:09:13 -0500 Subject: [PATCH 160/178] post release 2.0.1 (#2096) --- CHANGELOG.md | 7 +- kubernetes/opentelemetry-demo.yaml | 9437 ++++++++++++++++------------ 2 files changed, 5277 insertions(+), 4167 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d7ce9e9f4..1b77048d59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,14 +7,17 @@ the release. ## Unreleased +* [frontend] Update OpenTelemetry Browser SDK initialization + ([#2092](https://github.com/open-telemetry/opentelemetry-demo/pull/2092)) + +## 2.0.1 + * [chore] Use Linkspector to check links ([#2070](https://github.com/open-telemetry/opentelemetry-demo/pull/2070)) * [frontend] Cypress tests base image updated to 14.0.3 ([#2072](https://github.com/open-telemetry/opentelemetry-demo/pull/2072)) * [grafana] Update dashboards with service map ([#2085](https://github.com/open-telemetry/opentelemetry-demo/pull/2085)) -* [frontend] Update OpenTelemetry Browser SDK initialization - ([#2092](https://github.com/open-telemetry/opentelemetry-demo/pull/2092)) ## 2.0.0 diff --git a/kubernetes/opentelemetry-demo.yaml b/kubernetes/opentelemetry-demo.yaml index 52bfc17bae..3159432588 100644 --- a/kubernetes/opentelemetry-demo.yaml +++ b/kubernetes/opentelemetry-demo.yaml @@ -32,7 +32,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.5.1" + app.kubernetes.io/version: "11.5.2" name: grafana namespace: otel-demo --- @@ -57,7 +57,7 @@ metadata: labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.119.0" + app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector --- # Source: opentelemetry-demo/charts/prometheus/templates/serviceaccount.yaml @@ -83,7 +83,7 @@ metadata: labels: app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo --- # Source: opentelemetry-demo/charts/grafana/templates/secret.yaml @@ -95,7 +95,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.5.1" + app.kubernetes.io/version: "11.5.2" type: Opaque data: @@ -112,7 +112,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.5.1" + app.kubernetes.io/version: "11.5.2" data: plugins: grafana-opensearch-datasource @@ -166,13 +166,14 @@ data: jsonData: database: otel flavor: opensearch - logLevelField: severity + logLevelField: severity.text.keyword logMessageField: body pplEnabled: true timeField: observedTimestamp version: 2.18.0 name: OpenSearch type: grafana-opensearch-datasource + uid: webstore-logs url: http://opensearch:9200/ dashboardproviders.yaml: | apiVersion: 1 @@ -258,7 +259,7 @@ metadata: labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.119.0" + app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector data: relay: | @@ -406,6 +407,15 @@ data: telemetry: metrics: address: ${env:MY_POD_IP}:8888 + level: detailed + readers: + - periodic: + exporter: + otlp: + endpoint: otel-collector:4318 + protocol: grpc + interval: 10000 + timeout: 5000 --- # Source: opentelemetry-demo/charts/prometheus/templates/cm.yaml apiVersion: v1 @@ -439,17 +449,302 @@ data: - /etc/config/rules - /etc/config/alerts scrape_configs: + - job_name: prometheus + static_configs: + - targets: + - localhost:9090 + - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + job_name: kubernetes-apiservers + kubernetes_sd_configs: + - role: endpoints + relabel_configs: + - action: keep + regex: default;kubernetes;https + source_labels: + - __meta_kubernetes_namespace + - __meta_kubernetes_service_name + - __meta_kubernetes_endpoint_port_name + scheme: https + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + job_name: kubernetes-nodes + kubernetes_sd_configs: + - role: node + relabel_configs: + - action: labelmap + regex: __meta_kubernetes_node_label_(.+) + - replacement: kubernetes.default.svc:443 + target_label: __address__ + - regex: (.+) + replacement: /api/v1/nodes/$1/proxy/metrics + source_labels: + - __meta_kubernetes_node_name + target_label: __metrics_path__ + scheme: https + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + job_name: kubernetes-nodes-cadvisor + kubernetes_sd_configs: + - role: node + relabel_configs: + - action: labelmap + regex: __meta_kubernetes_node_label_(.+) + - replacement: kubernetes.default.svc:443 + target_label: __address__ + - regex: (.+) + replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor + source_labels: + - __meta_kubernetes_node_name + target_label: __metrics_path__ + scheme: https + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + - honor_labels: true + job_name: kubernetes-service-endpoints + kubernetes_sd_configs: + - role: endpoints + relabel_configs: + - action: keep + regex: true + source_labels: + - __meta_kubernetes_service_annotation_prometheus_io_scrape + - action: drop + regex: true + source_labels: + - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow + - action: replace + regex: (https?) + source_labels: + - __meta_kubernetes_service_annotation_prometheus_io_scheme + target_label: __scheme__ + - action: replace + regex: (.+) + source_labels: + - __meta_kubernetes_service_annotation_prometheus_io_path + target_label: __metrics_path__ + - action: replace + regex: (.+?)(?::\d+)?;(\d+) + replacement: $1:$2 + source_labels: + - __address__ + - __meta_kubernetes_service_annotation_prometheus_io_port + target_label: __address__ + - action: labelmap + regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) + replacement: __param_$1 + - action: labelmap + regex: __meta_kubernetes_service_label_(.+) + - action: replace + source_labels: + - __meta_kubernetes_namespace + target_label: namespace + - action: replace + source_labels: + - __meta_kubernetes_service_name + target_label: service + - action: replace + source_labels: + - __meta_kubernetes_pod_node_name + target_label: node + - honor_labels: true + job_name: kubernetes-service-endpoints-slow + kubernetes_sd_configs: + - role: endpoints + relabel_configs: + - action: keep + regex: true + source_labels: + - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow + - action: replace + regex: (https?) + source_labels: + - __meta_kubernetes_service_annotation_prometheus_io_scheme + target_label: __scheme__ + - action: replace + regex: (.+) + source_labels: + - __meta_kubernetes_service_annotation_prometheus_io_path + target_label: __metrics_path__ + - action: replace + regex: (.+?)(?::\d+)?;(\d+) + replacement: $1:$2 + source_labels: + - __address__ + - __meta_kubernetes_service_annotation_prometheus_io_port + target_label: __address__ + - action: labelmap + regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) + replacement: __param_$1 + - action: labelmap + regex: __meta_kubernetes_service_label_(.+) + - action: replace + source_labels: + - __meta_kubernetes_namespace + target_label: namespace + - action: replace + source_labels: + - __meta_kubernetes_service_name + target_label: service + - action: replace + source_labels: + - __meta_kubernetes_pod_node_name + target_label: node + scrape_interval: 5m + scrape_timeout: 30s + - honor_labels: true + job_name: prometheus-pushgateway + kubernetes_sd_configs: + - role: service + relabel_configs: + - action: keep + regex: pushgateway + source_labels: + - __meta_kubernetes_service_annotation_prometheus_io_probe + - honor_labels: true + job_name: kubernetes-services + kubernetes_sd_configs: + - role: service + metrics_path: /probe + params: + module: + - http_2xx + relabel_configs: + - action: keep + regex: true + source_labels: + - __meta_kubernetes_service_annotation_prometheus_io_probe + - source_labels: + - __address__ + target_label: __param_target + - replacement: blackbox + target_label: __address__ + - source_labels: + - __param_target + target_label: instance + - action: labelmap + regex: __meta_kubernetes_service_label_(.+) + - source_labels: + - __meta_kubernetes_namespace + target_label: namespace + - source_labels: + - __meta_kubernetes_service_name + target_label: service + - honor_labels: true + job_name: kubernetes-pods + kubernetes_sd_configs: + - role: pod + relabel_configs: + - action: keep + regex: true + source_labels: + - __meta_kubernetes_pod_annotation_prometheus_io_scrape + - action: drop + regex: true + source_labels: + - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow + - action: replace + regex: (https?) + source_labels: + - __meta_kubernetes_pod_annotation_prometheus_io_scheme + target_label: __scheme__ + - action: replace + regex: (.+) + source_labels: + - __meta_kubernetes_pod_annotation_prometheus_io_path + target_label: __metrics_path__ + - action: replace + regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) + replacement: '[$2]:$1' + source_labels: + - __meta_kubernetes_pod_annotation_prometheus_io_port + - __meta_kubernetes_pod_ip + target_label: __address__ + - action: replace + regex: (\d+);((([0-9]+?)(\.|$)){4}) + replacement: $2:$1 + source_labels: + - __meta_kubernetes_pod_annotation_prometheus_io_port + - __meta_kubernetes_pod_ip + target_label: __address__ + - action: labelmap + regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) + replacement: __param_$1 + - action: labelmap + regex: __meta_kubernetes_pod_label_(.+) + - action: replace + source_labels: + - __meta_kubernetes_namespace + target_label: namespace + - action: replace + source_labels: + - __meta_kubernetes_pod_name + target_label: pod + - action: drop + regex: Pending|Succeeded|Failed|Completed + source_labels: + - __meta_kubernetes_pod_phase + - action: replace + source_labels: + - __meta_kubernetes_pod_node_name + target_label: node - honor_labels: true - job_name: otel-collector + job_name: kubernetes-pods-slow kubernetes_sd_configs: - - namespaces: - own_namespace: true - role: pod + - role: pod relabel_configs: - action: keep regex: true source_labels: - - __meta_kubernetes_pod_annotation_opentelemetry_community_demo + - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow + - action: replace + regex: (https?) + source_labels: + - __meta_kubernetes_pod_annotation_prometheus_io_scheme + target_label: __scheme__ + - action: replace + regex: (.+) + source_labels: + - __meta_kubernetes_pod_annotation_prometheus_io_path + target_label: __metrics_path__ + - action: replace + regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) + replacement: '[$2]:$1' + source_labels: + - __meta_kubernetes_pod_annotation_prometheus_io_port + - __meta_kubernetes_pod_ip + target_label: __address__ + - action: replace + regex: (\d+);((([0-9]+?)(\.|$)){4}) + replacement: $2:$1 + source_labels: + - __meta_kubernetes_pod_annotation_prometheus_io_port + - __meta_kubernetes_pod_ip + target_label: __address__ + - action: labelmap + regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) + replacement: __param_$1 + - action: labelmap + regex: __meta_kubernetes_pod_label_(.+) + - action: replace + source_labels: + - __meta_kubernetes_namespace + target_label: namespace + - action: replace + source_labels: + - __meta_kubernetes_pod_name + target_label: pod + - action: drop + regex: Pending|Succeeded|Failed|Completed + source_labels: + - __meta_kubernetes_pod_phase + - action: replace + source_labels: + - __meta_kubernetes_pod_node_name + target_label: node + scrape_interval: 5m + scrape_timeout: 30s recording_rules.yml: | {} rules: | @@ -464,7 +759,7 @@ metadata: labels: app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo data: @@ -589,11 +884,11 @@ metadata: labels: app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo data: - demo-dashboard.json: | + demo-dashboard.json: |- { "annotations": { "list": [ @@ -619,8 +914,8 @@ data: }, "editable": true, "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 4, + "graphTooltip": 1, + "id": 2, "links": [], "panels": [ { @@ -629,7 +924,7 @@ data: "overrides": [] }, "gridPos": { - "h": 2, + "h": 3, "w": 24, "x": 0, "y": 0 @@ -641,10 +936,10 @@ data: "showLineNumbers": false, "showMiniMap": false }, - "content": "This dashboard shows RED metrics for the selected service, as generated by the spanmetrics connector in the OpenTelemetry Collector.\nIf the selected service emits logs, the logs will also be displayed.\nCustom metrics generated by some services are also displayed.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "content": "This dashboard shows RED metrics for the selected service, as generated by the spanmetrics connector in the OpenTelemetry Collector.\nIf the selected service emits logs, the logs will also be displayed.\nCustom metrics generated by some services are also displayed. \n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", "mode": "html" }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "title": "", "type": "text" }, @@ -654,11 +949,11 @@ data: "h": 1, "w": 24, "x": 0, - "y": 2 + "y": 3 }, "id": 14, "panels": [], - "title": "Spanmetrics", + "title": "Spanmetrics (RED metrics)", "type": "row" }, { @@ -666,7 +961,6 @@ data: "type": "prometheus", "uid": "webstore-metrics" }, - "description": "", "fieldConfig": { "defaults": { "color": { @@ -695,7 +989,7 @@ data: "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -719,17 +1013,17 @@ data: } ] }, - "unit": "dtdurationms" + "unit": "reqps" }, "overrides": [] }, "gridPos": { "h": 8, - "w": 12, + "w": 8, "x": 0, - "y": 3 + "y": 4 }, - "id": 2, + "id": 12, "interval": "2m", "options": { "legend": { @@ -739,11 +1033,12 @@ data: "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -751,53 +1046,13 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "exemplar": true, - "expr": "histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", - "legendFormat": "quantile50", + "expr": "sum by (span_name) (rate(traces_span_metrics_duration_milliseconds_count{service_name=\"${service}\"}[$__rate_interval]))", + "legendFormat": "{{ span_name }}", "range": true, "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "histogram_quantile(0.95, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", - "hide": false, - "legendFormat": "quantile95", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "histogram_quantile(0.99, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", - "hide": false, - "legendFormat": "quantile99", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "histogram_quantile(0.999, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le))", - "hide": false, - "legendFormat": "quantile999", - "range": true, - "refId": "D" } ], - "title": "Latency for ${service}", + "title": "Requests Rate by Span Name", "type": "timeseries" }, { @@ -834,7 +1089,7 @@ data: "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -863,9 +1118,9 @@ data: }, "gridPos": { "h": 8, - "w": 12, - "x": 12, - "y": 3 + "w": 8, + "x": 8, + "y": 4 }, "id": 10, "interval": "2m", @@ -877,11 +1132,12 @@ data: "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -889,14 +1145,14 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": " sum by (span_name) (rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\", service_name=\"${service}\"}[$__rate_interval]))", + "expr": "sum by (span_name) (rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\", service_name=\"${service}\"}[$__rate_interval]))", "interval": "", "legendFormat": "{{ span_name }}", "range": true, "refId": "A" } ], - "title": "Error Rate for ${service} by span name", + "title": "Error Rate by Span Name", "type": "timeseries" }, { @@ -904,6 +1160,7 @@ data: "type": "prometheus", "uid": "webstore-metrics" }, + "description": "", "fieldConfig": { "defaults": { "color": { @@ -932,7 +1189,7 @@ data: "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -956,31 +1213,32 @@ data: } ] }, - "unit": "reqps" + "unit": "dtdurationms" }, "overrides": [] }, "gridPos": { "h": 8, - "w": 12, - "x": 0, - "y": 11 + "w": 8, + "x": 16, + "y": 4 }, - "id": 12, + "id": 2, "interval": "2m", "options": { "legend": { "calcs": [], - "displayMode": "table", + "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -988,13 +1246,14 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum by (span_name) (rate(traces_span_metrics_duration_milliseconds_count{service_name=\"${service}\"}[$__rate_interval]))", - "legendFormat": "{{ span_name }}", + "exemplar": false, + "expr": "histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le, span_name))", + "legendFormat": "{{span_name}}", "range": true, "refId": "A" } ], - "title": "Requests Rate for ${service} by span name", + "title": "Average Duration by Span Name", "type": "timeseries" }, { @@ -1003,17 +1262,17 @@ data: "h": 1, "w": 24, "x": 0, - "y": 19 + "y": 12 }, "id": 19, "panels": [], - "title": "Application Logs", + "title": "Application Log Records", "type": "row" }, { "datasource": { "type": "grafana-opensearch-datasource", - "uid": "P9744FCCEAAFBD98F" + "uid": "webstore-logs" }, "description": "", "fieldConfig": { @@ -1062,7 +1321,7 @@ data: "h": 8, "w": 4, "x": 0, - "y": 20 + "y": 13 }, "id": 20, "options": { @@ -1077,23 +1336,26 @@ data: }, "showHeader": true }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "alias": "", "bucketAggs": [ { - "field": "time", - "id": "2", + "field": "severity.text.keyword", + "id": "3", "settings": { - "interval": "auto" + "min_doc_count": "1", + "order": "desc", + "orderBy": "_count", + "size": "0" }, - "type": "date_histogram" + "type": "terms" } ], "datasource": { "type": "grafana-opensearch-datasource", - "uid": "P9744FCCEAAFBD98F" + "uid": "webstore-logs" }, "format": "table", "metrics": [ @@ -1105,16 +1367,30 @@ data: "query": "search source=otel\n| where resource.service.name=\"${service}\"\n| stats count() by severity.text", "queryType": "PPL", "refId": "A", - "timeField": "time" + "timeField": "observedTimestamp" + } + ], + "title": "Log Records by Severity", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": {}, + "includeByName": {}, + "indexByName": {}, + "renameByName": { + "Count": "", + "severity.text.keyword": "Severity" + } + } } ], - "title": "${service} Log entries by Severity", "type": "table" }, { "datasource": { "type": "grafana-opensearch-datasource", - "uid": "P9744FCCEAAFBD98F" + "uid": "webstore-logs" }, "fieldConfig": { "defaults": { @@ -1124,9 +1400,11 @@ data: "custom": { "align": "auto", "cellOptions": { - "type": "auto" + "type": "auto", + "wrapText": false }, - "inspect": false + "filterable": true, + "inspect": true }, "mappings": [], "thresholds": { @@ -1149,10 +1427,29 @@ data: "id": "byName", "options": "observedTimestamp" }, + "properties": [] + }, + { + "matcher": { + "id": "byName", + "options": "body" + }, + "properties": [ + { + "id": "custom.width", + "value": 386 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "severity.text" + }, "properties": [ { "id": "custom.width", - "value": 222 + "value": 127 } ] } @@ -1162,7 +1459,7 @@ data: "h": 8, "w": 20, "x": 4, - "y": 20 + "y": 13 }, "id": 17, "options": { @@ -1176,46 +1473,72 @@ data: "show": false }, "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "observedTimestamp" - } - ] + "sortBy": [] }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "alias": "", - "bucketAggs": [ - { - "field": "time", - "id": "2", - "settings": { - "interval": "auto" - }, - "type": "date_histogram" - } - ], + "bucketAggs": [], "datasource": { "type": "grafana-opensearch-datasource", - "uid": "P9744FCCEAAFBD98F" + "uid": "webstore-logs" }, - "format": "logs", + "format": "table", "hide": false, "metrics": [ { "id": "1", - "type": "count" + "settings": { + "order": "desc", + "size": "100", + "useTimeRange": true + }, + "type": "raw_data" } ], - "query": "search source=otel\n| where resource.service.name=\"${service}\"| sort - observedTimestamp | head 100", + "query": "search source=otel\n| where resource.service.name=\"${service}\"\n| sort - observedTimestamp \n| head 100", "queryType": "PPL", "refId": "A", "timeField": "observedTimestamp" } ], - "title": "${service} Logs (100 recent entries)", + "title": "Log Records (100 recent entries)", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "@timestamp": true + }, + "includeByName": {}, + "indexByName": { + "@timestamp": 1, + "attributes.data_stream.dataset": 4, + "attributes.data_stream.namespace": 5, + "attributes.data_stream.type": 6, + "attributes.productId": 7, + "attributes.quantity": 8, + "attributes.userId": 9, + "body": 3, + "instrumentationScope.name": 10, + "observedTimestamp": 0, + "resource.container.id": 11, + "resource.docker.cli.cobra.command_path": 12, + "resource.host.name": 13, + "resource.service.name": 14, + "resource.telemetry.sdk.language": 15, + "resource.telemetry.sdk.name": 16, + "resource.telemetry.sdk.version": 17, + "severity.number": 18, + "severity.text": 2, + "spanId": 19, + "traceId": 20 + }, + "renameByName": {} + } + } + ], "type": "table" }, { @@ -1224,7 +1547,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 28 + "y": 21 }, "id": 18, "panels": [], @@ -1264,7 +1587,7 @@ data: "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -1279,7 +1602,8 @@ data: "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1295,7 +1619,7 @@ data: "h": 8, "w": 12, "x": 0, - "y": 29 + "y": 22 }, "id": 6, "options": { @@ -1306,11 +1630,12 @@ data: "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1384,7 +1709,7 @@ data: "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -1399,7 +1724,8 @@ data: "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1415,7 +1741,7 @@ data: "h": 8, "w": 12, "x": 12, - "y": 29 + "y": 22 }, "id": 8, "options": { @@ -1426,11 +1752,12 @@ data: "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1474,7 +1801,7 @@ data: "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, - "drawStyle": "bars", + "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { @@ -1489,7 +1816,7 @@ data: "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -1504,7 +1831,8 @@ data: "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1519,7 +1847,7 @@ data: "h": 8, "w": 12, "x": 0, - "y": 37 + "y": 30 }, "id": 4, "options": { @@ -1530,11 +1858,12 @@ data: "showLegend": false }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1585,7 +1914,7 @@ data: "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", + "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", @@ -1600,7 +1929,8 @@ data: "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1615,7 +1945,7 @@ data: "h": 8, "w": 12, "x": 12, - "y": 37 + "y": 30 }, "id": 16, "interval": "2m", @@ -1627,11 +1957,12 @@ data: "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1648,6 +1979,59 @@ data: ], "title": "Quote Service batch span processor", "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 38 + }, + "id": 23, + "panels": [], + "title": "Service Dependency", + "type": "row" + }, + { + "datasource": { + "type": "jaeger", + "uid": "webstore-traces" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 18, + "w": 24, + "x": 0, + "y": 39 + }, + "id": 22, + "options": { + "edges": { + "mainStatUnit": "requests" + }, + "nodes": { + "arcs": [], + "mainStatUnit": "" + }, + "zoomMode": "cooperative" + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "jaeger", + "uid": "webstore-traces" + }, + "queryType": "dependencyGraph", + "refId": "A" + } + ], + "title": "Service Dependency", + "type": "nodeGraph" } ], "preload": false, @@ -1667,6 +2051,7 @@ data: }, "definition": "traces_span_metrics_duration_milliseconds_bucket", "includeAll": false, + "label": "Service", "name": "service", "options": [], "query": { @@ -1674,14 +2059,14 @@ data: "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, - "regex": "/.*service_name=\\\"([^\\\"]+)\\\".*/", + "regex": "/.*service.name=\\\"([^\\\"]+)\\\".*/", "sort": 1, "type": "query" } ] }, "time": { - "from": "now-1h", + "from": "now-15m", "to": "now" }, "timepicker": {}, @@ -1691,7 +2076,7 @@ data: "version": 2, "weekStart": "" } - exemplars-dashboard.json: | + exemplars-dashboard.json: |- { "annotations": { "list": [ @@ -2141,7 +2526,7 @@ data: "list": [] }, "time": { - "from": "now-1h", + "from": "now-15m", "to": "now" }, "timepicker": {}, @@ -2151,15 +2536,15 @@ data: "version": 3, "weekStart": "" } - opentelemetry-collector-data-flow.json: | + opentelemetry-collector.json: |- { "annotations": { "list": [ { "builtIn": 1, "datasource": { - "type": "grafana", - "uid": "-- Grafana --" + "type": "datasource", + "uid": "grafana" }, "enable": true, "hide": true, @@ -2175,11 +2560,11 @@ data: } ] }, - "description": "otelcol metrics dashboard", + "description": "Visualize OpenTelemetry (OTEL) collector metrics (tested with OTEL contrib v0.120.1)", "editable": true, "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 6, + "graphTooltip": 1, + "id": 4, "links": [], "panels": [ { @@ -2193,17 +2578,17 @@ data: "x": 0, "y": 0 }, - "id": 56, + "id": 86, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, - "content": "This dashboard is used to understand the data flows for the OpenTelemetry Collector's metrics and traces pipelines.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", + "content": "This dashboard uses the metrics generated by the OpenTelemetry Collector.\nIt is used to understand the overall performance and health of the OpenTelemetry Collector.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.\n", "mode": "html" }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "title": "", "type": "text" }, @@ -2215,23 +2600,58 @@ data: "x": 0, "y": 2 }, - "id": 8, + "id": 23, "panels": [], - "title": "Process", + "title": "Receivers", "type": "row" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "Otel Collector Instance", + "description": "Accepted: count/rate of spans successfully pushed into the pipeline.\nRefused: count/rate of spans that could not be pushed into the pipeline.", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -2244,63 +2664,140 @@ data: "value": 80 } ] - } + }, + "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Refused.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 4, - "w": 3, + "h": 8, + "w": 8, "x": 0, "y": 3 }, - "id": 6, + "id": 28, + "interval": "$minstep", "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "center", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "count(count(otelcol_process_cpu_seconds_total{service_instance_id=~\".*\"}) by (service_instance_id))", - "legendFormat": "__auto", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_accepted_spans${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Accepted: {{receiver}} {{transport}} {{service_instance_id}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_refused_spans${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Refused: {{receiver}} {{transport}} {{service_instance_id}}", + "range": true, + "refId": "B" } ], - "title": "Instance", - "type": "stat" + "title": "Spans ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "otelcol_process_cpu_seconds", + "description": "Accepted: count/rate of metric points successfully pushed into the pipeline.\nRefused: count/rate of metric points that could not be pushed into the pipeline.", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -2314,61 +2811,139 @@ data: } ] }, - "unit": "s" + "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Refused.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 4, - "w": 3, - "x": 3, + "h": 8, + "w": 8, + "x": 8, "y": 3 }, - "id": 24, + "id": 80, + "interval": "$minstep", "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "avg(rate(otelcol_process_cpu_seconds_total{}[$__rate_interval])*100) by (instance)", - "legendFormat": "__auto", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_accepted_metric_points${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Accepted: {{receiver}} {{transport}} {{service_instance_id}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_refused_metric_points${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Refused: {{receiver}} {{transport}} {{service_instance_id}}", + "range": true, + "refId": "B" } ], - "title": "Cpu", - "type": "gauge" + "title": "Metric Points ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "Memory Rss\navg(otelcol_process_memory_rss{}) by (instance)", + "description": "Accepted: count/rate of log records successfully pushed into the pipeline.\nRefused: count/rate of log records that could not be pushed into the pipeline.", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -2382,74 +2957,91 @@ data: } ] }, - "unit": "bytes" + "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Refused.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 4, - "w": 3, - "x": 6, + "h": 8, + "w": 8, + "x": 16, "y": 3 }, - "id": 38, + "id": 47, + "interval": "$minstep", "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "avg(otelcol_process_memory_rss{}) by (instance)", - "legendFormat": "__auto", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_accepted_log_records${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Accepted: {{receiver}} {{transport}} {{service_instance_id}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_receiver_refused_log_records${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Refused: {{receiver}} {{transport}} {{service_instance_id}}", + "range": true, + "refId": "B" } ], - "title": "Memory", - "type": "gauge" - }, - { - "description": "", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 15, - "x": 9, - "y": 3 - }, - "id": 32, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "## Opentelemetry Collector Data Ingress/Egress\n\n`service_version:` ${service_version}\n\n`opentelemetry collector:` contrib\n\n", - "mode": "markdown" - }, - "pluginVersion": "11.4.0", - "title": "", - "type": "text" + "title": "Log Records ${metric:text}", + "type": "timeseries" }, { "collapsed": false, @@ -2457,326 +3049,552 @@ data: "h": 1, "w": 24, "x": 0, - "y": 7 + "y": 11 }, - "id": 10, + "id": 34, "panels": [], - "title": "Trace Pipeline", + "title": "Processors", "type": "row" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "(avg(sum by(job) (rate(otelcol_exporter_sent_spans{}[$__range]))) / avg(sum by(job) (rate(otelcol_receiver_accepted_spans{}[$__range])))) ", + "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], - "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "light-blue", + "color": "green", "value": null }, { - "color": "semi-dark-red", - "value": 0 - }, + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Refused.*/" + }, + "properties": [ { - "color": "super-light-orange", - "value": 0.4 + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } }, { - "color": "dark-blue", - "value": 0.9 - }, + "id": "custom.axisPlacement", + "value": "right" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Dropped.*/" + }, + "properties": [ { - "color": "super-light-orange", - "value": 1.2 + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } }, { - "color": "dark-red", - "value": 2.1 + "id": "custom.axisPlacement", + "value": "right" } ] - }, - "unit": "percentunit" - }, - "overrides": [] + } + ] }, "gridPos": { - "h": 19, - "w": 3, + "h": 8, + "w": 8, "x": 0, - "y": 8 + "y": 12 }, - "id": 55, + "id": 85, + "interval": "$minstep", "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "vertical", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showThresholdLabels": false, - "showThresholdMarkers": false, - "sizing": "auto" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_spans_total{}[$__range])))", + "expr": "sum(${metric:value}(otelcol_processor_incoming_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"traces\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", - "hide": true, - "instant": false, - "legendFormat": "__auto", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Incomming: {{processor}} {{service_instance_id}}", "range": true, - "refId": "export" + "refId": "A" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_spans_total{}[$__range])))", + "exemplar": false, + "expr": "0-sum(${metric:value}(otelcol_processor_outgoing_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"traces\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", - "hide": true, - "legendFormat": "__auto", - "range": true, - "refId": "acc" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "(avg(sum by(job) (rate(otelcol_exporter_sent_spans_total{}[$__range]))) / avg(sum by(job) (rate(otelcol_receiver_accepted_spans_total{}[$__range])))) ", "hide": false, - "legendFormat": "__auto", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Outgoing: {{processor}} {{service_instance_id}}", "range": true, - "refId": "A" + "refId": "B" } ], - "title": "Export Ratio", - "type": "gauge" + "title": "Spans ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, + "description": "", "fieldConfig": { - "defaults": {}, - "overrides": [] + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Refused.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Dropped.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 11, - "w": 21, - "x": 3, - "y": 8 + "h": 8, + "w": 8, + "x": 8, + "y": 12 }, - "id": 4, + "id": 83, + "interval": "$minstep", "options": { - "edges": {}, - "nodes": { - "mainStatUnit": "flops" + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "label_join(label_join(\n(rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n \nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", - "format": "table", - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" + "expr": "sum(${metric:value}(otelcol_processor_incoming_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"metrics\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Incomming: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "A" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n\n ,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n or\n\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n ,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\n label_join(\nlabel_replace(label_replace(\n (rate(otelcol_exporter_sent_spans_total{}[$__interval]))\n ,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n", - "format": "table", + "expr": "0-sum(${metric:value}(otelcol_processor_outgoing_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"metrics\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Outgoing: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "B" } ], - "title": "", - "type": "nodeGraph" + "title": "Metric Points ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "Spans Accepted by Receiver and Transport", + "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], - "noValue": "no data", "thresholds": { "mode": "absolute", "steps": [ { - "color": "text", + "color": "green", "value": null + }, + { + "color": "red", + "value": 80 } ] }, - "unit": "none" + "unit": "short" }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 5, - "x": 3, - "y": 19 - }, - "id": 12, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_spans_total{}[$__rate_interval])) by (receiver,transport)", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, - "refId": "A" - } - ], - "title": "Accepted", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total Spans Accepted ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Refused.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Dropped.*/" + }, + "properties": [ { - "color": "text", - "value": null + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" } ] } - }, - "overrides": [] + ] }, "gridPos": { - "h": 5, - "w": 3, - "x": 8, - "y": 19 + "h": 8, + "w": 8, + "x": 16, + "y": 12 }, - "id": 13, + "id": 84, + "interval": "$minstep", "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "horizontal", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_spans_total{}[$__rate_interval])) ", - "legendFormat": "{{receiver}}-{{transport}}", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_incoming_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"logs\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Incomming: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "0-sum(${metric:value}(otelcol_processor_outgoing_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"logs\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Outgoing: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "B" } ], - "title": "Total ", - "type": "gauge" + "title": "Logs Records ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "Total Batch Processed", + "description": "Accepted: count/rate of spans successfully pushed into the next component in the pipeline.\nRefused: count/rate of spans that were rejected by the next component in the pipeline.\nDropped: count/rate of spans that were dropped", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -2785,454 +3603,860 @@ data: "value": null }, { - "color": "#EAB839", - "value": 1 + "color": "red", + "value": 80 } ] }, - "unit": "none" + "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Refused.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Dropped.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 5, - "w": 5, - "x": 11, - "y": 19 + "h": 8, + "w": 8, + "x": 0, + "y": 20 }, - "id": 15, + "id": 35, + "interval": "$minstep", "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "sum(rate(otelcol_processor_batch_batch_send_size_sum{}[$__rate_interval])) by (processor)", - "legendFormat": "{{processor}}", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_accepted_spans${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Accepted: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_refused_spans${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Refused: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_dropped_spans${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Dropped: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "C" } ], - "title": "Batch", - "type": "stat" + "title": "Accepted Spans ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, + "description": "Accepted: count/rate of metric points successfully pushed into the next component in the pipeline.\nRefused: count/rate of metric points that were rejected by the next component in the pipeline.\nDropped: count/rate of metric points that were dropped", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "text", + "color": "green", "value": null + }, + { + "color": "red", + "value": 80 } ] - } + }, + "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Refused.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Dropped.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 5, - "w": 3, - "x": 16, - "y": 19 + "h": 8, + "w": 8, + "x": 8, + "y": 20 }, - "id": 14, + "id": 50, + "interval": "$minstep", "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_spans_total{}[$__interval])) ", + "expr": "sum(${metric:value}(otelcol_processor_accepted_metric_points${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Accepted: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_refused_metric_points${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Refused: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_dropped_metric_points${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Dropped: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "C" } ], - "title": "Total ", - "type": "gauge" + "title": "Accepted Metric Points ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "Sent by Exporter", + "description": "Accepted: count/rate of log records successfully pushed into the next component in the pipeline.\nRefused: count/rate of log records that were rejected by the next component in the pipeline.\nDropped: count/rate of log records that were dropped", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "text", + "color": "green", "value": null + }, + { + "color": "red", + "value": 80 } ] }, - "unit": "none" + "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Refused.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Dropped.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 5, - "w": 5, - "x": 19, - "y": 19 + "h": 8, + "w": 8, + "x": 16, + "y": 20 }, - "id": 30, + "id": 51, + "interval": "$minstep", "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_spans_total{}[$__rate_interval])) by (exporter)", + "expr": "sum(${metric:value}(otelcol_processor_accepted_log_records${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Accepted: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_refused_log_records${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Refused: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_dropped_log_records${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Dropped: {{processor}} {{service_instance_id}}", + "range": true, + "refId": "C" } ], - "title": "Sent", - "type": "stat" + "title": "Accepted Log Records ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, + "description": "Number of units in the batch", "fieldConfig": { "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "noValue": "no data", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } }, - "unit": "none" + "links": [] }, "overrides": [] }, "gridPos": { - "h": 3, - "w": 5, - "x": 3, - "y": 24 + "h": 8, + "w": 8, + "x": 0, + "y": 28 }, - "id": 17, + "id": 49, + "interval": "$minstep", + "maxDataPoints": 50, "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 57 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true + "yAxis": { + "axisPlacement": "left", + "reverse": false + } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_spans_total{}[$__rate_interval])) by (receiver,transport)", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, - "refId": "A" + "exemplar": false, + "expr": "sum(increase(otelcol_processor_batch_batch_send_size_bucket{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" } ], - "title": "Refused", - "type": "stat" + "title": "Batch Send Size Heatmap", + "type": "heatmap" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "Total Spans Accepted ", + "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "text", + "color": "green", "value": null + }, + { + "color": "red", + "value": 80 } ] - } + }, + "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/.*count.*/" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 3, - "w": 3, + "h": 8, + "w": 8, "x": 8, - "y": 24 + "y": 28 }, - "id": 18, + "id": 36, + "interval": "$minstep", "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_spans_total{}[$__rate_interval])) ", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_batch_batch_send_size_count{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Batch send size count: {{processor}} {{service_instance_id}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_batch_batch_send_size_sum{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Batch send size sum: {{processor}} {{service_instance_id}}", "refId": "A" } ], - "title": "Total ", - "type": "gauge" + "title": "Batch Metrics 1", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "otelcol_exporter_send_failed_spans", + "description": "Number of times the batch was sent due to a size trigger. Number of times the batch was sent due to a timeout trigger.", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 16, - "y": 24 - }, - "id": 19, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_spans_total{}[$__rate_interval])) ", - "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Total ", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Sent by Exporter\notelcol_exporter_send_failed_spans", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "text", + "color": "green", "value": null + }, + { + "color": "red", + "value": 80 } ] }, - "unit": "none" + "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/.*timeout.*/" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 3, - "w": 5, - "x": 19, - "y": 24 + "h": 8, + "w": 8, + "x": 16, + "y": 28 }, - "id": 20, + "id": 56, + "interval": "$minstep", "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.4.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_spans_total{}[$__rate_interval])) by (exporter)", + "expr": "sum(${metric:value}(otelcol_processor_batch_batch_size_trigger_send${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", + "hide": false, "instant": false, - "legendFormat": "{{processor}}", - "range": true, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Batch sent due to a size trigger: {{processor}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_batch_timeout_trigger_send${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Batch sent due to a timeout trigger: {{processor}} {{service_instance_id}}", "refId": "A" } ], - "title": "Failed", - "type": "stat" + "title": "Batch Metrics 2", + "type": "timeseries" }, { "collapsed": false, @@ -3240,2709 +4464,1403 @@ data: "h": 1, "w": 24, "x": 0, - "y": 27 + "y": 36 }, - "id": 22, + "id": 25, "panels": [], - "title": "Metrics Pipeline", + "title": "Exporters", "type": "row" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points{}[$__range]))) versus avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points{}[$__range])))", + "description": "Sent: count/rate of spans successfully sent to destination.\nEnqueue: count/rate of spans failed to be added to the sending queue.\nFailed: count/rate of spans in failed attempts to send to destination.", "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "light-blue" - }, - { - "color": "semi-dark-red", - "value": 0 - }, - { - "color": "super-light-orange", - "value": 0.4 + "color": "green", + "value": null }, { - "color": "dark-blue", - "value": 0.9 - }, + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Failed:.*/" + }, + "properties": [ { - "color": "super-light-orange", - "value": 1.2 + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } }, { - "color": "dark-red", - "value": 2.1 + "id": "custom.axisPlacement", + "value": "right" } ] - }, - "unit": "percentunit" - }, - "overrides": [] + } + ] }, "gridPos": { - "h": 19, - "w": 3, + "h": 9, + "w": 8, "x": 0, - "y": 28 + "y": 37 }, - "id": 54, + "id": 37, + "interval": "$minstep", "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "vertical", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "/.*/", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showThresholdLabels": false, - "showThresholdMarkers": false, - "sizing": "auto" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points_total{}[$__range])))", + "expr": "sum(${metric:value}(otelcol_exporter_sent_spans${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", - "hide": true, - "instant": false, - "legendFormat": "__auto", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "export" + "refId": "A" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points_total{}[$__range])))", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_spans${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", - "hide": true, - "legendFormat": "__auto", - "range": true, - "refId": "acc" + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", + "range": true, + "refId": "B" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "( avg(sum by(job) (rate(otelcol_exporter_sent_metric_points_total{}[$__range]))) /avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points_total{}[$__range]))))", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_send_failed_spans${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "format": "time_series", "hide": false, - "legendFormat": "__auto", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", "range": true, - "refId": "A" - } - ], - "title": "Export Ratio", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "percent", - "binary": { - "left": "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points{}[3600s])))", - "operator": "/", - "reducer": "sum", - "right": "avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points{}[3600s])))" - }, - "mode": "binary", - "reduce": { - "reducer": "sum" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "(sum(rate(otelcol_exporter_sent_metric_points{exporter=\"prometheus\"}[1m0s])) )": true, - "Time": true, - "avg(sum by(job) (rate(otelcol_exporter_sent_metric_points{}[3600s])))": true, - "avg(sum by(job) (rate(otelcol_receiver_accepted_metric_points{}[3600s])))": true, - "{instance=\"otelcol:9464\", job=\"otel\"}": true - }, - "indexByName": {}, - "renameByName": { - "Time": "", - "percent": "Percent", - "{exporter=\"debug\", instance=\"otelcol:8888\", job=\"otel-collector\", service_instance_id=\"fbfa720a-ebf9-45c8-a79a-9d3b6021a663\", service_name=\"otelcol-contrib\", service_version=\"0.70.0\"}": "" - } - } + "refId": "C" } ], - "type": "gauge" + "title": "Spans ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "Metrics Signalling Pipelines", + "description": "Sent: count/rate of metric points successfully sent to destination.\nEnqueue: count/rate of metric points failed to be added to the sending queue.\nFailed: count/rate of metric points in failed attempts to send to destination.", "fieldConfig": { - "defaults": {}, - "overrides": [] + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Failed:.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 11, - "w": 21, - "x": 3, - "y": 28 + "h": 9, + "w": 8, + "x": 8, + "y": 37 }, - "id": 25, + "id": 38, + "interval": "$minstep", "options": { - "edges": {}, - "nodes": { - "mainStatUnit": "flops" + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "\nlabel_join(label_join(\n(rate(otelcol_receiver_accepted_metric_points_total{}[$__interval]))\n, \"id\", \"\", \"transport\", \"receiver\")\n, \"title\", \"\", \"transport\", \"receiver\")\n\nor\n\nlabel_replace(label_replace(\nsum by(service_name) (rate(otelcol_receiver_accepted_spans_total{}[$__interval]))\n, \"id\", \"processor\", \"dummynode\", \"\")\n, \"title\", \"processor\", \"dummynode\", \"\")\n\n\n\nor\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n, \"id\", \"$0\", \"processor\", \".*\")\n, \"title\", \"$0\", \"processor\", \".*\")\n\n\n\n\n\nor\nlabel_replace(label_replace(\nsum (rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n, \"id\", \"exporter\", \"dummynode\", \"\")\n, \"title\", \"exporter\", \"dummynode\", \"\")\n\nor\nlabel_replace(label_replace(\nsum by(exporter) (rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n, \"id\", \"$0\", \"exporter\", \".*\")\n, \"title\", \"$0\", \"exporter\", \".*\")", - "format": "table", - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" + "expr": "sum(${metric:value}(otelcol_exporter_sent_metric_points${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", + "range": true, + "refId": "A" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "label_join(\nlabel_replace(label_join(\n(rate(otelcol_receiver_accepted_metric_points_total{}[$__interval]))\n\n,\"source\",\"\",\"transport\",\"receiver\")\n,\"target\",\"processor\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\nor\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"processor\",\"\",\"\")\n,\"target\",\"$0\",\"processor\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")\n\n\n\n\n\nor\n\n\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_processor_batch_batch_send_size_count{}[$__interval]))\n,\"source\",\"$0\",\"processor\",\".*\")\n,\"target\",\"exporter\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")\n\nor\nlabel_join(\nlabel_replace(label_replace(\n(rate(otelcol_exporter_sent_metric_points_total{}[$__interval]))\n,\"source\",\"exporter\",\"\",\"\")\n,\"target\",\"$0\",\"exporter\",\".*\")\n,\"id\",\"-\",\"source\",\"target\")", - "format": "table", + "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_metric_points${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "format": "time_series", "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_send_failed_metric_points${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", + "range": true, + "refId": "C" } ], - "title": "", - "type": "nodeGraph" + "title": "Metric Points ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "otelcol_receiver_accepted_metric_points", + "description": "Sent: count/rate of log records successfully sent to destination.\nEnqueue: count/rate of log records failed to be added to the sending queue.\nFailed: count/rate of log records in failed attempts to send to destination.", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], - "noValue": "no data", + "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "text" + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 } ] }, - "unit": "none" + "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Failed:.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] }, "gridPos": { - "h": 5, - "w": 5, - "x": 3, - "y": 39 + "h": 9, + "w": 8, + "x": 16, + "y": 37 }, - "id": 26, + "id": 48, + "interval": "$minstep", "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_metric_points_total{}[$__rate_interval])) by (receiver,transport)", - "legendFormat": "{{receiver}}-{{transport}}", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_sent_log_records${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_log_records${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_exporter_send_failed_log_records${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", + "range": true, + "refId": "C" } ], - "title": "Accepted", - "type": "stat" + "title": "Log Records ${metric:text}", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "otelcol_receiver_accepted_metric_points\nTotal Accepted ", + "description": "Current size of the retry queue (in batches)", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { - "color": "text" + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 } ] - } + }, + "unit": "short" }, "overrides": [] }, "gridPos": { - "h": 5, - "w": 3, - "x": 8, - "y": 39 + "h": 9, + "w": 8, + "x": 0, + "y": 46 }, - "id": 27, + "id": 10, "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_accepted_metric_points_total{}[$__rate_interval])) ", - "legendFormat": "{{receiver}}-{{transport}}", + "exemplar": false, + "expr": "max(otelcol_exporter_queue_size{exporter=~\"$exporter\",job=\"$job\"}) by (exporter $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Max queue size: {{exporter}} {{service_instance_id}}", "range": true, "refId": "A" } ], - "title": "Total ", - "type": "gauge" + "title": "Exporter Queue Size", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, + "description": "Fixed capacity of the retry queue (in batches)", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { - "color": "#EAB839", - "value": 1 + "color": "red", + "value": 80 } ] }, - "unit": "none" + "unit": "short" }, "overrides": [] }, "gridPos": { - "h": 5, - "w": 5, - "x": 11, - "y": 39 + "h": 9, + "w": 8, + "x": 8, + "y": 46 }, - "id": 28, + "id": 55, "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "sum(rate(otelcol_processor_batch_batch_send_size_sum{}[$__rate_interval])) by (processor)", - "legendFormat": "{{processor}}", + "exemplar": false, + "expr": "min(otelcol_exporter_queue_capacity{exporter=~\"$exporter\",job=\"$job\"}) by (exporter $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Queue capacity: {{exporter}} {{service_instance_id}}", "range": true, "refId": "A" } ], - "title": "Batch", - "type": "stat" + "title": "Exporter Queue Capacity", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "Total Export ", + "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 3, - "x": 16, - "y": 39 - }, - "id": 29, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_metric_points_total{}[$__rate_interval])) ", - "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", - "range": true, - "refId": "A" - } - ], - "title": "Total ", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Sent by Exporter", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], + "max": 1, "thresholds": { "mode": "absolute", "steps": [ { - "color": "text" + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 } ] }, - "unit": "none" + "unit": "percentunit" }, "overrides": [] }, "gridPos": { - "h": 5, - "w": 5, - "x": 19, - "y": 39 + "h": 9, + "w": 8, + "x": 16, + "y": 46 }, - "id": 16, + "id": 67, "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_sent_metric_points_total{}[$__rate_interval])) by (exporter) ", + "expr": "max(\r\n otelcol_exporter_queue_size{\r\n exporter=~\"$exporter\", job=\"$job\"\r\n }\r\n) by (exporter $grouping)\r\n/\r\nmin(\r\n otelcol_exporter_queue_capacity{\r\n exporter=~\"$exporter\", job=\"$job\"\r\n }\r\n) by (exporter $grouping)", "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Queue capacity usage: {{exporter}} {{service_instance_id}}", "range": true, "refId": "A" } ], - "title": "Sent", - "type": "stat" + "title": "Exporter Queue Usage", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 55 + }, + "id": 21, + "panels": [], + "title": "Collector", + "type": "row" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, + "description": "Total physical memory (resident set size)", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], - "noValue": "no data", + "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "text" + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 } ] }, - "unit": "none" + "unit": "bytes" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Max Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.fillBelowTo", + "value": "Avg Memory RSS " + }, + { + "id": "custom.lineWidth", + "value": 0 + }, + { + "id": "custom.fillOpacity", + "value": 20 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Min Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + }, + { + "id": "custom.lineWidth", + "value": 0 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Avg Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + }, + { + "id": "custom.fillBelowTo", + "value": "Min Memory RSS " + }, + { + "id": "custom.fillOpacity", + "value": 20 + } + ] + } + ] }, "gridPos": { - "h": 3, - "w": 5, - "x": 3, - "y": 44 + "h": 9, + "w": 8, + "x": 0, + "y": 56 }, - "id": 47, + "id": 40, + "interval": "$minstep", "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_metric_points_total{}[$__rate_interval])) by (receiver,transport)", - "legendFormat": "{{receiver}}-{{transport}}", - "range": true, - "refId": "A" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } - ], - "title": "Refused", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total Refused \nsum(rate(otelcol_receiver_refused_metric_points{}[$__rate_interval])) ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 8, - "y": 44 - }, - "id": 48, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "sum(rate(otelcol_receiver_refused_metric_points_total{}[$__rate_interval])) ", - "legendFormat": "{{receiver}}-{{transport}}", + "exemplar": false, + "expr": "max(otelcol_process_memory_rss${suffix_bytes}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Max Memory RSS {{service_instance_id}}", "range": true, - "refId": "A" - } - ], - "title": "Total ", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total Failed Export ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 16, - "y": 44 - }, - "id": 49, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "refId": "C" }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.3.0", - "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_metric_points_total{}[$__rate_interval])) ", + "expr": "avg(otelcol_process_memory_rss${suffix_bytes}{job=\"$job\"}) by (job $grouping)", "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Avg Memory RSS {{service_instance_id}}", "range": true, "refId": "A" - } - ], - "title": "Total", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Sent by Exporter\notelcol_exporter_send_failed_metric_points", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 5, - "x": 19, - "y": 44 - }, - "id": 50, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.3.0", - "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "sum(rate(otelcol_exporter_send_failed_metric_points_total{}[$__rate_interval])) by (exporter)", + "expr": "min(otelcol_process_memory_rss${suffix_bytes}{job=\"$job\"}) by (job $grouping)", "format": "time_series", - "instant": false, - "legendFormat": "{{processor}}", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Min Memory RSS {{service_instance_id}}", "range": true, - "refId": "A" + "refId": "B" } ], - "title": "Failed", - "type": "stat" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 47 - }, - "id": 35, - "panels": [], - "title": "Prometheus Scrape", - "type": "row" + "title": "Total RSS Memory", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "otelcol prometheus exporter 8888 export rate versus prometheus scrape metrics", + "description": "Total bytes of memory obtained from the OS (see 'go doc runtime.MemStats.Sys')", "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "light-blue" + "color": "green", + "value": null }, { - "color": "semi-dark-red", - "value": 0 - }, + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Max Memory RSS " + }, + "properties": [ { - "color": "super-light-orange", - "value": 0.4 + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } }, { - "color": "dark-blue", - "value": 0.9 + "id": "custom.fillBelowTo", + "value": "Avg Memory RSS " }, { - "color": "super-light-orange", - "value": 1.2 + "id": "custom.lineWidth", + "value": 0 }, { - "color": "dark-red", - "value": 2.1 + "id": "custom.fillOpacity", + "value": 20 } ] }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 3, - "x": 0, - "y": 48 - }, - "id": 53, + { + "matcher": { + "id": "byName", + "options": "Min Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + }, + { + "id": "custom.lineWidth", + "value": 0 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Avg Memory RSS " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + }, + { + "id": "custom.fillBelowTo", + "value": "Min Memory RSS " + }, + { + "id": "custom.fillOpacity", + "value": 20 + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 56 + }, + "id": 52, + "interval": "$minstep", "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "vertical", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "min", + "max", + "mean" ], - "fields": "/.*/", - "values": false + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "showThresholdLabels": false, - "showThresholdMarkers": false, - "sizing": "auto" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "(sum_over_time(scrape_samples_scraped{job=\"otel-collector\"}[$__range])/ count_over_time(scrape_samples_scraped{job=\"otel-collector\"}[$__range])/(5*30)) ", + "expr": "max(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", "format": "time_series", - "instant": false, - "legendFormat": "__auto", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Max Memory RSS {{service_instance_id}}", "range": true, - "refId": "accepted" + "refId": "C" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", - "expr": "(sum(rate(otelcol_exporter_sent_metric_points_total{exporter=\"prometheus\"}[$__rate_interval])) )", + "exemplar": false, + "expr": "avg(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", "format": "time_series", - "hide": false, - "legendFormat": "__auto", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Avg Memory RSS {{service_instance_id}}", "range": true, "refId": "A" - } - ], - "title": "Exported/Scraped", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "percent", - "binary": { - "left": "{instance=\"otelcol:9464\", job=\"otel-collector\"}", - "operator": "/", - "reducer": "sum", - "right": "(sum(rate(otelcol_exporter_sent_metric_points{exporter=\"prometheus\"}[1m0s])) )" - }, - "mode": "binary", - "reduce": { - "reducer": "sum" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "(sum(rate(otelcol_exporter_sent_metric_points{exporter=\"prometheus\"}[1m0s])) )": true, - "Time": true, - "{instance=\"otelcol:9464\", job=\"otel\"}": true - }, - "indexByName": {}, - "renameByName": { - "percent": "Percent" - } - } - } - ], - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "sum_over_time(scrape_samples_scraped[$__range])/ count_over_time(scrape_samples_scraped[$__range])", - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlYlRd" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 5, - "x": 3, - "y": 48 - }, - "id": 37, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false }, - "showPercentChange": false, - "textMode": "value_and_name", - "wideLayout": true - }, - "pluginVersion": "11.3.0", - "targets": [ { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, "editorMode": "code", "exemplar": false, - "expr": "sum_over_time(scrape_samples_scraped[$__range])/ count_over_time(scrape_samples_scraped[$__range])/(5*30)", + "expr": "min(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", "format": "time_series", - "instant": false, - "legendFormat": "{{job}}/{{instance}}", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Min Memory RSS {{service_instance_id}}", "range": true, - "refId": "A" + "refId": "B" } ], - "title": "Samples Scraped", - "type": "stat" + "title": "Total Runtime Sys Memory", + "type": "timeseries" }, { "datasource": { "type": "prometheus", - "uid": "webstore-metrics" + "uid": "$datasource" }, - "description": "scrape_samples_scraped{job!=\"\"}\nTotal Samples Scraped", + "description": "Bytes of allocated heap objects (see 'go doc runtime.MemStats.HeapAlloc')", "fieldConfig": { "defaults": { "color": { - "mode": "continuous-BlYlRd" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, + "links": [], "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", "value": 80 } ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 3, - "x": 8, - "y": 48 - }, - "id": 42, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" }, - "editorMode": "code", - "exemplar": false, - "expr": "sum_over_time(scrape_samples_scraped[$__range])/ count_over_time(scrape_samples_scraped[$__range])/(5*30)", - "format": "time_series", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Total", - "transformations": [ - { - "id": "calculateField", - "options": { - "mode": "reduceRow", - "reduce": { - "include": [ - "{instance=\"otelcol:8888\", job=\"otel-collector\"}" - ], - "reducer": "sum" - }, - "replaceFields": true - } - } - ], - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 8, - "x": 11, - "y": 48 - }, - "id": 41, - "options": { - "edges": {}, - "nodes": {} - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "label_replace(label_replace(label_replace(\nsum (scrape_samples_scraped{job!=\"\"}) by (instance)\n, \"id\", \"$0\", \"instance\", \".*\")\n, \"title\", \"$0\", \"instance\", \".*\")\n,\"mainstat\",\"\",\"\",\"\")\n\nor \n\nlabel_replace(label_replace(label_replace(\nsum (scrape_samples_scraped{job!=\"\"})\n, \"id\", \"prometheus\", \"\", \"\")\n, \"title\", \"prometheus\", \"\", \"\")\n,\"mainstat\",\"\",\"\",\"\")\n", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "label_join(\nlabel_replace(label_replace(\nsum (scrape_samples_scraped{job!=\"\"}) by (instance)\n,\"source\",\"$0\",\"instance\",\".*\")\n,\"target\",\"prometheus\",\"\",\"\")\n,\"id\",\"-\",\"source\",\"target\")", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" - } - ], - "title": "", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true - }, - "indexByName": {}, - "renameByName": {} - } - } - ], - "type": "nodeGraph" - }, - { - "description": "Sent by Exporter", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 5, - "x": 19, - "y": 48 - }, - "id": 52, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "\n \n## Prometheus Config\n\n`evaluation_interval:` 30s\n\n`scrape_interval:` 5s", - "mode": "markdown" - }, - "pluginVersion": "11.3.0", - "title": "", - "type": "text" - } - ], - "preload": false, - "refresh": false, - "schemaVersion": 40, - "tags": [], - "templating": { - "list": [ - { - "allValue": ".*", - "current": { - "text": "0.70.0", - "value": "0.70.0" - }, - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "definition": "query_result(sum(otelcol_process_uptime{}) by (service_version))\n", - "hide": 2, - "includeAll": false, - "label": "service_version", - "multi": true, - "name": "service_version", - "options": [], - "query": { - "query": "query_result(sum(otelcol_process_uptime{}) by (service_version))\n", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "/.*service_version=\"(.*)\".*/", - "type": "query" - } - ] - }, - "time": { - "from": "now-15m", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Opentelemetry Collector Data Flow", - "uid": "rl5_tea4k", - "version": 2, - "weekStart": "" - } - opentelemetry-collector.json: | - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "Visualize OpenTelemetry (OTEL) collector metrics (tested with OTEL contrib v0.113.0)", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "id": 2, - "links": [], - "panels": [ - { - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 62, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "This dashboard uses the metrics generated by the OpenTelemetry Collector.\nIt is used to understand the overall performance and health of the OpenTelemetry Collector.\n
    \nChart panels may require 5 minutes after the Demo is started before rendering data.", - "mode": "markdown" - }, - "pluginVersion": "11.4.0", - "title": "", - "type": "text" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 2 - }, - "id": 23, - "panels": [], - "title": "Receivers", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Accepted: count/rate of spans successfully pushed into the pipeline.\nRefused: count/rate of spans that could not be pushed into the pipeline.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [ - { - "matcher": { - "id": "byRegexp", - "options": "/Refused.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 3 - }, - "id": 28, - "interval": "$minstep", - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", - "format": "time_series", - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Accepted: {{receiver}} {{transport}} {{service_instance_id}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Refused: {{receiver}} {{transport}} {{service_instance_id}}", - "range": true, - "refId": "B" - } - ], - "title": "Spans ${metric:text}", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Accepted: count/rate of metric points successfully pushed into the pipeline.\nRefused: count/rate of metric points that could not be pushed into the pipeline.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [ - { - "matcher": { - "id": "byRegexp", - "options": "/Refused.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 3 - }, - "id": 32, - "interval": "$minstep", - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", - "format": "time_series", - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Accepted: {{receiver}} {{transport}} {{service_instance_id}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Refused: {{receiver}} {{transport}} {{service_instance_id}}", - "range": true, - "refId": "B" - } - ], - "title": "Metric Points ${metric:text}", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Accepted: count/rate of log records successfully pushed into the pipeline.\nRefused: count/rate of log records that could not be pushed into the pipeline.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [ - { - "matcher": { - "id": "byRegexp", - "options": "/Refused.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 3 - }, - "id": 47, - "interval": "$minstep", - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_accepted_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", - "format": "time_series", - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Accepted: {{receiver}} {{transport}} {{service_instance_id}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_receiver_refused_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Refused: {{receiver}} {{transport}} {{service_instance_id}}", - "range": true, - "refId": "B" - } - ], - "title": "Log Records ${metric:text}", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 11 - }, - "id": 34, - "panels": [], - "title": "Processors", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [ - { - "matcher": { - "id": "byRegexp", - "options": "/.*Refused.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": "/.*Dropped.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "purple", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 12 - }, - "id": 36, - "interval": "$minstep", - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_processor_batch_batch_send_size_count{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Batch send size count: {{processor}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_processor_batch_batch_send_size_sum{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Batch send size sum: {{processor}}", - "refId": "A" - } - ], - "title": "Batch Metrics", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Number of units in the batch", - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - }, - "links": [] - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 12 - }, - "id": 49, - "interval": "$minstep", - "maxDataPoints": 50, - "options": { - "calculate": false, - "cellGap": 1, - "color": { - "exponent": 0.5, - "fill": "dark-orange", - "mode": "scheme", - "reverse": true, - "scale": "exponential", - "scheme": "Reds", - "steps": 57 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-9 - }, - "legend": { - "show": true - }, - "rowsFrame": { - "layout": "auto" - }, - "tooltip": { - "mode": "single", - "showColorScale": false, - "yHistogram": false - }, - "yAxis": { - "axisPlacement": "left", - "reverse": false - } - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(increase(otelcol_processor_batch_batch_send_size_bucket{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (le)", - "format": "heatmap", - "hide": false, - "instant": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "{{le}}", - "refId": "B" - } - ], - "title": "Batch Send Size Heatmap", - "type": "heatmap" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Number of times the batch was sent due to a size trigger. Number of times the batch was sent due to a timeout trigger.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [ - { - "matcher": { - "id": "byRegexp", - "options": "/.*Refused.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": "/.*Dropped.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "purple", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 12 - }, - "id": 56, - "interval": "$minstep", - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_processor_batch_timeout_trigger_send_total {processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Batch sent due to a timeout trigger: {{processor}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_processor_batch_timeout_trigger_send{processor=~\"$processor\"}[$__rate_interval])) by (processor)", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Batch sent due to a timeout trigger: {{processor}}", - "refId": "A" - } - ], - "title": "Batch Metrics", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 20 - }, - "id": 25, - "panels": [], - "title": "Exporters", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Sent: count/rate of spans successfully sent to destination.\nEngueue: count/rate of spans failed to be added to the sending queue.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [ - { - "matcher": { - "id": "byRegexp", - "options": "/Failed:.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 9, - "w": 8, - "x": 0, - "y": 21 - }, - "id": 37, - "interval": "$minstep", - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_spans_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", - "format": "time_series", - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_spans{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_send_failed_spans{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", - "range": true, - "refId": "C" - } - ], - "title": "Spans ${metric:text}", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Sent: count/rate of metric points successfully sent to destination.\nEngueue: count/rate of metric points failed to be added to the sending queue.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [ - { - "matcher": { - "id": "byRegexp", - "options": "/Failed:.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 9, - "w": 8, - "x": 8, - "y": 21 - }, - "id": 38, - "interval": "$minstep", - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_metric_points_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", - "format": "time_series", - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_metric_points{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", - "range": true, - "refId": "B" + "unit": "bytes" }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_send_failed_metric_points{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", - "range": true, - "refId": "C" - } - ], - "title": "Metric Points ${metric:text}", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Sent: count/rate of log records successfully sent to destination.\nEngueue: count/rate of log records failed to be added to the sending queue.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Max Memory RSS " }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ + "properties": [ { - "color": "green", - "value": null + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } }, { - "color": "red", - "value": 80 + "id": "custom.fillBelowTo", + "value": "Avg Memory RSS " + }, + { + "id": "custom.lineWidth", + "value": 0 + }, + { + "id": "custom.fillOpacity", + "value": 20 } ] }, - "unit": "short" - }, - "overrides": [ { "matcher": { - "id": "byRegexp", - "options": "/Failed:.*/" + "id": "byName", + "options": "Min Memory RSS " }, "properties": [ { "id": "color", "value": { - "fixedColor": "red", + "fixedColor": "yellow", "mode": "fixed" } + }, + { + "id": "custom.lineWidth", + "value": 0 } ] - } - ] - }, - "gridPos": { - "h": 9, - "w": 8, - "x": 16, - "y": 21 - }, - "id": 48, - "interval": "$minstep", - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "11.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_sent_log_records_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", - "format": "time_series", - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_log_records{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(${metric:value}(otelcol_exporter_send_failed_log_records{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", - "range": true, - "refId": "C" - } - ], - "title": "Log Records ${metric:text}", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Current size of the retry queue (in batches)", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" + { + "matcher": { + "id": "byName", + "options": "Avg Memory RSS " }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ + "properties": [ { - "color": "green" + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } }, { - "color": "red", - "value": 80 + "id": "custom.fillBelowTo", + "value": "Min Memory RSS " + }, + { + "id": "custom.fillOpacity", + "value": 20 } ] - }, - "unit": "short" - }, - "overrides": [] + } + ] }, "gridPos": { "h": 9, - "w": 12, - "x": 0, - "y": 30 + "w": 8, + "x": 16, + "y": 56 }, - "id": 10, + "id": 53, + "interval": "$minstep", "options": { "legend": { "calcs": [ @@ -5955,11 +5873,12 @@ data: "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -5967,144 +5886,57 @@ data: "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "max(otelcol_exporter_queue_size{exporter=~\"$exporter\",job=\"$job\"}) by (exporter)", + "exemplar": false, + "expr": "max(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", "format": "time_series", + "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Max queue size: {{exporter}}", + "legendFormat": "Max Memory RSS {{service_instance_id}}", "range": true, - "refId": "A" - } - ], - "title": "Exporter Queue Size", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Fixed capacity of the retry queue (in batches)", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 30 - }, - "id": 55, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true + "refId": "C" }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "11.3.0", - "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "min(otelcol_exporter_queue_capacity{exporter=~\"$exporter\",job=\"$job\"}) by (exporter)", + "exemplar": false, + "expr": "avg(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Queue capacity: {{exporter}}", + "legendFormat": "Avg Memory RSS {{service_instance_id}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "min(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Min Memory RSS {{service_instance_id}}", + "range": true, + "refId": "B" } ], - "title": "Exporter Queue Capacity", + "title": "Total Runtime Heap Memory", "type": "timeseries" }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 39 - }, - "id": 21, - "panels": [], - "title": "Collector", - "type": "row" - }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "description": "Total physical memory (resident set size)", + "description": "Total CPU user and system time in percentage", "fieldConfig": { "defaults": { "color": { @@ -6150,7 +5982,8 @@ data: "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -6158,13 +5991,13 @@ data: } ] }, - "unit": "bytes" + "unit": "percent" }, "overrides": [ { "matcher": { "id": "byName", - "options": "Max Memory RSS " + "options": "Max CPU usage " }, "properties": [ { @@ -6176,7 +6009,7 @@ data: }, { "id": "custom.fillBelowTo", - "value": "Avg Memory RSS " + "value": "Avg CPU usage " }, { "id": "custom.lineWidth", @@ -6191,42 +6024,38 @@ data: { "matcher": { "id": "byName", - "options": "Min Memory RSS " + "options": "Avg CPU usage " }, "properties": [ { "id": "color", "value": { - "fixedColor": "yellow", + "fixedColor": "orange", "mode": "fixed" } }, { - "id": "custom.lineWidth", - "value": 0 + "id": "custom.fillBelowTo", + "value": "Min CPU usage " } ] }, { "matcher": { "id": "byName", - "options": "Avg Memory RSS " + "options": "Min CPU usage " }, "properties": [ { "id": "color", "value": { - "fixedColor": "orange", + "fixedColor": "yellow", "mode": "fixed" } }, { - "id": "custom.fillBelowTo", - "value": "Min Memory RSS " - }, - { - "id": "custom.fillOpacity", - "value": 20 + "id": "custom.lineWidth", + "value": 0 } ] } @@ -6236,9 +6065,9 @@ data: "h": 9, "w": 8, "x": 0, - "y": 40 + "y": 65 }, - "id": 40, + "id": 39, "interval": "$minstep", "options": { "legend": { @@ -6252,11 +6081,12 @@ data: "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -6264,15 +6094,15 @@ data: "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "max(otelcol_process_memory_rss{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "max(rate(otelcol_process_cpu_seconds${suffix_total}{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Max Memory RSS {{service_instance_id}}", + "legendFormat": "Max CPU usage {{service_instance_id}}", "range": true, - "refId": "C" + "refId": "B" }, { "datasource": { @@ -6280,12 +6110,13 @@ data: "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "avg(otelcol_process_memory_rss{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "avg(rate(otelcol_process_cpu_seconds${suffix_total}{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", + "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Avg Memory RSS {{service_instance_id}}", + "legendFormat": "Avg CPU usage {{service_instance_id}}", "range": true, "refId": "A" }, @@ -6295,18 +6126,18 @@ data: "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "min(otelcol_process_memory_rss{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "min(rate(otelcol_process_cpu_seconds${suffix_total}{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Min Memory RSS {{service_instance_id}}", + "legendFormat": "Min CPU usage {{service_instance_id}}", "range": true, - "refId": "B" + "refId": "C" } ], - "title": "Total RSS Memory", + "title": "CPU Usage", "type": "timeseries" }, { @@ -6314,7 +6145,7 @@ data: "type": "prometheus", "uid": "$datasource" }, - "description": "Total bytes of memory obtained from the OS (see 'go doc runtime.MemStats.Sys')", + "description": "Number of service instances, which are reporting metrics", "fieldConfig": { "defaults": { "color": { @@ -6343,112 +6174,44 @@ data: "scaleDistribution": { "type": "linear" }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Max Memory RSS " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - }, - { - "id": "custom.fillBelowTo", - "value": "Avg Memory RSS " - }, - { - "id": "custom.lineWidth", - "value": 0 - }, - { - "id": "custom.fillOpacity", - "value": 20 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min Memory RSS " + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" - } - }, - { - "id": "custom.lineWidth", - "value": 0 - } - ] + "thresholdsStyle": { + "mode": "off" + } }, - { - "matcher": { - "id": "byName", - "options": "Avg Memory RSS " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - }, + "decimals": 0, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ { - "id": "custom.fillBelowTo", - "value": "Min Memory RSS " + "color": "green", + "value": null }, { - "id": "custom.fillOpacity", - "value": 20 + "color": "red", + "value": 80 } ] - } - ] + }, + "unit": "short" + }, + "overrides": [] }, "gridPos": { "h": 9, "w": 8, "x": 8, - "y": 40 + "y": 65 }, - "id": 52, + "id": 41, "interval": "$minstep", "options": { "legend": { @@ -6462,11 +6225,12 @@ data: "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -6474,49 +6238,18 @@ data: "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "max(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Max Memory RSS {{service_instance_id}}", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "avg(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", - "format": "time_series", - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Avg Memory RSS {{service_instance_id}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "editorMode": "code", - "exemplar": true, - "expr": "min(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", + "exemplar": false, + "expr": "count(count(otelcol_process_cpu_seconds${suffix_total}{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id))", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Min Memory RSS {{service_instance_id}}", + "legendFormat": "Service instance count", "range": true, "refId": "B" } ], - "title": "Total Runtime Sys Memory", + "title": "Service Instance Count", "type": "timeseries" }, { @@ -6524,7 +6257,7 @@ data: "type": "prometheus", "uid": "$datasource" }, - "description": "Bytes of allocated heap objects (see 'go doc runtime.MemStats.HeapAlloc')", + "description": "", "fieldConfig": { "defaults": { "color": { @@ -6570,7 +6303,8 @@ data: "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -6578,87 +6312,17 @@ data: } ] }, - "unit": "bytes" + "unit": "s" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Max Memory RSS " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - }, - { - "id": "custom.fillBelowTo", - "value": "Avg Memory RSS " - }, - { - "id": "custom.lineWidth", - "value": 0 - }, - { - "id": "custom.fillOpacity", - "value": 20 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min Memory RSS " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" - } - }, - { - "id": "custom.lineWidth", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Memory RSS " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - }, - { - "id": "custom.fillBelowTo", - "value": "Min Memory RSS " - }, - { - "id": "custom.fillOpacity", - "value": 20 - } - ] - } - ] + "overrides": [] }, "gridPos": { "h": 9, "w": 8, "x": 16, - "y": 40 + "y": 65 }, - "id": 53, + "id": 54, "interval": "$minstep", "options": { "legend": { @@ -6671,12 +6335,93 @@ data: "placement": "bottom", "showLegend": true }, - "tooltip": { - "mode": "multi", - "sort": "none" - } + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.5.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "max(otelcol_process_uptime${suffix_seconds}${suffix_total}{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Service instance uptime: {{service_instance_id}}", + "range": true, + "refId": "B" + } + ], + "title": "Uptime by Service Instance", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 24, + "x": 0, + "y": 74 + }, + "id": 57, + "interval": "$minstep", + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -6684,30 +6429,87 @@ data: "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "max(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", - "format": "time_series", + "exemplar": false, + "expr": "max(otelcol_process_uptime${suffix_seconds}${suffix_total}{service_instance_id=~\".*\",job=\"$job\",service_version=\".+\"}) by (service_instance_id,service_name,service_version)\r\nor\r\nmax(\r\n otelcol_process_uptime${suffix_seconds}${suffix_total}{service_instance_id=~\".*\",job=\"$job\"} \r\n * on(job, instance) \r\n group_left(service_version) \r\n (\r\n target_info \r\n * on(job, instance) \r\n group_left \r\n label_replace(target_info{}, \"service_instance_id\", \"$1\", \"instance\", \"(.*)\")\r\n )\r\n) by (service_instance_id, service_name, service_version)", + "format": "table", "hide": false, + "instant": true, "interval": "$minstep", "intervalFactor": 1, - "legendFormat": "Max Memory RSS {{service_instance_id}}", - "range": true, - "refId": "C" + "legendFormat": "__auto", + "range": false, + "refId": "B" + } + ], + "title": "Service Instance Details", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Value": true + }, + "indexByName": {}, + "renameByName": {} + } + } + ], + "type": "table" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 79 + }, + "id": 59, + "panels": [], + "title": "Signal flows", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 80 + }, + "id": 58, + "options": { + "edges": {}, + "nodes": { + "mainStatUnit": "flops" }, + "zoomMode": "cooperative" + }, + "pluginVersion": "11.5.2", + "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "avg(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", - "format": "time_series", - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Avg Memory RSS {{service_instance_id}}", - "range": true, - "refId": "A" + "exemplar": false, + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_spans${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime${suffix_seconds}${suffix_total}{job=\"$job\"}[$__rate_interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_spans${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "nodes" }, { "datasource": { @@ -6715,174 +6517,67 @@ data: "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "min(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", - "format": "time_series", + "exemplar": false, + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_spans${suffix_total}{job=\"$job\"}[$__rate_interval])) by (receiver))\r\n ,\"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n ,\"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_spans${suffix_total}{job=\"$job\"}[$__rate_interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", + "format": "table", "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Min Memory RSS {{service_instance_id}}", - "range": true, - "refId": "B" + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "edges" } ], - "title": "Total Runtime Heap Memory", - "type": "timeseries" + "title": "Spans Flow", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "Value", + "renamePattern": "mainstat" + } + }, + { + "disabled": true, + "id": "calculateField", + "options": { + "alias": "secondarystat", + "mode": "reduceRow", + "reduce": { + "include": [ + "mainstat" + ], + "reducer": "sum" + } + } + } + ], + "type": "nodeGraph" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "description": "Total CPU user and system time in percentage", + "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Max CPU usage " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - }, - { - "id": "custom.fillBelowTo", - "value": "Avg CPU usage " - }, - { - "id": "custom.lineWidth", - "value": 0 - }, - { - "id": "custom.fillOpacity", - "value": 20 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg CPU usage " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - }, - { - "id": "custom.fillBelowTo", - "value": "Min CPU usage " - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min CPU usage " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" - } - }, - { - "id": "custom.lineWidth", - "value": 0 - } - ] - } - ] + "defaults": {}, + "overrides": [] }, "gridPos": { "h": 9, "w": 8, - "x": 0, - "y": 49 - }, - "id": 39, - "interval": "$minstep", + "x": 8, + "y": 80 + }, + "id": 60, "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true + "edges": {}, + "nodes": { + "mainStatUnit": "none" }, - "tooltip": { - "mode": "multi", - "sort": "none" - } + "zoomMode": "cooperative" }, - "pluginVersion": "11.3.0", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -6890,15 +6585,14 @@ data: "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "max(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", - "format": "time_series", + "exemplar": false, + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_receiver_accepted_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (receiver))\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime${suffix_seconds}${suffix_total}{job=\"$job\"}[$__rate_interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_exporter_sent_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (exporter))\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "format": "table", "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Max CPU usage {{service_instance_id}}", - "range": true, - "refId": "B" + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "nodes" }, { "datasource": { @@ -6906,638 +6600,1960 @@ data: "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "avg(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", - "format": "time_series", + "exemplar": false, + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", + "format": "table", "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Avg CPU usage {{service_instance_id}}", - "range": true, - "refId": "A" + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "edges" + } + ], + "title": "Metric Points Flow", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "Value", + "renamePattern": "mainstat" + } + }, + { + "disabled": true, + "id": "calculateField", + "options": { + "alias": "secondarystat", + "mode": "reduceRow", + "reduce": { + "include": [ + "Value #nodes" + ], + "reducer": "sum" + } + } + } + ], + "type": "nodeGraph" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 80 + }, + "id": 61, + "options": { + "edges": {}, + "nodes": { + "mainStatUnit": "flops" }, + "zoomMode": "cooperative" + }, + "pluginVersion": "11.5.2", + "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", - "exemplar": true, - "expr": "min(rate(otelcol_process_cpu_seconds_total{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", - "format": "time_series", + "exemplar": false, + "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime${suffix_seconds}${suffix_total}{job=\"$job\"}[$__rate_interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", + "format": "table", "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Min CPU usage {{service_instance_id}}", - "range": true, - "refId": "C" + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "nodes" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-edg-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])) by (exporter))\r\n ,\"target\",\"-exp-\",\"transport\",\"exporter\"\r\n )\r\n ,\"source\",\"processor\",\"\",\"\"\r\n )\r\n ,\"id\",\"-edg-\",\"source\",\"target\"\r\n)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "edges" } ], - "title": "CPU Usage", - "type": "timeseries" + "title": "Log Records Flow", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "Value", + "renamePattern": "mainstat" + } + }, + { + "disabled": true, + "id": "calculateField", + "options": { + "alias": "secondarystat", + "mode": "reduceRow", + "reduce": { + "include": [ + "mainstat" + ], + "reducer": "sum" + } + } + } + ], + "type": "nodeGraph" }, { - "datasource": { - "type": "prometheus", - "uid": "$datasource" + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 89 }, - "description": "Number of service instances, which are reporting metrics", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" + "id": 79, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 88 + }, + "id": 32, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "thresholdsStyle": { - "mode": "off" + "tooltip": { + "mode": "multi", + "sort": "none" } }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_filter_spans_filtered${suffix_total}{job=\"$job\"}[$__rate_interval])) by (filter $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Filtered: {{filter}} {{transport}} {{service_instance_id}}", + "range": true, + "refId": "A" + } + ], + "title": "Spans ${metric:text}", + "type": "timeseries" }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 8, - "x": 8, - "y": 49 - }, - "id": 41, - "interval": "$minstep", - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 88 + }, + "id": 81, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_filter_datapoints_filtered${suffix_total}{job=\"$job\"}[$__rate_interval])) by (filter $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Filtered: {{filter}} {{transport}} {{service_instance_id}}", + "range": true, + "refId": "A" + } ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true + "title": "Metric Points ${metric:text}", + "type": "timeseries" }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "11.3.0", - "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "editorMode": "code", - "exemplar": true, - "expr": "count(count(otelcol_process_cpu_seconds_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id))", - "format": "time_series", - "hide": false, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 88 + }, + "id": 82, "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Service instance count", - "range": true, - "refId": "B" + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(${metric:value}(otelcol_processor_filter_log_records_filtered${suffix_total}{job=\"$job\"}[$__rate_interval])) by (filter $grouping)", + "format": "time_series", + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Filtered: {{filter}} {{transport}} {{service_instance_id}}", + "range": true, + "refId": "A" + } + ], + "title": "Log Records ${metric:text}", + "type": "timeseries" } ], - "title": "Service Instance Count", - "type": "timeseries" + "title": "Filter processors", + "type": "row" }, { - "datasource": { - "type": "prometheus", - "uid": "$datasource" + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 90 }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" + "id": 68, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" + "description": "Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs. GRPC status codes: https://grpc.github.io/grpc/core/md_doc_statuscodes.html", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "0" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "displayName", + "value": "0 - OK" + } + ] + }, { - "color": "green" + "matcher": { + "id": "byName", + "options": "1" + }, + "properties": [ + { + "id": "displayName", + "value": "1 - CANCELLED" + } + ] }, { - "color": "red", - "value": 80 + "matcher": { + "id": "byName", + "options": "2" + }, + "properties": [ + { + "id": "displayName", + "value": "2 - UNKNOWN" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "3" + }, + "properties": [ + { + "id": "displayName", + "value": "3 - INVALID_ARGUMENT" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "4" + }, + "properties": [ + { + "id": "displayName", + "value": "4 - DEADLINE_EXCEEDED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "5" + }, + "properties": [ + { + "id": "displayName", + "value": "5 - NOT_FOUND" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "6" + }, + "properties": [ + { + "id": "displayName", + "value": "6 - ALREADY_EXISTS" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "7" + }, + "properties": [ + { + "id": "displayName", + "value": "7 - PERMISSION_DENIED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "8" + }, + "properties": [ + { + "id": "displayName", + "value": "8 - RESOURCE_EXHAUSTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "9" + }, + "properties": [ + { + "id": "displayName", + "value": "9 - FAILED_PRECONDITION" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "10" + }, + "properties": [ + { + "id": "displayName", + "value": "10 - ABORTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "11" + }, + "properties": [ + { + "id": "displayName", + "value": "11 - OUT_OF_RANGE" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "12" + }, + "properties": [ + { + "id": "displayName", + "value": "12 - UNIMPLEMENTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "13" + }, + "properties": [ + { + "id": "displayName", + "value": "13 - INTERNAL" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "14" + }, + "properties": [ + { + "id": "displayName", + "value": "14 - UNAVAILABLE" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "15" + }, + "properties": [ + { + "id": "displayName", + "value": "15 - DATA_LOSS" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "16" + }, + "properties": [ + { + "id": "displayName", + "value": "16 - UNAUTHENTICATED" + } + ] } ] }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 8, - "x": 16, - "y": 49 - }, - "id": 54, - "interval": "$minstep", - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 291 + }, + "id": 69, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum by(rpc_grpc_status_code) (${metric:value}(${prefix:raw}rpc_server_responses_per_rpc_count{job=\"$job\"}[$__rate_interval]))", + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true + "title": "RPC server responses by GRPC status code (receivers)", + "type": "timeseries" }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "11.3.0", - "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "editorMode": "code", - "exemplar": true, - "expr": "max(otelcol_process_uptime_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id)", - "format": "time_series", - "hide": false, - "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "Service instance uptime: {{service_instance_id}}", - "range": true, - "refId": "B" - } - ], - "title": "Uptime by Service Instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" + "description": "Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs. GRPC status codes: https://grpc.github.io/grpc/core/md_doc_statuscodes.html", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } }, - "inspect": false - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "0" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "displayName", + "value": "0 - OK" + } + ] + }, { - "color": "green" + "matcher": { + "id": "byName", + "options": "1" + }, + "properties": [ + { + "id": "displayName", + "value": "1 - CANCELLED" + } + ] }, { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 24, - "x": 0, - "y": 58 - }, - "id": 57, - "interval": "$minstep", - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" + "matcher": { + "id": "byName", + "options": "2" + }, + "properties": [ + { + "id": "displayName", + "value": "2 - UNKNOWN" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "3" + }, + "properties": [ + { + "id": "displayName", + "value": "3 - INVALID_ARGUMENT" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "4" + }, + "properties": [ + { + "id": "displayName", + "value": "4 - DEADLINE_EXCEEDED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "5" + }, + "properties": [ + { + "id": "displayName", + "value": "5 - NOT_FOUND" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "6" + }, + "properties": [ + { + "id": "displayName", + "value": "6 - ALREADY_EXISTS" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "7" + }, + "properties": [ + { + "id": "displayName", + "value": "7 - PERMISSION_DENIED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "8" + }, + "properties": [ + { + "id": "displayName", + "value": "8 - RESOURCE_EXHAUSTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "9" + }, + "properties": [ + { + "id": "displayName", + "value": "9 - FAILED_PRECONDITION" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "10" + }, + "properties": [ + { + "id": "displayName", + "value": "10 - ABORTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "11" + }, + "properties": [ + { + "id": "displayName", + "value": "11 - OUT_OF_RANGE" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "12" + }, + "properties": [ + { + "id": "displayName", + "value": "12 - UNIMPLEMENTED" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "13" + }, + "properties": [ + { + "id": "displayName", + "value": "13 - INTERNAL" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "14" + }, + "properties": [ + { + "id": "displayName", + "value": "14 - UNAVAILABLE" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "15" + }, + "properties": [ + { + "id": "displayName", + "value": "15 - DATA_LOSS" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "16" + }, + "properties": [ + { + "id": "displayName", + "value": "16 - UNAUTHENTICATED" + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 291 + }, + "id": 70, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum by(rpc_grpc_status_code) (${metric:value}(${prefix:raw}rpc_client_responses_per_rpc_count{job=\"$job\"}[$__rate_interval]))", + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } ], - "show": false + "title": "RPC client responses by GRPC status code (exporters)", + "type": "timeseries" }, - "showHeader": true - }, - "pluginVersion": "11.3.0", - "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "editorMode": "code", - "exemplar": false, - "expr": "max(otelcol_process_uptime_total{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id,service_name,service_version)", - "format": "table", - "hide": false, - "instant": true, + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 300 + }, + "id": 72, "interval": "$minstep", - "intervalFactor": 1, - "legendFormat": "__auto", - "range": false, - "refId": "B" - } - ], - "title": "Service Instance Details", - "transformations": [ - { - "id": "organize", + "maxDataPoints": 50, "options": { - "excludeByName": { - "Time": true, - "Value": true + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 }, - "indexByName": {}, - "renameByName": {} - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 63 - }, - "id": 59, - "panels": [], - "title": "Data Flows", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 8, - "x": 0, - "y": 64 - }, - "id": 58, - "options": { - "edges": {}, - "nodes": { - "mainStatUnit": "flops" - } - }, - "pluginVersion": "11.3.0", - "targets": [ + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "ms" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}rpc_server_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" + } + ], + "title": "RPC server duration (receivers)", + "type": "heatmap" + }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "editorMode": "code", - "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_spans_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_spans_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 300 + }, + "id": 74, + "interval": "$minstep", + "maxDataPoints": 50, + "options": { + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "ms" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}rpc_client_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" + } + ], + "title": "RPC client duration (exporters)", + "type": "heatmap" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "editorMode": "code", - "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_spans_total{job=\"$job\"}[$__interval])) by (receiver))\r\n ,\"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n ,\"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_spans_total{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" - } - ], - "title": "Spans Flow", - "transformations": [ - { - "id": "renameByRegex", + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 308 + }, + "id": 73, + "interval": "$minstep", + "maxDataPoints": 50, "options": { - "regex": "Value", - "renamePattern": "mainstat" - } + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 0.1 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "bytes" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}rpc_server_request_size_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" + } + ], + "title": "RPC server request size (receivers)", + "type": "heatmap" }, { - "disabled": true, - "id": "calculateField", + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 308 + }, + "id": 75, + "interval": "$minstep", + "maxDataPoints": 50, "options": { - "alias": "secondarystat", - "mode": "reduceRow", - "reduce": { - "include": [ - "mainstat" - ], - "reducer": "sum" + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 0.1 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "bytes" } - } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}rpc_client_request_size_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" + } + ], + "title": "RPC client request size (exporters)", + "type": "heatmap" } ], - "type": "nodeGraph" + "title": "RPC server/client", + "type": "row" }, { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, + "collapsed": true, "gridPos": { - "h": 9, - "w": 8, - "x": 8, - "y": 64 - }, - "id": 60, - "options": { - "edges": {}, - "nodes": { - "mainStatUnit": "none" - } + "h": 1, + "w": 24, + "x": 0, + "y": 91 }, - "pluginVersion": "11.3.0", - "targets": [ + "id": 77, + "panels": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "editorMode": "code", - "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_receiver_accepted_metric_points_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver))\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_exporter_sent_metric_points_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter))\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] }, - "editorMode": "code", - "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_metric_points_total{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_metric_points_total{job=\"$job\"}[$__interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" - } - ], - "title": "Metric Points Flow", - "transformations": [ - { - "id": "renameByRegex", + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 350 + }, + "id": 76, + "interval": "$minstep", + "maxDataPoints": 50, "options": { - "regex": "Value", - "renamePattern": "mainstat" - } + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "ms" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}http_server_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "__auto", + "refId": "B" + } + ], + "title": "HTTP server duration (receivers)", + "type": "heatmap" }, { - "disabled": true, - "id": "calculateField", + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 350 + }, + "id": 78, + "interval": "$minstep", + "maxDataPoints": 50, "options": { - "alias": "secondarystat", - "mode": "reduceRow", - "reduce": { - "include": [ - "Value #nodes" - ], - "reducer": "sum" + "calculate": false, + "cellGap": 1, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": true, + "scale": "exponential", + "scheme": "Reds", + "steps": 25 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "ms" } - } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(${prefix:raw}http_client_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", + "format": "heatmap", + "hide": false, + "instant": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "{{le}}", + "refId": "B" + } + ], + "title": "HTTP client duration (exporters)", + "type": "heatmap" } ], - "type": "nodeGraph" + "title": "HTTP server/client", + "type": "row" }, { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, + "collapsed": true, "gridPos": { - "h": 9, - "w": 8, - "x": 16, - "y": 64 - }, - "id": 61, - "options": { - "edges": {}, - "nodes": { - "mainStatUnit": "flops" - } + "h": 1, + "w": 24, + "x": 0, + "y": 92 }, - "pluginVersion": "11.3.0", - "targets": [ + "id": 63, + "panels": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "editorMode": "code", - "exemplar": false, - "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_log_records_total{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime_total{job=\"$job\"}[$__interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_log_records_total{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "nodes" + "description": "Added: Number of namespace add events received.\nUpdated: Number of namespace update events received.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/.*updated.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "blue", + "mode": "fixed" + } + }, + { + "id": "custom.axisPlacement", + "value": "right" + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 212 + }, + "id": 64, + "interval": "$minstep", + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "avg(otelcol_otelsvc_k8s_namespace_added${suffix_total}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Added: {{transport}} {{service_instance_id}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "avg(otelcol_otelsvc_k8s_namespace_updated${suffix_total}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Updated: {{transport}} {{service_instance_id}}", + "range": true, + "refId": "B" + } + ], + "title": "Namespaces", + "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, - "editorMode": "code", - "exemplar": false, - "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_log_records_total{job=\"$job\"}[$__interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-edg-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_log_records_total{job=\"$job\"}[$__interval])) by (exporter))\r\n ,\"target\",\"-exp-\",\"transport\",\"exporter\"\r\n )\r\n ,\"source\",\"processor\",\"\",\"\"\r\n )\r\n ,\"id\",\"-edg-\",\"source\",\"target\"\r\n)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "edges" - } - ], - "title": "Log Records Flow", - "transformations": [ - { - "id": "renameByRegex", - "options": { - "regex": "Value", - "renamePattern": "mainstat" - } - }, - { - "disabled": true, - "id": "calculateField", + "description": "Added: Number of pod add events received.\nUpdated: Number of pod update events received.\nDeleted: Number of pod delete events received.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 212 + }, + "id": 65, + "interval": "$minstep", "options": { - "alias": "secondarystat", - "mode": "reduceRow", - "reduce": { - "include": [ - "mainstat" + "legend": { + "calcs": [ + "min", + "max", + "mean" ], - "reducer": "sum" + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" } - } + }, + "pluginVersion": "11.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(otelcol_otelsvc_k8s_pod_added${suffix_total}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Added: {{transport}} {{service_instance_id}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(otelcol_otelsvc_k8s_pod_updated${suffix_total}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Updated: {{transport}} {{service_instance_id}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(otelcol_otelsvc_k8s_pod_deleted${suffix_total}{job=\"$job\"}) by (job $grouping)", + "format": "time_series", + "hide": false, + "interval": "$minstep", + "intervalFactor": 1, + "legendFormat": "Deleted: {{transport}} {{service_instance_id}}", + "range": true, + "refId": "C" + } + ], + "title": "Pods", + "type": "timeseries" } ], - "type": "nodeGraph" + "title": "Kubernetes", + "type": "row" }, { - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, + "collapsed": false, "gridPos": { - "h": 3, + "h": 1, "w": 24, "x": 0, - "y": 73 - }, - "id": 45, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": " | \nOTEL collector troubleshooting (how to enable telemetry metrics) | \nScaling the Collector (metrics to watch) | \nInstalled from Grafana.com dashboards", - "mode": "html" + "y": 93 }, - "pluginVersion": "11.3.0", + "id": 66, + "panels": [], "title": "Documentation", - "type": "text" + "type": "row" } ], "preload": false, - "refresh": "10s", + "refresh": "", "schemaVersion": 40, "tags": [ - "opentelemetry", - "monitoring" + "opentelemetry" ], "templating": { "list": [ @@ -7558,17 +8574,18 @@ data: "type": "prometheus", "uid": "$datasource" }, - "definition": "label_values(otelcol_process_uptime_total,job)", + "definition": "query_result({__name__=~\"otelcol_process_uptime.*\"})", "includeAll": false, "label": "Job", "name": "job", "options": [], "query": { - "query": "label_values(otelcol_process_uptime_total,job)", - "refId": "StandardVariableQuery" + "qryType": 3, + "query": "query_result({__name__=~\"otelcol_process_uptime.*\"})", + "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, - "regex": "", + "regex": "/.*{.*job=\"([a-zA-Z0-9_-]+)\".*}/", "sort": 1, "type": "query" }, @@ -7577,17 +8594,12 @@ data: "auto_count": 300, "auto_min": "10s", "current": { - "text": "auto", - "value": "$__auto_interval_minstep" + "text": "$__auto", + "value": "$__auto" }, "label": "Min step", "name": "minstep", "options": [ - { - "selected": true, - "text": "auto", - "value": "$__auto_interval_minstep" - }, { "selected": false, "text": "10s", @@ -7615,7 +8627,7 @@ data: }, { "current": { - "text": "Rate", + "text": "rate", "value": "rate" }, "includeAll": false, @@ -7643,37 +8655,40 @@ data: "type": "prometheus", "uid": "$datasource" }, - "definition": "label_values(receiver)", + "definition": "query_result(avg by (receiver) ({__name__=~\"otelcol_receiver_.+\",job=\"$job\"}))", "includeAll": true, "label": "Receiver", "name": "receiver", "options": [], "query": { - "query": "label_values(receiver)", - "refId": "StandardVariableQuery" + "qryType": 3, + "query": "query_result(avg by (receiver) ({__name__=~\"otelcol_receiver_.+\",job=\"$job\"}))", + "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, - "regex": "", + "regex": "/.*receiver=\"(.*)\".*/", "sort": 1, "type": "query" }, { + "allValue": ".*", "current": {}, "datasource": { "type": "prometheus", "uid": "$datasource" }, - "definition": "label_values(processor)", + "definition": "query_result(avg by (processor) ({__name__=~\"otelcol_processor_.+\",job=\"$job\"}))", "includeAll": true, "label": "Processor", "name": "processor", "options": [], "query": { - "query": "label_values(processor)", - "refId": "StandardVariableQuery" + "qryType": 3, + "query": "query_result(avg by (processor) ({__name__=~\"otelcol_processor_.+\",job=\"$job\"}))", + "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, - "regex": "", + "regex": "/.*processor=\"(.*)\".*/", "sort": 1, "type": "query" }, @@ -7684,23 +8699,24 @@ data: "type": "prometheus", "uid": "$datasource" }, - "definition": "label_values(exporter)", + "definition": "query_result(avg by (exporter) ({__name__=~\"otelcol_exporter_.+\",job=\"$job\"}))", "includeAll": true, "label": "Exporter", "name": "exporter", "options": [], "query": { - "query": "label_values(exporter)", - "refId": "StandardVariableQuery" + "qryType": 3, + "query": "query_result(avg by (exporter) ({__name__=~\"otelcol_exporter_.+\",job=\"$job\"}))", + "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, - "regex": "", + "regex": "/.*exporter=\"(.*)\".*/", "sort": 1, "type": "query" }, { "current": { - "text": "None (basic metrics)", + "text": "", "value": "" }, "description": "Detailed metrics must be configured in the collector configuration. They add grouping by transport protocol (http/grpc) for receivers. ", @@ -7726,21 +8742,120 @@ data: ], "query": "None (basic metrics) : , By transport (detailed metrics) : \\,transport, By service instance id : \\,service_instance_id", "type": "custom" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "definition": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", + "description": "Some exporter(s) configuration(s) may add the metric suffix _total. This variable will detect this case.", + "hide": 2, + "includeAll": false, + "label": "Suffix _total", + "name": "suffix_total", + "options": [], + "query": { + "qryType": 3, + "query": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "/.*(_total)+{.*/", + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "definition": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", + "description": "Some exporter(s) configuration(s) may add the metric suffix _seconds_total. This variable will detect this \"_seconds\" suffix part.", + "hide": 2, + "includeAll": false, + "label": "Suffix _seconds", + "name": "suffix_seconds", + "options": [], + "query": { + "qryType": 3, + "query": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "/otelcol_process_uptime(.*)_total{.*/", + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "definition": "query_result({__name__=~\"otelcol_process_memory_rss.+\",job=\"$job\"})", + "description": "Some exporter(s) configuration(s) may add the metric suffix _bytes. This variable will detect this \"_bytes\" suffix part.", + "hide": 2, + "includeAll": false, + "label": "Suffix _bytes", + "name": "suffix_bytes", + "options": [], + "query": { + "qryType": 3, + "query": "query_result({__name__=~\"otelcol_process_memory_rss.+\",job=\"$job\"})", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "/otelcol_process_memory_rss(.*){.*/", + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "definition": "query_result({__name__=~\".*.*rpc_server_duration_bucket|.*rpc_client_duration_bucket|.*http_server_duration_bucket|.*http_client_duration_bucket.*\",job=\"$job\"})", + "description": "Some metrics (e.g., RPC, HTTP) may no longer have the otelcol_ prefix. This will detect it. See https://github.com/open-telemetry/opentelemetry-collector/pull/9759", + "hide": 2, + "includeAll": false, + "label": "Prefix", + "name": "prefix", + "options": [], + "query": { + "qryType": 3, + "query": "query_result({__name__=~\".*.*rpc_server_duration_bucket|.*rpc_client_duration_bucket|.*http_server_duration_bucket|.*http_client_duration_bucket.*\",job=\"$job\"})", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "/(.*)(rpc|http)_(server|client)_duration_bucket.*{.*/", + "type": "query" + }, + { + "baseFilters": [], + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "filters": [], + "label": "Ad Hoc", + "name": "adhoc", + "type": "adhoc" } ] }, "time": { - "from": "now-6h", + "from": "now-15m", "to": "now" }, "timepicker": {}, - "timezone": "utc", + "timezone": "", "title": "OpenTelemetry Collector", "uid": "BKf2sowmj", - "version": 2, + "version": 1, "weekStart": "" } - spanmetrics-dashboard.json: | + spanmetrics-dashboard.json: |- { "annotations": { "list": [ @@ -8765,7 +9880,7 @@ data: ] }, "time": { - "from": "now-1h", + "from": "now-15m", "to": "now" }, "timepicker": {}, @@ -8785,7 +9900,7 @@ metadata: labels: app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo data: @@ -8922,7 +10037,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.5.1" + app.kubernetes.io/version: "11.5.2" name: grafana-clusterrole rules: [] --- @@ -8934,7 +10049,7 @@ metadata: labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.119.0" + app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector rules: - apiGroups: [""] @@ -9005,7 +10120,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.5.1" + app.kubernetes.io/version: "11.5.2" subjects: - kind: ServiceAccount name: grafana @@ -9023,7 +10138,7 @@ metadata: labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.119.0" + app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector roleRef: apiGroup: rbac.authorization.k8s.io @@ -9063,7 +10178,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.5.1" + app.kubernetes.io/version: "11.5.2" rules: [] --- # Source: opentelemetry-demo/charts/grafana/templates/rolebinding.yaml @@ -9075,7 +10190,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.5.1" + app.kubernetes.io/version: "11.5.2" roleRef: apiGroup: rbac.authorization.k8s.io kind: Role @@ -9094,7 +10209,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.5.1" + app.kubernetes.io/version: "11.5.2" spec: type: ClusterIP ports: @@ -9268,7 +10383,7 @@ metadata: labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.119.0" + app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector component: standalone-collector spec: @@ -9300,10 +10415,6 @@ spec: port: 4318 targetPort: 4318 protocol: TCP - - name: prometheus - port: 9464 - targetPort: 9464 - protocol: TCP - name: zipkin port: 9411 targetPort: 9411 @@ -9350,7 +10461,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: ad app.kubernetes.io/name: ad - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9373,7 +10484,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: cart app.kubernetes.io/name: cart - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9396,7 +10507,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: checkout app.kubernetes.io/name: checkout - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9419,7 +10530,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: currency app.kubernetes.io/name: currency - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9442,7 +10553,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: email app.kubernetes.io/name: email - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9465,7 +10576,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: flagd app.kubernetes.io/name: flagd - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9491,7 +10602,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend app.kubernetes.io/name: frontend - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9514,7 +10625,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend-proxy app.kubernetes.io/name: frontend-proxy - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9537,7 +10648,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: image-provider app.kubernetes.io/name: image-provider - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9560,7 +10671,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: kafka app.kubernetes.io/name: kafka - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9586,7 +10697,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: load-generator app.kubernetes.io/name: load-generator - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9609,7 +10720,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: payment app.kubernetes.io/name: payment - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9632,7 +10743,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: product-catalog app.kubernetes.io/name: product-catalog - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9655,7 +10766,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: quote app.kubernetes.io/name: quote - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9678,7 +10789,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: recommendation app.kubernetes.io/name: recommendation - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9701,7 +10812,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: shipping app.kubernetes.io/name: shipping - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9724,7 +10835,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: valkey-cart app.kubernetes.io/name: valkey-cart - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP @@ -9745,7 +10856,7 @@ metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.5.1" + app.kubernetes.io/version: "11.5.2" spec: replicas: 1 revisionHistoryLimit: 10 @@ -9760,9 +10871,9 @@ spec: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "11.5.1" + app.kubernetes.io/version: "11.5.2" annotations: - checksum/config: b68209829a463f154d3438b9bef7ca2276e4116b1548d5ba7d65840a267566b3 + checksum/config: 99cca986c6d5f6511900d815ee5a70d0c284aeb70af56fb96108c7bf456eff87 checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24 checksum/secret: bed677784356b2af7fb0d87455db21f077853059b594101a4f6532bfbd962a7f kubectl.kubernetes.io/default-container: grafana @@ -9779,7 +10890,7 @@ spec: enableServiceLinks: true containers: - name: grafana - image: "docker.io/grafana/grafana:11.5.1" + image: "docker.io/grafana/grafana:11.5.2" imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -9986,7 +11097,7 @@ metadata: labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo - app.kubernetes.io/version: "0.119.0" + app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector spec: replicas: 1 @@ -10001,9 +11112,8 @@ spec: template: metadata: annotations: - checksum/config: ba74383c29ff27f7bdd25afc3daceba2ee1ccd26b73d350139121e864f1346a0 + checksum/config: a89266db0e62ae4711e3cef2ea43e19dac4d19232eb4bb06b05882a36f128110 opentelemetry_community_demo: "true" - prometheus.io/port: "9464" prometheus.io/scrape: "true" labels: app.kubernetes.io/name: opentelemetry-collector @@ -10021,7 +11131,7 @@ spec: - --config=/conf/relay.yaml securityContext: {} - image: "otel/opentelemetry-collector-contrib:0.119.0" + image: "otel/opentelemetry-collector-contrib:0.120.0" imagePullPolicy: IfNotPresent ports: @@ -10043,9 +11153,6 @@ spec: - name: otlp-http containerPort: 4318 protocol: TCP - - name: prometheus - containerPort: 9464 - protocol: TCP - name: zipkin containerPort: 9411 protocol: TCP @@ -10184,7 +11291,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: accounting app.kubernetes.io/name: accounting - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10205,7 +11312,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: accounting - image: 'ghcr.io/open-telemetry/demo:2.0.0-accounting' + image: 'ghcr.io/open-telemetry/demo:2.0.1-accounting' imagePullPolicy: IfNotPresent env: - name: OTEL_SERVICE_NAME @@ -10222,7 +11329,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 120Mi @@ -10247,7 +11354,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: ad app.kubernetes.io/name: ad - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10268,7 +11375,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: ad - image: 'ghcr.io/open-telemetry/demo:2.0.0-ad' + image: 'ghcr.io/open-telemetry/demo:2.0.1-ad' imagePullPolicy: IfNotPresent ports: @@ -10295,7 +11402,7 @@ spec: - name: OTEL_LOGS_EXPORTER value: otlp - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 300Mi @@ -10313,7 +11420,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: cart app.kubernetes.io/name: cart - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10334,7 +11441,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: cart - image: 'ghcr.io/open-telemetry/demo:2.0.0-cart' + image: 'ghcr.io/open-telemetry/demo:2.0.1-cart' imagePullPolicy: IfNotPresent ports: @@ -10363,7 +11470,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 160Mi @@ -10389,7 +11496,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: checkout app.kubernetes.io/name: checkout - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10410,7 +11517,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: checkout - image: 'ghcr.io/open-telemetry/demo:2.0.0-checkout' + image: 'ghcr.io/open-telemetry/demo:2.0.1-checkout' imagePullPolicy: IfNotPresent ports: @@ -10449,7 +11556,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 20Mi @@ -10474,7 +11581,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: currency app.kubernetes.io/name: currency - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10495,7 +11602,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: currency - image: 'ghcr.io/open-telemetry/demo:2.0.0-currency' + image: 'ghcr.io/open-telemetry/demo:2.0.1-currency' imagePullPolicy: IfNotPresent ports: @@ -10516,9 +11623,9 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: VERSION - value: '2.0.0' + value: '2.0.1' - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 20Mi @@ -10536,7 +11643,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: email app.kubernetes.io/name: email - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10557,7 +11664,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: email - image: 'ghcr.io/open-telemetry/demo:2.0.0-email' + image: 'ghcr.io/open-telemetry/demo:2.0.1-email' imagePullPolicy: IfNotPresent ports: @@ -10580,7 +11687,7 @@ spec: - name: OTEL_EXPORTER_OTLP_TRACES_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318/v1/traces - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 100Mi @@ -10598,7 +11705,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: flagd app.kubernetes.io/name: flagd - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10647,7 +11754,7 @@ spec: - name: FLAGD_OTEL_COLLECTOR_URI value: $(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 75Mi @@ -10655,7 +11762,7 @@ spec: - name: config-rw mountPath: /etc/flagd - name: flagd-ui - image: 'ghcr.io/open-telemetry/demo:2.0.0-flagd-ui' + image: 'ghcr.io/open-telemetry/demo:2.0.1-flagd-ui' imagePullPolicy: IfNotPresent ports: @@ -10676,7 +11783,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 75Mi @@ -10713,7 +11820,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: fraud-detection app.kubernetes.io/name: fraud-detection - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10734,7 +11841,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: fraud-detection - image: 'ghcr.io/open-telemetry/demo:2.0.0-fraud-detection' + image: 'ghcr.io/open-telemetry/demo:2.0.1-fraud-detection' imagePullPolicy: IfNotPresent env: - name: OTEL_SERVICE_NAME @@ -10755,7 +11862,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 300Mi @@ -10780,7 +11887,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend app.kubernetes.io/name: frontend - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10801,7 +11908,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: frontend - image: 'ghcr.io/open-telemetry/demo:2.0.0-frontend' + image: 'ghcr.io/open-telemetry/demo:2.0.1-frontend' imagePullPolicy: IfNotPresent ports: @@ -10848,7 +11955,7 @@ spec: - name: PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT value: http://localhost:8080/otlp-http/v1/traces - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 250Mi @@ -10870,7 +11977,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend-proxy app.kubernetes.io/name: frontend-proxy - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10891,7 +11998,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: frontend-proxy - image: 'ghcr.io/open-telemetry/demo:2.0.0-frontend-proxy' + image: 'ghcr.io/open-telemetry/demo:2.0.1-frontend-proxy' imagePullPolicy: IfNotPresent ports: @@ -10944,7 +12051,7 @@ spec: - name: OTEL_COLLECTOR_PORT_HTTP value: "4318" - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 65Mi @@ -10966,7 +12073,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: image-provider app.kubernetes.io/name: image-provider - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -10987,7 +12094,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: image-provider - image: 'ghcr.io/open-telemetry/demo:2.0.0-image-provider' + image: 'ghcr.io/open-telemetry/demo:2.0.1-image-provider' imagePullPolicy: IfNotPresent ports: @@ -11010,7 +12117,7 @@ spec: - name: OTEL_COLLECTOR_HOST value: $(OTEL_COLLECTOR_NAME) - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 50Mi @@ -11028,7 +12135,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: kafka app.kubernetes.io/name: kafka - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -11049,7 +12156,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: kafka - image: 'ghcr.io/open-telemetry/demo:2.0.0-kafka' + image: 'ghcr.io/open-telemetry/demo:2.0.1-kafka' imagePullPolicy: IfNotPresent ports: @@ -11074,7 +12181,7 @@ spec: - name: KAFKA_HEAP_OPTS value: -Xmx400M -Xms400M - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 600Mi @@ -11096,7 +12203,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: load-generator app.kubernetes.io/name: load-generator - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -11117,7 +12224,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: load-generator - image: 'ghcr.io/open-telemetry/demo:2.0.0-load-generator' + image: 'ghcr.io/open-telemetry/demo:2.0.1-load-generator' imagePullPolicy: IfNotPresent ports: @@ -11158,7 +12265,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 1500Mi @@ -11176,7 +12283,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: payment app.kubernetes.io/name: payment - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -11197,7 +12304,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: payment - image: 'ghcr.io/open-telemetry/demo:2.0.0-payment' + image: 'ghcr.io/open-telemetry/demo:2.0.1-payment' imagePullPolicy: IfNotPresent ports: @@ -11222,7 +12329,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 120Mi @@ -11244,7 +12351,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: product-catalog app.kubernetes.io/name: product-catalog - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -11265,7 +12372,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: product-catalog - image: 'ghcr.io/open-telemetry/demo:2.0.0-product-catalog' + image: 'ghcr.io/open-telemetry/demo:2.0.1-product-catalog' imagePullPolicy: IfNotPresent ports: @@ -11292,7 +12399,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 20Mi @@ -11315,7 +12422,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: quote app.kubernetes.io/name: quote - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -11336,7 +12443,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: quote - image: 'ghcr.io/open-telemetry/demo:2.0.0-quote' + image: 'ghcr.io/open-telemetry/demo:2.0.1-quote' imagePullPolicy: IfNotPresent ports: @@ -11359,7 +12466,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 40Mi @@ -11381,7 +12488,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: recommendation app.kubernetes.io/name: recommendation - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -11402,7 +12509,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: recommendation - image: 'ghcr.io/open-telemetry/demo:2.0.0-recommendation' + image: 'ghcr.io/open-telemetry/demo:2.0.1-recommendation' imagePullPolicy: IfNotPresent ports: @@ -11433,7 +12540,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 500Mi @@ -11451,7 +12558,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: shipping app.kubernetes.io/name: shipping - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -11472,7 +12579,7 @@ spec: serviceAccountName: opentelemetry-demo containers: - name: shipping - image: 'ghcr.io/open-telemetry/demo:2.0.0-shipping' + image: 'ghcr.io/open-telemetry/demo:2.0.1-shipping' imagePullPolicy: IfNotPresent ports: @@ -11495,7 +12602,7 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 20Mi @@ -11513,7 +12620,7 @@ metadata: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: valkey-cart app.kubernetes.io/name: valkey-cart - app.kubernetes.io/version: "2.0.0" + app.kubernetes.io/version: "2.0.1" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 @@ -11551,7 +12658,7 @@ spec: - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.0 + value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.1 resources: limits: memory: 20Mi From b55ea775838accc78ca55947316188207cfc65ba Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Sat, 1 Mar 2025 09:05:44 -0500 Subject: [PATCH 161/178] [chore] update release process (#2097) --- CONTRIBUTING.md | 10 +++++++--- README.md | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 94a4816182..866205e07e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -296,13 +296,17 @@ Maintainers can create a new release when desired by following these steps. notes. 3. After images for the new release are built and published, create a new Pull Request that updates the `CHANGELOG.md` with the new version leaving the - `Unreleased` section for the next release. + `Unreleased` section for the next release. Merge the Pull Request. 4. Create a new Pull Request to update the deployment of the demo in the [OpenTelemetry Helm Charts](https://github.com/open-telemetry/opentelemetry-helm-charts) repo. + Merge the Pull Request. 5. After the Helm chart is released, create a new Pull Request which updates the - Demo's Kubernetes manifest by running `make generate-kubernetes-manifests` - and committing the changes. + Demo's Kubernetes manifest by running `make generate-kubernetes-manifests`. + Merge the Pull Request. +6. Create a new Tag for the _new_ version with a suffix of `-k8s`. This tag + will be used to deploy the new version of the demo to Kubernetes using the + supplied manifests. [docs]: https://opentelemetry.io/docs/demo/ diff --git a/README.md b/README.md index 1e5dad521e..560fb56b2a 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ keeping it up to date for you. To get involved with the project see our [CONTRIBUTING](CONTRIBUTING.md) documentation. Our [SIG Calls](CONTRIBUTING.md#join-a-sig-call) are every other -Monday at 8:30 AM PST and anyone is welcome. +Wednesday at 8:30 AM PST and anyone is welcome. ## Project leadership From d8db8ef7847592228a234a7088d6b837620c2965 Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 3 Mar 2025 02:51:04 -0500 Subject: [PATCH 162/178] optimize build (#2098) --- src/load-generator/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/load-generator/Dockerfile b/src/load-generator/Dockerfile index 5a81683a60..45e5dcbe2a 100644 --- a/src/load-generator/Dockerfile +++ b/src/load-generator/Dockerfile @@ -15,8 +15,8 @@ RUN pip install --prefix="/reqs" -r requirements.txt FROM base WORKDIR /usr/src/app/ COPY --from=builder /reqs /usr/local -COPY ./src/load-generator/locustfile.py . -COPY ./src/load-generator/people.json . ENV PLAYWRIGHT_BROWSERS_PATH=/opt/pw-browsers RUN playwright install --with-deps chromium +COPY ./src/load-generator/locustfile.py . +COPY ./src/load-generator/people.json . ENTRYPOINT ["locust", "--skip-log-setup"] From 43149f63d312750c3fd0d1342b37a37695292414 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 23:57:48 +0100 Subject: [PATCH 163/178] build(deps): bump github.com/IBM/sarama (#2100) Bumps the go-production-dependencies group with 1 update in the /src/checkout directory: [github.com/IBM/sarama](https://github.com/IBM/sarama). Updates `github.com/IBM/sarama` from 1.45.0 to 1.45.1 - [Release notes](https://github.com/IBM/sarama/releases) - [Changelog](https://github.com/IBM/sarama/blob/main/CHANGELOG.md) - [Commits](https://github.com/IBM/sarama/compare/v1.45.0...v1.45.1) --- updated-dependencies: - dependency-name: github.com/IBM/sarama dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/checkout/go.mod | 4 ++-- src/checkout/go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/checkout/go.mod b/src/checkout/go.mod index 6b36f62089..b26b4b99c3 100644 --- a/src/checkout/go.mod +++ b/src/checkout/go.mod @@ -5,7 +5,7 @@ go 1.22.7 toolchain go1.22.9 require ( - github.com/IBM/sarama v1.45.0 + github.com/IBM/sarama v1.45.1 github.com/google/uuid v1.6.0 github.com/open-feature/go-sdk v1.14.1 github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 @@ -81,7 +81,7 @@ require ( golang.org/x/crypto v0.33.0 // indirect golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect golang.org/x/mod v0.23.0 // indirect - golang.org/x/net v0.34.0 // indirect + golang.org/x/net v0.35.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/text v0.22.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f // indirect diff --git a/src/checkout/go.sum b/src/checkout/go.sum index dc62200bd1..f28401d312 100644 --- a/src/checkout/go.sum +++ b/src/checkout/go.sum @@ -8,8 +8,8 @@ connectrpc.com/connect v1.18.1 h1:PAg7CjSAGvscaf6YZKUefjoih5Z/qYkyaTrBW8xvYPw= connectrpc.com/connect v1.18.1/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8= connectrpc.com/otelconnect v0.7.1 h1:scO5pOb0i4yUE66CnNrHeK1x51yq0bE0ehPg6WvzXJY= connectrpc.com/otelconnect v0.7.1/go.mod h1:dh3bFgHBTb2bkqGCeVVOtHJreSns7uu9wwL2Tbz17ms= -github.com/IBM/sarama v1.45.0 h1:IzeBevTn809IJ/dhNKhP5mpxEXTmELuezO2tgHD9G5E= -github.com/IBM/sarama v1.45.0/go.mod h1:EEay63m8EZkeumco9TDXf2JT3uDnZsZqFgV46n4yZdY= +github.com/IBM/sarama v1.45.1 h1:nY30XqYpqyXOXSNoe2XCgjj9jklGM1Ye94ierUb1jQ0= +github.com/IBM/sarama v1.45.1/go.mod h1:qifDhA3VWSrQ1TjSMyxDl3nYL3oX2C83u+G6L79sq4w= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df h1:GSoSVRLoBaFpOOds6QyY1L8AX7uoY+Ln3BHc22W40X0= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df/go.mod h1:hiVxq5OP2bUGBRNS3Z/bt/reCLFNbdcST6gISi1fiOM= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= @@ -217,8 +217,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= -golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From c8fe5cb0dd9a2145561d1b4094fa00df35bd121b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Kie=C5=82kowicz?= Date: Thu, 6 Mar 2025 14:04:09 +0100 Subject: [PATCH 164/178] [chore] Bump .NET dependencies (#2106) - OTel SDK 1.11.2 - OTel .NET Auto 1.11.0 --- src/accounting/Accounting.csproj | 6 +++--- src/cart/src/cart.csproj | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/accounting/Accounting.csproj b/src/accounting/Accounting.csproj index 3272e1c37b..092d737fe6 100644 --- a/src/accounting/Accounting.csproj +++ b/src/accounting/Accounting.csproj @@ -10,14 +10,14 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/src/cart/src/cart.csproj b/src/cart/src/cart.csproj index 887e2b6599..128b386916 100644 --- a/src/cart/src/cart.csproj +++ b/src/cart/src/cart.csproj @@ -17,16 +17,16 @@ - - - - - - - - - - + + + + + + + + + + From 86f887b507ee0efd207fba4dbf73e78a9c50c741 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Mar 2025 00:24:37 -0500 Subject: [PATCH 165/178] build(deps): bump the npm-production-dependencies group across 1 directory with 2 updates (#2103) Bumps the npm-production-dependencies group with 2 updates in the /src/frontend directory: [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) and [next](https://github.com/vercel/next.js). Updates `@tanstack/react-query` from 5.66.10 to 5.67.1 - [Release notes](https://github.com/TanStack/query/releases) - [Commits](https://github.com/TanStack/query/commits/v5.67.1/packages/react-query) Updates `next` from 15.2.0 to 15.2.1 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.2.0...v15.2.1) --- updated-dependencies: - dependency-name: "@tanstack/react-query" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-production-dependencies - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/frontend/package-lock.json | 96 +++++++++++++++++----------------- src/frontend/package.json | 4 +- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 504ef1d3fa..35c17b7070 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -32,12 +32,12 @@ "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.66.10", + "@tanstack/react-query": "5.67.2", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", "dotenv-expand": "12.0.1", - "next": "15.2.0", + "next": "15.2.1", "react": "19.0.0", "react-dom": "19.0.0", "sharp": "0.33.5", @@ -852,9 +852,9 @@ } }, "node_modules/@next/env": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.0.tgz", - "integrity": "sha512-eMgJu1RBXxxqqnuRJQh5RozhskoNUDHBFybvi+Z+yK9qzKeG7dadhv/Vp1YooSZmCnegf7JxWuapV77necLZNA==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.1.tgz", + "integrity": "sha512-JmY0qvnPuS2NCWOz2bbby3Pe0VzdAQ7XpEB6uLIHmtXNfAsAO0KLQLkuAoc42Bxbo3/jMC3dcn9cdf+piCcG2Q==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -898,9 +898,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.0.tgz", - "integrity": "sha512-rlp22GZwNJjFCyL7h5wz9vtpBVuCt3ZYjFWpEPBGzG712/uL1bbSkS675rVAUCRZ4hjoTJ26Q7IKhr5DfJrHDA==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.1.tgz", + "integrity": "sha512-aWXT+5KEREoy3K5AKtiKwioeblmOvFFjd+F3dVleLvvLiQ/mD//jOOuUcx5hzcO9ISSw4lrqtUPntTpK32uXXQ==", "cpu": [ "arm64" ], @@ -914,9 +914,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.0.tgz", - "integrity": "sha512-DiU85EqSHogCz80+sgsx90/ecygfCSGl5P3b4XDRVZpgujBm5lp4ts7YaHru7eVTyZMjHInzKr+w0/7+qDrvMA==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.1.tgz", + "integrity": "sha512-E/w8ervu4fcG5SkLhvn1NE/2POuDCDEy5gFbfhmnYXkyONZR68qbUlJlZwuN82o7BrBVAw+tkR8nTIjGiMW1jQ==", "cpu": [ "x64" ], @@ -930,9 +930,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.0.tgz", - "integrity": "sha512-VnpoMaGukiNWVxeqKHwi8MN47yKGyki5q+7ql/7p/3ifuU2341i/gDwGK1rivk0pVYbdv5D8z63uu9yMw0QhpQ==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.1.tgz", + "integrity": "sha512-gXDX5lIboebbjhiMT6kFgu4svQyjoSed6dHyjx5uZsjlvTwOAnZpn13w9XDaIMFFHw7K8CpBK7HfDKw0VZvUXQ==", "cpu": [ "arm64" ], @@ -946,9 +946,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.0.tgz", - "integrity": "sha512-ka97/ssYE5nPH4Qs+8bd8RlYeNeUVBhcnsNUmFM6VWEob4jfN9FTr0NBhXVi1XEJpj3cMfgSRW+LdE3SUZbPrw==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.1.tgz", + "integrity": "sha512-3v0pF/adKZkBWfUffmB/ROa+QcNTrnmYG4/SS+r52HPwAK479XcWoES2I+7F7lcbqc7mTeVXrIvb4h6rR/iDKg==", "cpu": [ "arm64" ], @@ -962,9 +962,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.0.tgz", - "integrity": "sha512-zY1JduE4B3q0k2ZCE+DAF/1efjTXUsKP+VXRtrt/rJCTgDlUyyryx7aOgYXNc1d8gobys/Lof9P9ze8IyRDn7Q==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.1.tgz", + "integrity": "sha512-RbsVq2iB6KFJRZ2cHrU67jLVLKeuOIhnQB05ygu5fCNgg8oTewxweJE8XlLV+Ii6Y6u4EHwETdUiRNXIAfpBww==", "cpu": [ "x64" ], @@ -978,9 +978,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.0.tgz", - "integrity": "sha512-QqvLZpurBD46RhaVaVBepkVQzh8xtlUN00RlG4Iq1sBheNugamUNPuZEH1r9X1YGQo1KqAe1iiShF0acva3jHQ==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.1.tgz", + "integrity": "sha512-QHsMLAyAIu6/fWjHmkN/F78EFPKmhQlyX5C8pRIS2RwVA7z+t9cTb0IaYWC3EHLOTjsU7MNQW+n2xGXr11QPpg==", "cpu": [ "x64" ], @@ -994,9 +994,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.0.tgz", - "integrity": "sha512-ODZ0r9WMyylTHAN6pLtvUtQlGXBL9voljv6ujSlcsjOxhtXPI1Ag6AhZK0SE8hEpR1374WZZ5w33ChpJd5fsjw==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.1.tgz", + "integrity": "sha512-Gk42XZXo1cE89i3hPLa/9KZ8OuupTjkDmhLaMKFohjf9brOeZVEa3BQy1J9s9TWUqPhgAEbwv6B2+ciGfe54Vw==", "cpu": [ "arm64" ], @@ -1010,9 +1010,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.0.tgz", - "integrity": "sha512-8+4Z3Z7xa13NdUuUAcpVNA6o76lNPniBd9Xbo02bwXQXnZgFvEopwY2at5+z7yHl47X9qbZpvwatZ2BRo3EdZw==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.1.tgz", + "integrity": "sha512-YjqXCl8QGhVlMR8uBftWk0iTmvtntr41PhG1kvzGp0sUP/5ehTM+cwx25hKE54J0CRnHYjSGjSH3gkHEaHIN9g==", "cpu": [ "x64" ], @@ -2956,9 +2956,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.66.4", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.66.4.tgz", - "integrity": "sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA==", + "version": "5.67.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.67.2.tgz", + "integrity": "sha512-+iaFJ/pt8TaApCk6LuZ0WHS/ECVfTzrxDOEL9HH9Dayyb5OVuomLzDXeSaI2GlGT/8HN7bDGiRXDts3LV+u6ww==", "license": "MIT", "funding": { "type": "github", @@ -2966,12 +2966,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.66.10", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.10.tgz", - "integrity": "sha512-84CSj8YZqITJY6nQhK3MrReGErcvXVMlP+piIjmf5h2MG5kXrofGafWHiiPOt1wrvCW5nCWRoJfCzOO5LB2r4g==", + "version": "5.67.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.67.2.tgz", + "integrity": "sha512-6Sa+BVNJWhAV4QHvIqM73norNeGRWGC3ftN0Ix87cmMvI215I1wyJ44KUTt/9a0V9YimfGcg25AITaYVel71Og==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.66.4" + "@tanstack/query-core": "5.67.2" }, "funding": { "type": "github", @@ -7365,12 +7365,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/next/-/next-15.2.0.tgz", - "integrity": "sha512-VaiM7sZYX8KIAHBrRGSFytKknkrexNfGb8GlG6e93JqueCspuGte8i4ybn8z4ww1x3f2uzY4YpTaBEW4/hvsoQ==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/next/-/next-15.2.1.tgz", + "integrity": "sha512-zxbsdQv3OqWXybK5tMkPCBKyhIz63RstJ+NvlfkaLMc/m5MwXgz2e92k+hSKcyBpyADhMk2C31RIiaDjUZae7g==", "license": "MIT", "dependencies": { - "@next/env": "15.2.0", + "@next/env": "15.2.1", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.15", "busboy": "1.6.0", @@ -7385,14 +7385,14 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.2.0", - "@next/swc-darwin-x64": "15.2.0", - "@next/swc-linux-arm64-gnu": "15.2.0", - "@next/swc-linux-arm64-musl": "15.2.0", - "@next/swc-linux-x64-gnu": "15.2.0", - "@next/swc-linux-x64-musl": "15.2.0", - "@next/swc-win32-arm64-msvc": "15.2.0", - "@next/swc-win32-x64-msvc": "15.2.0", + "@next/swc-darwin-arm64": "15.2.1", + "@next/swc-darwin-x64": "15.2.1", + "@next/swc-linux-arm64-gnu": "15.2.1", + "@next/swc-linux-arm64-musl": "15.2.1", + "@next/swc-linux-x64-gnu": "15.2.1", + "@next/swc-linux-x64-musl": "15.2.1", + "@next/swc-win32-arm64-msvc": "15.2.1", + "@next/swc-win32-x64-msvc": "15.2.1", "sharp": "^0.33.5" }, "peerDependencies": { diff --git a/src/frontend/package.json b/src/frontend/package.json index 6bc3d07515..fb296ac5aa 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -35,12 +35,12 @@ "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/sdk-trace-web": "1.30.1", - "@tanstack/react-query": "5.66.10", + "@tanstack/react-query": "5.67.2", "cookies-next": "5.1.0", "currency-symbol-map": "5.1.0", "dotenv": "16.4.7", "dotenv-expand": "12.0.1", - "next": "15.2.0", + "next": "15.2.1", "react": "19.0.0", "react-dom": "19.0.0", "sharp": "0.33.5", From c10ab9c6a353ce19408454906d14d04524191078 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Mar 2025 00:27:44 -0500 Subject: [PATCH 166/178] build(deps): bump the go-production-dependencies group across 2 directories with 10 updates (#2108) Bumps the go-production-dependencies group with 5 updates in the /src/checkout directory: | Package | From | To | | --- | --- | --- | | [go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.59.0` | `0.60.0` | | [go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.59.0` | `0.60.0` | | [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.59.0` | `0.60.0` | | [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go) | `1.34.0` | `1.35.0` | | [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go) | `1.34.0` | `1.35.0` | Bumps the go-production-dependencies group with 4 updates in the /src/product-catalog directory: [go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc](https://github.com/open-telemetry/opentelemetry-go-contrib), [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib), [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go) and [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go). Updates `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` from 0.59.0 to 0.60.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.59.0...zpages/v0.60.0) Updates `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` from 0.59.0 to 0.60.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.59.0...zpages/v0.60.0) Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.59.0 to 0.60.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.59.0...zpages/v0.60.0) Updates `go.opentelemetry.io/otel` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `go.opentelemetry.io/otel/sdk` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `go.opentelemetry.io/otel/sdk/metric` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `go.opentelemetry.io/otel/trace` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `google.golang.org/grpc` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.70.0...v1.71.0) Updates `go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc` from 0.59.0 to 0.60.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.59.0...zpages/v0.60.0) Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.59.0 to 0.60.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.59.0...zpages/v0.60.0) Updates `go.opentelemetry.io/otel` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `go.opentelemetry.io/otel/sdk` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `go.opentelemetry.io/otel/sdk/metric` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `go.opentelemetry.io/otel/trace` from 1.34.0 to 1.35.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0) Updates `google.golang.org/grpc` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.70.0...v1.71.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/runtime dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk/metric dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/trace dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/runtime dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/sdk/metric dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: go.opentelemetry.io/otel/trace dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/checkout/go.mod | 30 +++++++++--------- src/checkout/go.sum | 64 +++++++++++++++++++------------------- src/product-catalog/go.mod | 30 +++++++++--------- src/product-catalog/go.sum | 64 +++++++++++++++++++------------------- 4 files changed, 94 insertions(+), 94 deletions(-) diff --git a/src/checkout/go.mod b/src/checkout/go.mod index b26b4b99c3..38e7e6f731 100644 --- a/src/checkout/go.mod +++ b/src/checkout/go.mod @@ -11,16 +11,16 @@ require ( github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.6 github.com/sirupsen/logrus v1.9.3 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 - go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0 - go.opentelemetry.io/otel v1.34.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 - go.opentelemetry.io/otel/sdk v1.34.0 - go.opentelemetry.io/otel/sdk/metric v1.34.0 - go.opentelemetry.io/otel/trace v1.34.0 - google.golang.org/grpc v1.70.0 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 + go.opentelemetry.io/contrib/instrumentation/runtime v0.60.0 + go.opentelemetry.io/otel v1.35.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 + go.opentelemetry.io/otel/sdk v1.35.0 + go.opentelemetry.io/otel/sdk/metric v1.35.0 + go.opentelemetry.io/otel/trace v1.35.0 + google.golang.org/grpc v1.71.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.36.5 ) @@ -47,7 +47,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect @@ -73,8 +73,8 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect - go.opentelemetry.io/otel/metric v1.34.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect + go.opentelemetry.io/otel/metric v1.35.0 // indirect go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect @@ -84,8 +84,8 @@ require ( golang.org/x/net v0.35.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/text v0.22.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/src/checkout/go.sum b/src/checkout/go.sum index f28401d312..1ce5b5afbf 100644 --- a/src/checkout/go.sum +++ b/src/checkout/go.sum @@ -52,8 +52,8 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6 github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -63,8 +63,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 h1:VNqngBF40hVlDloBruUehVYC3ArSgIyScOAyMRqBxRg= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1/go.mod h1:RBRO7fro65R6tjKzYgLAFo0t1QEXY1Dp+i/bvpRiqiQ= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 h1:e9Rjr40Z98/clHv5Yg79Is0NtosR5LXRvdr7o/6NwbA= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1/go.mod h1:tIxuGz/9mpox++sgp9fJjHO0+q1X9/UOWd798aAm22M= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -162,28 +162,28 @@ github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 h1:rgMkmiGfix9vFJDcDi1PK8WEQP4FLQwLDfhp5ZLpFeE= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0/go.mod h1:ijPqXp5P6IRRByFVVg9DY8P5HkxkHE5ARIa+86aXPf4= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 h1:CV7UdSGJt/Ao6Gp4CXckLxVRRsRgDHoI8XjbL3PDl8s= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0/go.mod h1:FRmFuRJfag1IZ2dPkHnEoSFVgTVPUd2qf5Vi69hLb8I= -go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0 h1:rfi2MMujBc4yowE0iHckZX4o4jg6SA67EnFVL8ldVvU= -go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0/go.mod h1:IO/gfPEcQYpOpPxn1OXFp1DvRY0viP8ONMedXLjjHIU= -go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= -go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0 h1:ajl4QczuJVA2TU9W9AGw++86Xga/RKt//16z/yxPgdk= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0/go.mod h1:Vn3/rlOJ3ntf/Q3zAI0V5lDnTbHGaUsNUeF6nZmm7pA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= -go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= -go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= -go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ= +go.opentelemetry.io/contrib/instrumentation/runtime v0.60.0 h1:0NgN/3SYkqYJ9NBlDfl/2lzVlwos/YQLvi8sUrzJRBE= +go.opentelemetry.io/contrib/instrumentation/runtime v0.60.0/go.mod h1:oxpUfhTkhgQaYIjtBt3T3w135dLoxq//qo3WPlPIKkE= +go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= +go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 h1:QcFwRrZLc82r8wODjvyCbP7Ifp3UANaBSmhDSFjnqSc= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0/go.mod h1:CXIWhUomyWBG/oY2/r/kLp6K/cmx9e/7DLpBuuGdLCA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 h1:1fTNlAIJZGWLP5FVu0fikVry1IsiUnXjf7QFvoNN3Xw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0/go.mod h1:zjPK58DtkqQFn+YUMbx0M2XV3QgKU0gS9LeGohREyK4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 h1:m639+BofXTvcY1q8CGs4ItwQarYtJPOWmVobfM1HpVI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0/go.mod h1:LjReUci/F4BUyv+y4dwnq3h/26iNOeC3wAIqgvTIZVo= +go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= +go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= +go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= +go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= +go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o= +go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= +go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= +go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -256,12 +256,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f h1:gap6+3Gk41EItBuyi4XX/bp4oqJ3UwuIMl25yGinuAA= -google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:Ic02D47M+zbarjYYUlK57y316f2MoN0gjAwI3f2S95o= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50= -google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ= -google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw= +google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a h1:nwKuGPlUAt+aR+pcrkfFRrTU1BVrSmYyYMxYbUIVHr0= +google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a/go.mod h1:3kWAYMk1I75K4vykHtKt2ycnOgpA6974V7bREqbsenU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a h1:51aaUVRocpvUOSQKM6Q7VuoaktNIaMCLuhZB6DKksq4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a/go.mod h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ= +google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg= +google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= diff --git a/src/product-catalog/go.mod b/src/product-catalog/go.mod index a51f374012..71d9c999e3 100644 --- a/src/product-catalog/go.mod +++ b/src/product-catalog/go.mod @@ -9,15 +9,15 @@ require ( github.com/open-feature/go-sdk-contrib/hooks/open-telemetry v0.3.4 github.com/open-feature/go-sdk-contrib/providers/flagd v0.2.6 github.com/sirupsen/logrus v1.9.3 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 - go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0 - go.opentelemetry.io/otel v1.34.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 - go.opentelemetry.io/otel/sdk v1.34.0 - go.opentelemetry.io/otel/sdk/metric v1.34.0 - go.opentelemetry.io/otel/trace v1.34.0 - google.golang.org/grpc v1.70.0 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 + go.opentelemetry.io/contrib/instrumentation/runtime v0.60.0 + go.opentelemetry.io/otel v1.35.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 + go.opentelemetry.io/otel/sdk v1.35.0 + go.opentelemetry.io/otel/sdk/metric v1.35.0 + go.opentelemetry.io/otel/trace v1.35.0 + google.golang.org/grpc v1.71.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.36.5 ) @@ -39,7 +39,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect @@ -54,18 +54,18 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect - go.opentelemetry.io/otel/metric v1.34.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect + go.opentelemetry.io/otel/metric v1.35.0 // indirect go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect golang.org/x/mod v0.23.0 // indirect - golang.org/x/net v0.34.0 // indirect + golang.org/x/net v0.35.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/text v0.22.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/src/product-catalog/go.sum b/src/product-catalog/go.sum index 7ca4a6b059..2c54cde3d1 100644 --- a/src/product-catalog/go.sum +++ b/src/product-catalog/go.sum @@ -38,8 +38,8 @@ github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+Licev github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -47,8 +47,8 @@ github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2 github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 h1:VNqngBF40hVlDloBruUehVYC3ArSgIyScOAyMRqBxRg= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1/go.mod h1:RBRO7fro65R6tjKzYgLAFo0t1QEXY1Dp+i/bvpRiqiQ= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 h1:e9Rjr40Z98/clHv5Yg79Is0NtosR5LXRvdr7o/6NwbA= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1/go.mod h1:tIxuGz/9mpox++sgp9fJjHO0+q1X9/UOWd798aAm22M= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -113,26 +113,26 @@ github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 h1:rgMkmiGfix9vFJDcDi1PK8WEQP4FLQwLDfhp5ZLpFeE= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0/go.mod h1:ijPqXp5P6IRRByFVVg9DY8P5HkxkHE5ARIa+86aXPf4= -go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0 h1:rfi2MMujBc4yowE0iHckZX4o4jg6SA67EnFVL8ldVvU= -go.opentelemetry.io/contrib/instrumentation/runtime v0.59.0/go.mod h1:IO/gfPEcQYpOpPxn1OXFp1DvRY0viP8ONMedXLjjHIU= -go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= -go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0 h1:ajl4QczuJVA2TU9W9AGw++86Xga/RKt//16z/yxPgdk= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0/go.mod h1:Vn3/rlOJ3ntf/Q3zAI0V5lDnTbHGaUsNUeF6nZmm7pA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= -go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= -go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= -go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= +go.opentelemetry.io/contrib/instrumentation/runtime v0.60.0 h1:0NgN/3SYkqYJ9NBlDfl/2lzVlwos/YQLvi8sUrzJRBE= +go.opentelemetry.io/contrib/instrumentation/runtime v0.60.0/go.mod h1:oxpUfhTkhgQaYIjtBt3T3w135dLoxq//qo3WPlPIKkE= +go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= +go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 h1:QcFwRrZLc82r8wODjvyCbP7Ifp3UANaBSmhDSFjnqSc= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0/go.mod h1:CXIWhUomyWBG/oY2/r/kLp6K/cmx9e/7DLpBuuGdLCA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 h1:1fTNlAIJZGWLP5FVu0fikVry1IsiUnXjf7QFvoNN3Xw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0/go.mod h1:zjPK58DtkqQFn+YUMbx0M2XV3QgKU0gS9LeGohREyK4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 h1:m639+BofXTvcY1q8CGs4ItwQarYtJPOWmVobfM1HpVI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0/go.mod h1:LjReUci/F4BUyv+y4dwnq3h/26iNOeC3wAIqgvTIZVo= +go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= +go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= +go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= +go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= +go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o= +go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= +go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= +go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -156,8 +156,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= -golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -184,12 +184,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f h1:gap6+3Gk41EItBuyi4XX/bp4oqJ3UwuIMl25yGinuAA= -google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:Ic02D47M+zbarjYYUlK57y316f2MoN0gjAwI3f2S95o= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50= -google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ= -google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw= +google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a h1:nwKuGPlUAt+aR+pcrkfFRrTU1BVrSmYyYMxYbUIVHr0= +google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a/go.mod h1:3kWAYMk1I75K4vykHtKt2ycnOgpA6974V7bREqbsenU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a h1:51aaUVRocpvUOSQKM6Q7VuoaktNIaMCLuhZB6DKksq4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a/go.mod h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ= +google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg= +google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= From 9ed1788f3c26c765bec03cbebc0b1371f0f38a2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Mar 2025 00:32:24 -0500 Subject: [PATCH 167/178] build(deps): bump the npm-development-dependencies group across 3 directories with 8 updates (#2109) Bumps the npm-development-dependencies group with 6 updates in the /src/flagd-ui directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.13.5` | `22.13.9` | | [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.2.0` | `15.2.1` | | [prettier](https://github.com/prettier/prettier) | `3.5.2` | `3.5.3` | | [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.0.9` | `4.0.12` | | [typescript](https://github.com/microsoft/TypeScript) | `5.7.3` | `5.8.2` | | [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `5.1.0` | `5.2.0` | Bumps the npm-development-dependencies group with 5 updates in the /src/frontend directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.13.5` | `22.13.9` | | [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.2.0` | `15.2.1` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.25.0` | `8.26.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.25.0` | `8.26.0` | | [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `5.1.0` | `5.2.0` | Bumps the npm-development-dependencies group with 1 update in the /src/payment directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Updates `@types/node` from 22.13.5 to 22.13.9 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint-config-next` from 15.2.0 to 15.2.1 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.2.1/packages/eslint-config-next) Updates `prettier` from 3.5.2 to 3.5.3 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.5.2...3.5.3) Updates `tailwindcss` from 4.0.9 to 4.0.12 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.0.12/packages/tailwindcss) Updates `typescript` from 5.7.3 to 5.8.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.3...v5.8.2) Updates `@typescript-eslint/eslint-plugin` from 8.25.0 to 8.26.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.26.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.25.0 to 8.26.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.26.0/packages/parser) Updates `eslint-plugin-react-hooks` from 5.1.0 to 5.2.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks) Updates `@types/node` from 22.13.5 to 22.13.9 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint-config-next` from 15.2.0 to 15.2.1 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.2.1/packages/eslint-config-next) Updates `@typescript-eslint/eslint-plugin` from 8.25.0 to 8.26.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.26.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.25.0 to 8.26.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.26.0/packages/parser) Updates `eslint-plugin-react-hooks` from 5.1.0 to 5.2.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks) Updates `@types/node` from 22.13.5 to 22.13.9 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: tailwindcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-plugin-react-hooks dependency-type: indirect update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint-config-next dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: eslint-plugin-react-hooks dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Tessier --- src/flagd-ui/package-lock.json | 161 ++++++++++++++++++--------------- src/flagd-ui/package.json | 6 +- src/frontend/package-lock.json | 130 +++++++++++++------------- src/frontend/package.json | 10 +- src/payment/package-lock.json | 6 +- 5 files changed, 164 insertions(+), 149 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index 333a62cde1..bc7bb015de 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -22,11 +22,11 @@ "@types/react-dom": "^19.0.4", "autoprefixer": "^10.4.20", "eslint": "^9", - "eslint-config-next": "15.2.0", + "eslint-config-next": "15.2.1", "postcss": "^8.5.3", - "prettier": "^3.5.2", + "prettier": "^3.5.3", "prettier-plugin-tailwindcss": "^0.6.11", - "tailwindcss": "^4.0.7", + "tailwindcss": "^4.0.12", "typescript": "^5" } }, @@ -596,9 +596,9 @@ "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.2.0.tgz", - "integrity": "sha512-jHFUG2OwmAuOASqq253RAEG/5BYcPHn27p1NoWZDCf4OdvdK0yRYWX92YKkL+Mk2s+GyJrmd/GATlL5b2IySpw==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.2.1.tgz", + "integrity": "sha512-6ppeToFd02z38SllzWxayLxjjNfzvc7Wm07gQOKSLjyASvKcXjNStZrLXMHuaWkhjqxe+cnhb2uzfWXm1VEj/Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1074,6 +1074,12 @@ "tailwindcss": "4.0.9" } }, + "node_modules/@tailwindcss/node/node_modules/tailwindcss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.9.tgz", + "integrity": "sha512-12laZu+fv1ONDRoNR9ipTOpUD7RN9essRVkX36sjxuRUInpN7hIiHN4lBd/SIFjbISvnXzp8h/hXzmU8SQQYhw==", + "license": "MIT" + }, "node_modules/@tailwindcss/oxide": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.9.tgz", @@ -1286,6 +1292,12 @@ "tailwindcss": "4.0.9" } }, + "node_modules/@tailwindcss/postcss/node_modules/tailwindcss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.9.tgz", + "integrity": "sha512-12laZu+fv1ONDRoNR9ipTOpUD7RN9essRVkX36sjxuRUInpN7hIiHN4lBd/SIFjbISvnXzp8h/hXzmU8SQQYhw==", + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -1311,9 +1323,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", - "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "version": "22.13.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.9.tgz", + "integrity": "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==", "dev": true, "license": "MIT", "dependencies": { @@ -1348,17 +1360,17 @@ "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.25.0.tgz", - "integrity": "sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.0.tgz", + "integrity": "sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.25.0", - "@typescript-eslint/type-utils": "8.25.0", - "@typescript-eslint/utils": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0", + "@typescript-eslint/scope-manager": "8.26.0", + "@typescript-eslint/type-utils": "8.26.0", + "@typescript-eslint/utils": "8.26.0", + "@typescript-eslint/visitor-keys": "8.26.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1374,20 +1386,20 @@ "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.25.0.tgz", - "integrity": "sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.0.tgz", + "integrity": "sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.25.0", - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/typescript-estree": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0", + "@typescript-eslint/scope-manager": "8.26.0", + "@typescript-eslint/types": "8.26.0", + "@typescript-eslint/typescript-estree": "8.26.0", + "@typescript-eslint/visitor-keys": "8.26.0", "debug": "^4.3.4" }, "engines": { @@ -1399,18 +1411,18 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz", - "integrity": "sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.0.tgz", + "integrity": "sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0" + "@typescript-eslint/types": "8.26.0", + "@typescript-eslint/visitor-keys": "8.26.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1421,14 +1433,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.25.0.tgz", - "integrity": "sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.0.tgz", + "integrity": "sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.25.0", - "@typescript-eslint/utils": "8.25.0", + "@typescript-eslint/typescript-estree": "8.26.0", + "@typescript-eslint/utils": "8.26.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -1441,13 +1453,13 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.25.0.tgz", - "integrity": "sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.0.tgz", + "integrity": "sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==", "dev": true, "license": "MIT", "engines": { @@ -1459,14 +1471,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz", - "integrity": "sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.0.tgz", + "integrity": "sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0", + "@typescript-eslint/types": "8.26.0", + "@typescript-eslint/visitor-keys": "8.26.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -1482,7 +1494,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -1512,16 +1524,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.25.0.tgz", - "integrity": "sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.0.tgz", + "integrity": "sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.25.0", - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/typescript-estree": "8.25.0" + "@typescript-eslint/scope-manager": "8.26.0", + "@typescript-eslint/types": "8.26.0", + "@typescript-eslint/typescript-estree": "8.26.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1532,17 +1544,17 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz", - "integrity": "sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.0.tgz", + "integrity": "sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/types": "8.26.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -2550,13 +2562,13 @@ } }, "node_modules/eslint-config-next": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.2.0.tgz", - "integrity": "sha512-LkG0KKpinAoNPk2HXSx0fImFb/hQ6RnhSxTkpJFTkQ0SmnzsbRsjjN95WC/mDY34nKOenpptYEVvfkCR/h+VjA==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.2.1.tgz", + "integrity": "sha512-mhsprz7l0no8X+PdDnVHF4dZKu9YBJp2Rf6ztWbXBLJ4h6gxmW//owbbGJMBVUU+PibGJDAqZhW4pt8SC8HSow==", "dev": true, "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.2.0", + "@next/eslint-plugin-next": "15.2.1", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -2795,10 +2807,11 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", - "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -3273,7 +3286,8 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has-bigints": { "version": "1.1.0", @@ -4674,9 +4688,9 @@ } }, "node_modules/prettier": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", - "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, "license": "MIT", "bin": { @@ -5425,9 +5439,10 @@ } }, "node_modules/tailwindcss": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.9.tgz", - "integrity": "sha512-12laZu+fv1ONDRoNR9ipTOpUD7RN9essRVkX36sjxuRUInpN7hIiHN4lBd/SIFjbISvnXzp8h/hXzmU8SQQYhw==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.12.tgz", + "integrity": "sha512-bT0hJo91FtncsAMSsMzUkoo/iEU0Xs5xgFgVC9XmdM9bw5MhZuQFjPNl6wxAE0SiQF/YTZJa+PndGWYSDtuxAg==", + "dev": true, "license": "MIT" }, "node_modules/tapable": { @@ -5573,9 +5588,9 @@ } }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index d2a6845291..67182e48ba 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -23,11 +23,11 @@ "@types/react-dom": "^19.0.4", "autoprefixer": "^10.4.20", "eslint": "^9", - "eslint-config-next": "15.2.0", + "eslint-config-next": "15.2.1", "postcss": "^8.5.3", - "prettier": "^3.5.2", + "prettier": "^3.5.3", "prettier-plugin-tailwindcss": "^0.6.11", - "tailwindcss": "^4.0.7", + "tailwindcss": "^4.0.12", "typescript": "^5" } } diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 35c17b7070..5b56d468a3 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -45,18 +45,18 @@ "uuid": "11.1.0" }, "devDependencies": { - "@types/node": "22.13.5", + "@types/node": "22.13.9", "@types/react": "19.0.10", "@types/react-dom": "19.0.4", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.25.0", - "@typescript-eslint/parser": "8.25.0", + "@typescript-eslint/eslint-plugin": "8.26.0", + "@typescript-eslint/parser": "8.26.0", "cypress": "14.1.0", "eslint": "9.21.0", - "eslint-config-next": "15.2.0", + "eslint-config-next": "15.2.1", "eslint-plugin-react": "7.37.4", - "eslint-plugin-react-hooks": "5.1.0", + "eslint-plugin-react-hooks": "5.2.0", "openapi-typescript": "7.6.1", "ts-proto": "2.6.1", "typescript": "5.7.3" @@ -858,9 +858,9 @@ "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.2.0.tgz", - "integrity": "sha512-jHFUG2OwmAuOASqq253RAEG/5BYcPHn27p1NoWZDCf4OdvdK0yRYWX92YKkL+Mk2s+GyJrmd/GATlL5b2IySpw==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.2.1.tgz", + "integrity": "sha512-6ppeToFd02z38SllzWxayLxjjNfzvc7Wm07gQOKSLjyASvKcXjNStZrLXMHuaWkhjqxe+cnhb2uzfWXm1VEj/Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3056,9 +3056,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", - "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "version": "22.13.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.9.tgz", + "integrity": "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -3170,17 +3170,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.25.0.tgz", - "integrity": "sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.0.tgz", + "integrity": "sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.25.0", - "@typescript-eslint/type-utils": "8.25.0", - "@typescript-eslint/utils": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0", + "@typescript-eslint/scope-manager": "8.26.0", + "@typescript-eslint/type-utils": "8.26.0", + "@typescript-eslint/utils": "8.26.0", + "@typescript-eslint/visitor-keys": "8.26.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3196,20 +3196,20 @@ "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.25.0.tgz", - "integrity": "sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.0.tgz", + "integrity": "sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.25.0", - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/typescript-estree": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0", + "@typescript-eslint/scope-manager": "8.26.0", + "@typescript-eslint/types": "8.26.0", + "@typescript-eslint/typescript-estree": "8.26.0", + "@typescript-eslint/visitor-keys": "8.26.0", "debug": "^4.3.4" }, "engines": { @@ -3221,18 +3221,18 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz", - "integrity": "sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.0.tgz", + "integrity": "sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0" + "@typescript-eslint/types": "8.26.0", + "@typescript-eslint/visitor-keys": "8.26.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3243,14 +3243,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.25.0.tgz", - "integrity": "sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.0.tgz", + "integrity": "sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.25.0", - "@typescript-eslint/utils": "8.25.0", + "@typescript-eslint/typescript-estree": "8.26.0", + "@typescript-eslint/utils": "8.26.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -3263,13 +3263,13 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.25.0.tgz", - "integrity": "sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.0.tgz", + "integrity": "sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==", "dev": true, "license": "MIT", "engines": { @@ -3281,14 +3281,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz", - "integrity": "sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.0.tgz", + "integrity": "sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0", + "@typescript-eslint/types": "8.26.0", + "@typescript-eslint/visitor-keys": "8.26.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3304,7 +3304,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { @@ -3321,16 +3321,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.25.0.tgz", - "integrity": "sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.0.tgz", + "integrity": "sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.25.0", - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/typescript-estree": "8.25.0" + "@typescript-eslint/scope-manager": "8.26.0", + "@typescript-eslint/types": "8.26.0", + "@typescript-eslint/typescript-estree": "8.26.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3341,17 +3341,17 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz", - "integrity": "sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.0.tgz", + "integrity": "sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/types": "8.26.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -4979,13 +4979,13 @@ } }, "node_modules/eslint-config-next": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.2.0.tgz", - "integrity": "sha512-LkG0KKpinAoNPk2HXSx0fImFb/hQ6RnhSxTkpJFTkQ0SmnzsbRsjjN95WC/mDY34nKOenpptYEVvfkCR/h+VjA==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.2.1.tgz", + "integrity": "sha512-mhsprz7l0no8X+PdDnVHF4dZKu9YBJp2Rf6ztWbXBLJ4h6gxmW//owbbGJMBVUU+PibGJDAqZhW4pt8SC8HSow==", "dev": true, "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.2.0", + "@next/eslint-plugin-next": "15.2.1", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -5258,9 +5258,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", - "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", "dev": true, "license": "MIT", "engines": { diff --git a/src/frontend/package.json b/src/frontend/package.json index fb296ac5aa..468321ca86 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -48,18 +48,18 @@ "uuid": "11.1.0" }, "devDependencies": { - "@types/node": "22.13.5", + "@types/node": "22.13.9", "@types/react": "19.0.10", "@types/react-dom": "19.0.4", "@types/styled-components": "5.1.34", "@types/uuid": "10.0.0", - "@typescript-eslint/eslint-plugin": "8.25.0", - "@typescript-eslint/parser": "8.25.0", + "@typescript-eslint/eslint-plugin": "8.26.0", + "@typescript-eslint/parser": "8.26.0", "cypress": "14.1.0", "eslint": "9.21.0", - "eslint-config-next": "15.2.0", + "eslint-config-next": "15.2.1", "eslint-plugin-react": "7.37.4", - "eslint-plugin-react-hooks": "5.1.0", + "eslint-plugin-react-hooks": "5.2.0", "openapi-typescript": "7.6.1", "ts-proto": "2.6.1", "typescript": "5.7.3" diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index cd2d926cdc..8afd31911f 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -1650,9 +1650,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", - "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "version": "22.13.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.9.tgz", + "integrity": "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" From ad57591ddc95693c5aea4140560628cdd38aa49c Mon Sep 17 00:00:00 2001 From: Sergey Kleyman Date: Mon, 10 Mar 2025 09:37:43 +0200 Subject: [PATCH 168/178] [quote] Updated open-telemetry/exporter-otlp to 1.2.1 which includes the fix for IS_REMOTE flag feature (#2112) * Updated exporter-otlp for PHP quote service Updated open-telemetry/exporter-otlp to 1.2.1 for PHP quote service (1.2.1 include fix for IS_REMOTE flag feature) * Updated CHANGELOG.md * Update CHANGELOG.md --------- Co-authored-by: Juliano Costa --- CHANGELOG.md | 3 +++ src/quote/composer.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b77048d59..6ae0eb55b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ the release. * [frontend] Update OpenTelemetry Browser SDK initialization ([#2092](https://github.com/open-telemetry/opentelemetry-demo/pull/2092)) +* [quote] Updated open-telemetry/exporter-otlp to 1.2.1 which includes the + fix for `IS_REMOTE` flag feature + ([#2112](https://github.com/open-telemetry/opentelemetry-demo/pull/2112)) ## 2.0.1 diff --git a/src/quote/composer.json b/src/quote/composer.json index acdb349833..f381c9f8b9 100644 --- a/src/quote/composer.json +++ b/src/quote/composer.json @@ -9,7 +9,7 @@ "monolog/monolog": "3.8.1", "open-telemetry/api": "1.2.2", "open-telemetry/sdk": "1.2.2", - "open-telemetry/exporter-otlp": "1.2.0", + "open-telemetry/exporter-otlp": "1.2.1", "open-telemetry/opentelemetry-auto-slim": "1.0.7", "open-telemetry/detector-container": "1.0.0", "open-telemetry/opentelemetry-logger-monolog": "1.0.0", From cef2a6cc574e5a6200b0b4be1dfc42cc5f35c2e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 08:52:10 +0100 Subject: [PATCH 169/178] build(deps): bump the npm-development-dependencies group across 3 directories with 4 updates (#2113) Bumps the npm-development-dependencies group with 3 updates in the /src/flagd-ui directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [autoprefixer](https://github.com/postcss/autoprefixer) and [eslint](https://github.com/eslint/eslint). Bumps the npm-development-dependencies group with 3 updates in the /src/frontend directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [eslint](https://github.com/eslint/eslint) and [typescript](https://github.com/microsoft/TypeScript). Bumps the npm-development-dependencies group with 1 update in the /src/payment directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Updates `@types/node` from 22.13.9 to 22.13.10 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `autoprefixer` from 10.4.20 to 10.4.21 - [Release notes](https://github.com/postcss/autoprefixer/releases) - [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/autoprefixer/compare/10.4.20...10.4.21) Updates `eslint` from 9.21.0 to 9.22.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.21.0...v9.22.0) Updates `@types/node` from 22.13.9 to 22.13.10 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `eslint` from 9.21.0 to 9.22.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.21.0...v9.22.0) Updates `typescript` from 5.7.3 to 5.8.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.3...v5.8.2) Updates `@types/node` from 22.13.9 to 22.13.10 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: autoprefixer dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: "@types/node" dependency-type: indirect update-type: version-update:semver-patch dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/flagd-ui/package-lock.json | 100 +++++++++++++++++++-------------- src/flagd-ui/package.json | 2 +- src/frontend/package-lock.json | 51 ++++++++++------- src/frontend/package.json | 6 +- src/payment/package-lock.json | 6 +- 5 files changed, 95 insertions(+), 70 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index bc7bb015de..ee1241f7a3 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -20,7 +20,7 @@ "@types/node": "^22", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", - "autoprefixer": "^10.4.20", + "autoprefixer": "^10.4.21", "eslint": "^9", "eslint-config-next": "15.2.1", "postcss": "^8.5.3", @@ -90,6 +90,16 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/config-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", + "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/core": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", @@ -152,9 +162,9 @@ "license": "MIT" }, "node_modules/@eslint/js": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz", - "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", + "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", "dev": true, "license": "MIT", "engines": { @@ -1323,9 +1333,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.9.tgz", - "integrity": "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==", + "version": "22.13.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", + "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", "dev": true, "license": "MIT", "dependencies": { @@ -1829,9 +1839,9 @@ "dev": true }, "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", "dev": true, "funding": [ { @@ -1849,11 +1859,11 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -1928,9 +1938,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -1948,10 +1958,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -2029,9 +2039,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001651", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", - "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "version": "1.0.30001703", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001703.tgz", + "integrity": "sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==", "funding": [ { "type": "opencollective", @@ -2045,7 +2055,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", @@ -2291,9 +2302,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", - "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", + "version": "1.5.114", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.114.tgz", + "integrity": "sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==", "dev": true, "license": "ISC" }, @@ -2502,18 +2513,19 @@ } }, "node_modules/eslint": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz", - "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", + "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.1.0", "@eslint/core": "^0.12.0", "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "9.21.0", + "@eslint/js": "9.22.0", "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -2525,7 +2537,7 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", + "eslint-scope": "^8.3.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", @@ -2846,10 +2858,11 @@ } }, "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -2955,6 +2968,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -4388,9 +4402,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, "license": "MIT" }, @@ -5626,9 +5640,9 @@ "dev": true }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -5646,8 +5660,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 67182e48ba..03557fb1e8 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -21,7 +21,7 @@ "@types/node": "^22", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", - "autoprefixer": "^10.4.20", + "autoprefixer": "^10.4.21", "eslint": "^9", "eslint-config-next": "15.2.1", "postcss": "^8.5.3", diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 5b56d468a3..1e17be361e 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -45,7 +45,7 @@ "uuid": "11.1.0" }, "devDependencies": { - "@types/node": "22.13.9", + "@types/node": "22.13.10", "@types/react": "19.0.10", "@types/react-dom": "19.0.4", "@types/styled-components": "5.1.34", @@ -53,13 +53,13 @@ "@typescript-eslint/eslint-plugin": "8.26.0", "@typescript-eslint/parser": "8.26.0", "cypress": "14.1.0", - "eslint": "9.21.0", + "eslint": "9.22.0", "eslint-config-next": "15.2.1", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.2.0", "openapi-typescript": "7.6.1", "ts-proto": "2.6.1", - "typescript": "5.7.3" + "typescript": "5.8.2" } }, "node_modules/@babel/code-frame": { @@ -264,6 +264,16 @@ "node": "*" } }, + "node_modules/@eslint/config-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", + "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/core": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", @@ -350,9 +360,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz", - "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", + "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", "dev": true, "license": "MIT", "engines": { @@ -3056,9 +3066,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.9.tgz", - "integrity": "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==", + "version": "22.13.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", + "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -4919,18 +4929,19 @@ } }, "node_modules/eslint": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz", - "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", + "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.1.0", "@eslint/core": "^0.12.0", "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "9.21.0", + "@eslint/js": "9.22.0", "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -4942,7 +4953,7 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", + "eslint-scope": "^8.3.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", @@ -5323,9 +5334,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -9321,9 +9332,9 @@ } }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/src/frontend/package.json b/src/frontend/package.json index 468321ca86..49041f0961 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -48,7 +48,7 @@ "uuid": "11.1.0" }, "devDependencies": { - "@types/node": "22.13.9", + "@types/node": "22.13.10", "@types/react": "19.0.10", "@types/react-dom": "19.0.4", "@types/styled-components": "5.1.34", @@ -56,12 +56,12 @@ "@typescript-eslint/eslint-plugin": "8.26.0", "@typescript-eslint/parser": "8.26.0", "cypress": "14.1.0", - "eslint": "9.21.0", + "eslint": "9.22.0", "eslint-config-next": "15.2.1", "eslint-plugin-react": "7.37.4", "eslint-plugin-react-hooks": "5.2.0", "openapi-typescript": "7.6.1", "ts-proto": "2.6.1", - "typescript": "5.7.3" + "typescript": "5.8.2" } } diff --git a/src/payment/package-lock.json b/src/payment/package-lock.json index 8afd31911f..0df63e8291 100644 --- a/src/payment/package-lock.json +++ b/src/payment/package-lock.json @@ -1650,9 +1650,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.9.tgz", - "integrity": "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==", + "version": "22.13.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", + "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" From 528a212e77a62b82e1169b209b54610bc96c900e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Mar 2025 09:14:28 +0100 Subject: [PATCH 170/178] build(deps): update open-telemetry/api requirement (#2116) Updates the requirements on [open-telemetry/api](https://github.com/opentelemetry-php/api) to permit the latest version. Updates `open-telemetry/api` to 1.2.3 - [Release notes](https://github.com/opentelemetry-php/api/releases) - [Commits](https://github.com/opentelemetry-php/api/compare/1.2.2...1.2.3) --- updated-dependencies: - dependency-name: open-telemetry/api dependency-type: direct:production dependency-group: composer-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/quote/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/quote/composer.json b/src/quote/composer.json index f381c9f8b9..8937d8a752 100644 --- a/src/quote/composer.json +++ b/src/quote/composer.json @@ -7,7 +7,7 @@ "ext-json": "*", "ext-pcntl": "*", "monolog/monolog": "3.8.1", - "open-telemetry/api": "1.2.2", + "open-telemetry/api": "1.2.3", "open-telemetry/sdk": "1.2.2", "open-telemetry/exporter-otlp": "1.2.1", "open-telemetry/opentelemetry-auto-slim": "1.0.7", From 9db06167e381367e0a22abbd105065819f0ba694 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Mar 2025 09:47:27 +0100 Subject: [PATCH 171/178] build(deps): bump the pip-production-dependencies group across 3 directories with 4 updates (#2117) Bumps the pip-production-dependencies group with 4 updates in the /src directory: [python-json-logger](https://github.com/nhairs/python-json-logger), [googleapis-common-protos](https://github.com/googleapis/google-cloud-python), [jinja2](https://github.com/pallets/jinja) and [locust-plugins[playwright]](https://github.com/SvenskaSpel/locust-plugins). Bumps the pip-production-dependencies group with 4 updates in the /src/load-generator directory: [python-json-logger](https://github.com/nhairs/python-json-logger), [googleapis-common-protos](https://github.com/googleapis/google-cloud-python), [jinja2](https://github.com/pallets/jinja) and [locust-plugins[playwright]](https://github.com/SvenskaSpel/locust-plugins). Bumps the pip-production-dependencies group with 1 update in the /src/recommendation directory: [python-json-logger](https://github.com/nhairs/python-json-logger). Updates `python-json-logger` from 3.2.1 to 3.3.0 - [Release notes](https://github.com/nhairs/python-json-logger/releases) - [Changelog](https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md) - [Commits](https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0) Updates `googleapis-common-protos` from 1.68.0 to 1.69.1 - [Release notes](https://github.com/googleapis/google-cloud-python/releases) - [Changelog](https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md) - [Commits](https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.68.0...googleapis-common-protos-v1.69.1) Updates `jinja2` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.5...3.1.6) Updates `locust-plugins[playwright]` from 4.5.3 to 4.6.0 - [Release notes](https://github.com/SvenskaSpel/locust-plugins/releases) - [Commits](https://github.com/SvenskaSpel/locust-plugins/compare/4.5.3...4.6.0) Updates `python-json-logger` from 3.2.1 to 3.3.0 - [Release notes](https://github.com/nhairs/python-json-logger/releases) - [Changelog](https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md) - [Commits](https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0) Updates `googleapis-common-protos` from 1.68.0 to 1.69.1 - [Release notes](https://github.com/googleapis/google-cloud-python/releases) - [Changelog](https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md) - [Commits](https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.68.0...googleapis-common-protos-v1.69.1) Updates `jinja2` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.5...3.1.6) Updates `locust-plugins[playwright]` from 4.5.3 to 4.6.0 - [Release notes](https://github.com/SvenskaSpel/locust-plugins/releases) - [Commits](https://github.com/SvenskaSpel/locust-plugins/compare/4.5.3...4.6.0) Updates `python-json-logger` from 3.2.1 to 3.3.0 - [Release notes](https://github.com/nhairs/python-json-logger/releases) - [Changelog](https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md) - [Commits](https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0) --- updated-dependencies: - dependency-name: python-json-logger dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: googleapis-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: jinja2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: locust-plugins[playwright] dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: python-json-logger dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: googleapis-common-protos dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: jinja2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-production-dependencies - dependency-name: locust-plugins[playwright] dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies - dependency-name: python-json-logger dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/load-generator/requirements.txt | 8 ++++---- src/recommendation/requirements.txt | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/load-generator/requirements.txt b/src/load-generator/requirements.txt index 8201b094aa..18a6911ac9 100644 --- a/src/load-generator/requirements.txt +++ b/src/load-generator/requirements.txt @@ -10,13 +10,13 @@ flask-basicauth==0.2.0 flask-cors==5.0.1 gevent==24.11.1 geventhttpclient==2.3.3 -googleapis-common-protos==1.68.0 +googleapis-common-protos==1.69.1 greenlet==3.1.1 idna==3.10 itsdangerous==2.2.0 -jinja2==3.1.5 +jinja2==3.1.6 locust==2.33.0 -locust-plugins[playwright]==4.5.3 +locust-plugins[playwright]==4.6.0 markupsafe==3.0.2 msgpack==1.1.0 opentelemetry-api==1.30.0 @@ -45,4 +45,4 @@ werkzeug==3.1.3 wrapt==1.17.2 zope-event==5.0 zope-interface==7.2 -python-json-logger==3.2.1 +python-json-logger==3.3.0 diff --git a/src/recommendation/requirements.txt b/src/recommendation/requirements.txt index ddde052525..bcf7bd45b6 100644 --- a/src/recommendation/requirements.txt +++ b/src/recommendation/requirements.txt @@ -3,7 +3,7 @@ grpcio==1.70.0 opentelemetry-distro==0.51b0 opentelemetry-exporter-otlp-proto-grpc==1.30.0 python-dotenv==1.0.1 -python-json-logger==3.2.1 +python-json-logger==3.3.0 openfeature-sdk==0.8.0 openfeature-provider-flagd==0.2.0 openfeature-hooks-opentelemetry==0.2.0 From ae753db6cc13455b621b6356e5a596c74d6b2f87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Mar 2025 10:03:58 +0100 Subject: [PATCH 172/178] build(deps): bump the gradle-production-dependencies group across 2 directories with 15 updates (#2118) * build(deps): bump the gradle-production-dependencies group across 2 directories with 15 updates Bumps the gradle-production-dependencies group with 12 updates in the /src/ad directory: | Package | From | To | | --- | --- | --- | | [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) | `1.47.0` | `1.48.0` | | [io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom](https://github.com/open-telemetry/opentelemetry-java-instrumentation) | `2.13.2` | `2.13.3` | | [com.google.protobuf:protobuf-java](https://github.com/protocolbuffers/protobuf) | `4.29.3` | `4.30.0` | | [com.google.protobuf:protoc](https://github.com/protocolbuffers/protobuf) | `4.29.3` | `4.30.0` | | [io.grpc:grpc-protobuf](https://github.com/grpc/grpc-java) | `1.70.0` | `1.71.0` | | [io.grpc:grpc-stub](https://github.com/grpc/grpc-java) | `1.70.0` | `1.71.0` | | [io.grpc:grpc-netty](https://github.com/grpc/grpc-java) | `1.70.0` | `1.71.0` | | [io.grpc:grpc-services](https://github.com/grpc/grpc-java) | `1.70.0` | `1.71.0` | | [io.grpc:protoc-gen-grpc-java](https://github.com/grpc/grpc-java) | `1.70.0` | `1.71.0` | | dev.openfeature.contrib.providers:flagd | `0.11.3` | `0.11.5` | | [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) | `2.18.2` | `2.18.3` | | [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.18.2` | `2.18.3` | Bumps the gradle-production-dependencies group with 11 updates in the /src/fraud-detection directory: | Package | From | To | | --- | --- | --- | | [com.google.protobuf:protobuf-java](https://github.com/protocolbuffers/protobuf) | `4.29.3` | `4.30.0` | | com.google.protobuf:protobuf-kotlin | `4.29.3` | `4.30.0` | | [com.google.protobuf:protoc](https://github.com/protocolbuffers/protobuf) | `4.29.3` | `4.30.0` | | [io.grpc:grpc-protobuf](https://github.com/grpc/grpc-java) | `1.70.0` | `1.71.0` | | [io.grpc:grpc-stub](https://github.com/grpc/grpc-java) | `1.70.0` | `1.71.0` | | [io.grpc:grpc-netty](https://github.com/grpc/grpc-java) | `1.70.0` | `1.71.0` | | [io.grpc:grpc-services](https://github.com/grpc/grpc-java) | `1.70.0` | `1.71.0` | | [io.grpc:protoc-gen-grpc-java](https://github.com/grpc/grpc-java) | `1.70.0` | `1.71.0` | | dev.openfeature.contrib.providers:flagd | `0.11.3` | `0.11.5` | | [io.opentelemetry:opentelemetry-api](https://github.com/open-telemetry/opentelemetry-java) | `1.47.0` | `1.48.0` | | [io.opentelemetry:opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-java) | `1.47.0` | `1.48.0` | Updates `io.opentelemetry:opentelemetry-bom` from 1.47.0 to 1.48.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.47.0...v1.48.0) Updates `io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom` from 2.13.2 to 2.13.3 - [Release notes](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java-instrumentation/compare/v2.13.2...v2.13.3) Updates `com.google.protobuf:protobuf-java` from 4.29.3 to 4.30.0 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/commits/v4.30.0) Updates `com.google.protobuf:protoc` from 4.29.3 to 4.30.0 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/commits/v4.30.0) Updates `io.grpc:grpc-protobuf` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-stub` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-netty` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-services` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:protoc-gen-grpc-java` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-stub` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-netty` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-services` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `dev.openfeature.contrib.providers:flagd` from 0.11.3 to 0.11.5 Updates `com.fasterxml.jackson.core:jackson-core` from 2.18.2 to 2.18.3 - [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.18.2...jackson-core-2.18.3) Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3 - [Commits](https://github.com/FasterXML/jackson/commits) Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3 - [Commits](https://github.com/FasterXML/jackson/commits) Updates `com.google.protobuf:protoc` from 4.29.3 to 4.30.0 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/commits/v4.30.0) Updates `io.grpc:protoc-gen-grpc-java` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `com.google.protobuf:protobuf-java` from 4.29.3 to 4.30.0 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/commits/v4.30.0) Updates `com.google.protobuf:protobuf-kotlin` from 4.29.3 to 4.30.0 Updates `com.google.protobuf:protoc` from 4.29.3 to 4.30.0 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/commits/v4.30.0) Updates `io.grpc:grpc-protobuf` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-stub` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-netty` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-services` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:protoc-gen-grpc-java` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-stub` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-netty` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.grpc:grpc-services` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `dev.openfeature.contrib.providers:flagd` from 0.11.3 to 0.11.5 Updates `com.google.protobuf:protoc` from 4.29.3 to 4.30.0 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](https://github.com/protocolbuffers/protobuf/commits/v4.30.0) Updates `io.grpc:protoc-gen-grpc-java` from 1.70.0 to 1.71.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0) Updates `io.opentelemetry:opentelemetry-api` from 1.47.0 to 1.48.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.47.0...v1.48.0) Updates `io.opentelemetry:opentelemetry-sdk` from 1.47.0 to 1.48.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.47.0...v1.48.0) Updates `com.google.protobuf:protobuf-kotlin` from 4.29.3 to 4.30.0 --- updated-dependencies: - dependency-name: io.opentelemetry:opentelemetry-bom dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protobuf-java dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protoc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-stub dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-netty dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-services dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:protoc-gen-grpc-java dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-stub dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-netty dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-services dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: dev.openfeature.contrib.providers:flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: com.fasterxml.jackson.core:jackson-core dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protoc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:protoc-gen-grpc-java dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protobuf-java dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protobuf-kotlin dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protoc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-stub dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-netty dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-services dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:protoc-gen-grpc-java dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-stub dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-netty dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:grpc-services dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: dev.openfeature.contrib.providers:flagd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protoc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.grpc:protoc-gen-grpc-java dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.opentelemetry:opentelemetry-api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: io.opentelemetry:opentelemetry-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies - dependency-name: com.google.protobuf:protobuf-kotlin dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-production-dependencies ... Signed-off-by: dependabot[bot] * Bump Java Agent --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juliano Costa Co-authored-by: Juliano Costa --- .env | 2 +- src/ad/build.gradle | 12 ++++++------ src/fraud-detection/build.gradle.kts | 10 +++++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.env b/.env index b1850e547b..185600390c 100644 --- a/.env +++ b/.env @@ -7,7 +7,7 @@ DEMO_VERSION=latest # Build Args TRACETEST_IMAGE_VERSION=v1.7.1 -OTEL_JAVA_AGENT_VERSION=2.13.1 +OTEL_JAVA_AGENT_VERSION=2.13.3 OPENTELEMETRY_CPP_VERSION=1.19.0 # Dependent images diff --git a/src/ad/build.gradle b/src/ad/build.gradle index aec59fe323..47cbbfa456 100644 --- a/src/ad/build.gradle +++ b/src/ad/build.gradle @@ -16,11 +16,11 @@ description = 'Ad Service' group = "ad" version = "0.1.0-SNAPSHOT" -def opentelemetryVersion = "1.47.0" -def opentelemetryInstrumentationVersion = "2.13.2" -def grpcVersion = "1.70.0" -def jacksonVersion = "2.18.2" -def protocVersion = "4.29.3" +def opentelemetryVersion = "1.48.0" +def opentelemetryInstrumentationVersion = "2.13.3" +def grpcVersion = "1.71.0" +def jacksonVersion = "2.18.3" +def protocVersion = "4.30.0" tasks.withType(JavaCompile).configureEach { sourceCompatibility = JavaVersion.VERSION_21 @@ -51,7 +51,7 @@ dependencies { "io.opentelemetry:opentelemetry-sdk", "io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations", "org.apache.logging.log4j:log4j-core:2.24.3", - "dev.openfeature.contrib.providers:flagd:0.11.3", + "dev.openfeature.contrib.providers:flagd:0.11.5", 'dev.openfeature:sdk:1.14.1' runtimeOnly "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}", diff --git a/src/fraud-detection/build.gradle.kts b/src/fraud-detection/build.gradle.kts index 673a14cc2d..2ce809ddbc 100644 --- a/src/fraud-detection/build.gradle.kts +++ b/src/fraud-detection/build.gradle.kts @@ -15,8 +15,8 @@ group = "io.opentelemetry" version = "1.0" -val grpcVersion = "1.70.0" -val protobufVersion = "4.29.3" +val grpcVersion = "1.71.0" +val protobufVersion = "4.30.0" repositories { @@ -36,14 +36,14 @@ dependencies { implementation("io.grpc:grpc-stub:${grpcVersion}") implementation("io.grpc:grpc-netty:${grpcVersion}") implementation("io.grpc:grpc-services:${grpcVersion}") - implementation("io.opentelemetry:opentelemetry-api:1.47.0") - implementation("io.opentelemetry:opentelemetry-sdk:1.47.0") + implementation("io.opentelemetry:opentelemetry-api:1.48.0") + implementation("io.opentelemetry:opentelemetry-sdk:1.48.0") implementation("io.opentelemetry:opentelemetry-extension-annotations:1.18.0") implementation("org.apache.logging.log4j:log4j-core:2.24.3") implementation("org.slf4j:slf4j-api:2.0.17") implementation("com.google.protobuf:protobuf-kotlin:${protobufVersion}") implementation("dev.openfeature:sdk:1.14.1") - implementation("dev.openfeature.contrib.providers:flagd:0.11.3") + implementation("dev.openfeature.contrib.providers:flagd:0.11.5") if (JavaVersion.current().isJava9Compatible) { // Workaround for @javax.annotation.Generated From 06e6e4661b1bc783fd7da248270d5fcdd1ec58b7 Mon Sep 17 00:00:00 2001 From: Simon Schrottner Date: Thu, 13 Mar 2025 11:17:31 +0100 Subject: [PATCH 173/178] feat(load-generator): Adapt OpenFeature OFREP instead of IN_PROCESS (#2114) * feat(load-generator): Adapt OpenFeature OFREP instead of IN_PROCESS OpenFeature supports multiple different modes. The newest implementation relies on threads and other python internal, which seem to be monkeypatched by locust. Due to this, the IN_PROCESS mode is not working properly anymore and is causing issues. Instead we suggest to switch to the OFREP (OpenFeature Remote Evaluation Protocol) for this usecase. This is a simple http call which will return all evaluate flags, and will regularly poll for changes. Signed-off-by: Simon Schrottner * Add ports to docker-compose.minimal * fixup: add missing envvar for the ofrepport to the loadgenerator Signed-off-by: Simon Schrottner * Add FLAGD_OFREP_PORT to docker compose minimal --------- Signed-off-by: Simon Schrottner Co-authored-by: Juliano Costa Co-authored-by: Juliano Costa --- .env | 1 + CHANGELOG.md | 3 +++ docker-compose.minimal.yml | 5 +++-- docker-compose.yml | 5 +++-- src/load-generator/locustfile.py | 5 +++-- src/load-generator/requirements.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.env b/.env index 185600390c..5f63239ee9 100644 --- a/.env +++ b/.env @@ -133,6 +133,7 @@ SHIPPING_DOCKERFILE=./src/shipping/Dockerfile # Flagd FLAGD_HOST=flagd FLAGD_PORT=8013 +FLAGD_OFREP_PORT=8016 # Flagd UI FLAGD_UI_HOST=flagd-ui diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ae0eb55b6..044fdbe551 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,9 @@ the release. * [quote] Updated open-telemetry/exporter-otlp to 1.2.1 which includes the fix for `IS_REMOTE` flag feature ([#2112](https://github.com/open-telemetry/opentelemetry-demo/pull/2112)) +* [load-generator] Change OpenFeature Evaluation to Remote Evaluation Protocol, + based on [this issue in OpenFeature/python-sdk-contrib](https://github.com/open-feature/python-sdk-contrib/issues/198) + ([#2114](https://github.com/open-telemetry/opentelemetry-demo/pull/2114)) ## 2.0.1 diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index a52755b0cc..b751a808f1 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -345,7 +345,7 @@ services: - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python - LOCUST_WEB_HOST=0.0.0.0 - FLAGD_HOST - - FLAGD_PORT + - FLAGD_OFREP_PORT depends_on: frontend: condition: service_started @@ -522,7 +522,8 @@ services: "file:./etc/flagd/demo.flagd.json" ] ports: - - 8013 + - "${FLAGD_PORT}" + - "${FLAGD_OFREP_PORT}" volumes: - ./src/flagd:/etc/flagd logging: diff --git a/docker-compose.yml b/docker-compose.yml index 7013b1028f..d5ec0b79e6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -421,7 +421,7 @@ services: - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python - LOCUST_WEB_HOST=0.0.0.0 - FLAGD_HOST - - FLAGD_PORT + - FLAGD_OFREP_PORT depends_on: frontend: condition: service_started @@ -608,7 +608,8 @@ services: "file:./etc/flagd/demo.flagd.json" ] ports: - - 8013 + - "${FLAGD_PORT}" + - "${FLAGD_OFREP_PORT}" volumes: - ./src/flagd:/etc/flagd logging: diff --git a/src/load-generator/locustfile.py b/src/load-generator/locustfile.py index 387ae5d152..4f86fe4b79 100644 --- a/src/load-generator/locustfile.py +++ b/src/load-generator/locustfile.py @@ -34,7 +34,7 @@ from opentelemetry.sdk.resources import Resource from openfeature import api -from openfeature.contrib.provider.flagd import FlagdProvider +from openfeature.contrib.provider.ofrep import OFREPProvider from openfeature.contrib.hook.opentelemetry import TracingHook from playwright.async_api import Route, Request @@ -69,7 +69,8 @@ logging.info("Instrumentation complete") # Initialize Flagd provider -api.set_provider(FlagdProvider(host=os.environ.get('FLAGD_HOST', 'flagd'), port=os.environ.get('FLAGD_PORT', 8013))) +base_url = f"http://{os.environ.get('FLAGD_HOST', 'localhost')}:{os.environ.get('FLAGD_OFREP_PORT', 8016)}" +api.set_provider(OFREPProvider(base_url=base_url)) api.add_hooks([TracingHook()]) def get_flagd_value(FlagName): diff --git a/src/load-generator/requirements.txt b/src/load-generator/requirements.txt index 18a6911ac9..81e773b20e 100644 --- a/src/load-generator/requirements.txt +++ b/src/load-generator/requirements.txt @@ -31,7 +31,7 @@ opentelemetry-sdk==1.30.0 opentelemetry-semantic-conventions==0.51b0 opentelemetry-util-http==0.51b0 openfeature-sdk==0.8.0 -openfeature-provider-flagd==0.1.5 +openfeature-provider-ofrep==0.1.1 openfeature-hooks-opentelemetry==0.2.0 protobuf==5.29.3 psutil==6.1.1 From c8cee24108176c62929c99872d4fbc74f758e5ba Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Fri, 14 Mar 2025 03:08:57 -0400 Subject: [PATCH 174/178] [flagd-ui] increase memory to 100M (#2120) * increase flagd-ui memory to 100M * increase flagd-ui memory to 100M --- CHANGELOG.md | 2 ++ docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 044fdbe551..e8f30fcc9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,8 @@ the release. * [load-generator] Change OpenFeature Evaluation to Remote Evaluation Protocol, based on [this issue in OpenFeature/python-sdk-contrib](https://github.com/open-feature/python-sdk-contrib/issues/198) ([#2114](https://github.com/open-telemetry/opentelemetry-demo/pull/2114)) +* [flagd-ui] increase memory to 100MB + ([#2120](https://github.com/open-telemetry/opentelemetry-demo/pull/2120)) ## 2.0.1 diff --git a/docker-compose.yml b/docker-compose.yml index d5ec0b79e6..4041652b63 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -625,7 +625,7 @@ services: deploy: resources: limits: - memory: 75M + memory: 100M restart: unless-stopped environment: - OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_HTTP} From 63649d6d6a59de88fb421b88c3c3a6185b6d21ad Mon Sep 17 00:00:00 2001 From: Pierre Tessier Date: Mon, 17 Mar 2025 03:41:01 -0400 Subject: [PATCH 175/178] release 2.0.2 prep (#2123) --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index 5f63239ee9..199e14d2ee 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ # Demo App version -IMAGE_VERSION=2.0.1 +IMAGE_VERSION=2.0.2 IMAGE_NAME=ghcr.io/open-telemetry/demo DEMO_VERSION=latest From 318113e36ee391203bd67caabc53f583d730940b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Mar 2025 09:56:43 +0100 Subject: [PATCH 176/178] build(deps): bump the npm-production-dependencies group across 1 directory with 3 updates (#2115) Bumps the npm-production-dependencies group with 3 updates in the /src/flagd-ui directory: [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss), [@vercel/otel](https://github.com/vercel/otel) and [next](https://github.com/vercel/next.js). Updates `@tailwindcss/postcss` from 4.0.9 to 4.0.12 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.0.12/packages/@tailwindcss-postcss) Updates `@vercel/otel` from 1.10.1 to 1.10.2 - [Release notes](https://github.com/vercel/otel/releases) - [Commits](https://github.com/vercel/otel/compare/@vercel/otel@1.10.1...@vercel/otel@1.10.2) Updates `next` from 15.2.0 to 15.2.1 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.2.0...v15.2.1) --- updated-dependencies: - dependency-name: "@tailwindcss/postcss" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: "@vercel/otel" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/flagd-ui/package-lock.json | 326 +++++++++++++++------------------ src/flagd-ui/package.json | 6 +- 2 files changed, 153 insertions(+), 179 deletions(-) diff --git a/src/flagd-ui/package-lock.json b/src/flagd-ui/package-lock.json index ee1241f7a3..4997d63578 100644 --- a/src/flagd-ui/package-lock.json +++ b/src/flagd-ui/package-lock.json @@ -8,10 +8,10 @@ "name": "flagd-ui", "version": "0.1.0", "dependencies": { - "@tailwindcss/postcss": "^4.0.9", - "@vercel/otel": "^1.10.1", + "@tailwindcss/postcss": "^4.0.14", + "@vercel/otel": "^1.10.4", "ajv": "^8.17.1", - "next": "15.2.0", + "next": "15.2.2", "react": "^19", "react-dom": "^19" }, @@ -600,9 +600,9 @@ } }, "node_modules/@next/env": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.0.tgz", - "integrity": "sha512-eMgJu1RBXxxqqnuRJQh5RozhskoNUDHBFybvi+Z+yK9qzKeG7dadhv/Vp1YooSZmCnegf7JxWuapV77necLZNA==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.2.tgz", + "integrity": "sha512-yWgopCfA9XDR8ZH3taB5nRKtKJ1Q5fYsTOuYkzIIoS8TJ0UAUKAGF73JnGszbjk2ufAQDj6mDdgsJAFx5CLtYQ==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -646,9 +646,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.0.tgz", - "integrity": "sha512-rlp22GZwNJjFCyL7h5wz9vtpBVuCt3ZYjFWpEPBGzG712/uL1bbSkS675rVAUCRZ4hjoTJ26Q7IKhr5DfJrHDA==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.2.tgz", + "integrity": "sha512-HNBRnz+bkZ+KfyOExpUxTMR0Ow8nkkcE6IlsdEa9W/rI7gefud19+Sn1xYKwB9pdCdxIP1lPru/ZfjfA+iT8pw==", "cpu": [ "arm64" ], @@ -662,9 +662,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.0.tgz", - "integrity": "sha512-DiU85EqSHogCz80+sgsx90/ecygfCSGl5P3b4XDRVZpgujBm5lp4ts7YaHru7eVTyZMjHInzKr+w0/7+qDrvMA==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.2.tgz", + "integrity": "sha512-mJOUwp7al63tDpLpEFpKwwg5jwvtL1lhRW2fI1Aog0nYCPAhxbJsaZKdoVyPZCy8MYf/iQVNDuk/+i29iLCzIA==", "cpu": [ "x64" ], @@ -678,9 +678,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.0.tgz", - "integrity": "sha512-VnpoMaGukiNWVxeqKHwi8MN47yKGyki5q+7ql/7p/3ifuU2341i/gDwGK1rivk0pVYbdv5D8z63uu9yMw0QhpQ==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.2.tgz", + "integrity": "sha512-5ZZ0Zwy3SgMr7MfWtRE7cQWVssfOvxYfD9O7XHM7KM4nrf5EOeqwq67ZXDgo86LVmffgsu5tPO57EeFKRnrfSQ==", "cpu": [ "arm64" ], @@ -694,9 +694,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.0.tgz", - "integrity": "sha512-ka97/ssYE5nPH4Qs+8bd8RlYeNeUVBhcnsNUmFM6VWEob4jfN9FTr0NBhXVi1XEJpj3cMfgSRW+LdE3SUZbPrw==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.2.tgz", + "integrity": "sha512-cgKWBuFMLlJ4TWcFHl1KOaVVUAF8vy4qEvX5KsNd0Yj5mhu989QFCq1WjuaEbv/tO1ZpsQI6h/0YR8bLwEi+nA==", "cpu": [ "arm64" ], @@ -710,9 +710,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.0.tgz", - "integrity": "sha512-zY1JduE4B3q0k2ZCE+DAF/1efjTXUsKP+VXRtrt/rJCTgDlUyyryx7aOgYXNc1d8gobys/Lof9P9ze8IyRDn7Q==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.2.tgz", + "integrity": "sha512-c3kWSOSsVL8rcNBBfOq1+/j2PKs2nsMwJUV4icUxRgGBwUOfppeh7YhN5s79enBQFU+8xRgVatFkhHU1QW7yUA==", "cpu": [ "x64" ], @@ -726,9 +726,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.0.tgz", - "integrity": "sha512-QqvLZpurBD46RhaVaVBepkVQzh8xtlUN00RlG4Iq1sBheNugamUNPuZEH1r9X1YGQo1KqAe1iiShF0acva3jHQ==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.2.tgz", + "integrity": "sha512-PXTW9PLTxdNlVYgPJ0equojcq1kNu5NtwcNjRjHAB+/sdoKZ+X8FBu70fdJFadkxFIGekQTyRvPMFF+SOJaQjw==", "cpu": [ "x64" ], @@ -742,9 +742,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.0.tgz", - "integrity": "sha512-ODZ0r9WMyylTHAN6pLtvUtQlGXBL9voljv6ujSlcsjOxhtXPI1Ag6AhZK0SE8hEpR1374WZZ5w33ChpJd5fsjw==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.2.tgz", + "integrity": "sha512-nG644Es5llSGEcTaXhnGWR/aThM/hIaz0jx4MDg4gWC8GfTCp8eDBWZ77CVuv2ha/uL9Ce+nPTfYkSLG67/sHg==", "cpu": [ "arm64" ], @@ -758,9 +758,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.0.tgz", - "integrity": "sha512-8+4Z3Z7xa13NdUuUAcpVNA6o76lNPniBd9Xbo02bwXQXnZgFvEopwY2at5+z7yHl47X9qbZpvwatZ2BRo3EdZw==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.2.tgz", + "integrity": "sha512-52nWy65S/R6/kejz3jpvHAjZDPKIbEQu4x9jDBzmB9jJfuOy5rspjKu4u77+fI4M/WzLXrrQd57hlFGzz1ubcQ==", "cpu": [ "x64" ], @@ -1074,48 +1074,42 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.9.tgz", - "integrity": "sha512-tOJvdI7XfJbARYhxX+0RArAhmuDcczTC46DGCEziqxzzbIaPnfYaIyRT31n4u8lROrsO7Q6u/K9bmQHL2uL1bQ==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.14.tgz", + "integrity": "sha512-Ux9NbFkKWYE4rfUFz6M5JFLs/GEYP6ysxT8uSyPn6aTbh2K3xDE1zz++eVK4Vwx799fzMF8CID9sdHn4j/Ab8w==", "license": "MIT", "dependencies": { "enhanced-resolve": "^5.18.1", "jiti": "^2.4.2", - "tailwindcss": "4.0.9" + "tailwindcss": "4.0.14" } }, - "node_modules/@tailwindcss/node/node_modules/tailwindcss": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.9.tgz", - "integrity": "sha512-12laZu+fv1ONDRoNR9ipTOpUD7RN9essRVkX36sjxuRUInpN7hIiHN4lBd/SIFjbISvnXzp8h/hXzmU8SQQYhw==", - "license": "MIT" - }, "node_modules/@tailwindcss/oxide": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.9.tgz", - "integrity": "sha512-eLizHmXFqHswJONwfqi/WZjtmWZpIalpvMlNhTM99/bkHtUs6IqgI1XQ0/W5eO2HiRQcIlXUogI2ycvKhVLNcA==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.14.tgz", + "integrity": "sha512-M8VCNyO/NBi5vJ2cRcI9u8w7Si+i76a7o1vveoGtbbjpEYJZYiyc7f2VGps/DqawO56l3tImIbq2OT/533jcrA==", "license": "MIT", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.0.9", - "@tailwindcss/oxide-darwin-arm64": "4.0.9", - "@tailwindcss/oxide-darwin-x64": "4.0.9", - "@tailwindcss/oxide-freebsd-x64": "4.0.9", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.9", - "@tailwindcss/oxide-linux-arm64-gnu": "4.0.9", - "@tailwindcss/oxide-linux-arm64-musl": "4.0.9", - "@tailwindcss/oxide-linux-x64-gnu": "4.0.9", - "@tailwindcss/oxide-linux-x64-musl": "4.0.9", - "@tailwindcss/oxide-win32-arm64-msvc": "4.0.9", - "@tailwindcss/oxide-win32-x64-msvc": "4.0.9" + "@tailwindcss/oxide-android-arm64": "4.0.14", + "@tailwindcss/oxide-darwin-arm64": "4.0.14", + "@tailwindcss/oxide-darwin-x64": "4.0.14", + "@tailwindcss/oxide-freebsd-x64": "4.0.14", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.14", + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.14", + "@tailwindcss/oxide-linux-arm64-musl": "4.0.14", + "@tailwindcss/oxide-linux-x64-gnu": "4.0.14", + "@tailwindcss/oxide-linux-x64-musl": "4.0.14", + "@tailwindcss/oxide-win32-arm64-msvc": "4.0.14", + "@tailwindcss/oxide-win32-x64-msvc": "4.0.14" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.9.tgz", - "integrity": "sha512-YBgy6+2flE/8dbtrdotVInhMVIxnHJPbAwa7U1gX4l2ThUIaPUp18LjB9wEH8wAGMBZUb//SzLtdXXNBHPUl6Q==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.14.tgz", + "integrity": "sha512-VBFKC2rFyfJ5J8lRwjy6ub3rgpY186kAcYgiUr8ArR8BAZzMruyeKJ6mlsD22Zp5ZLcPW/FXMasJiJBx0WsdQg==", "cpu": [ "arm64" ], @@ -1129,9 +1123,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.9.tgz", - "integrity": "sha512-pWdl4J2dIHXALgy2jVkwKBmtEb73kqIfMpYmcgESr7oPQ+lbcQ4+tlPeVXaSAmang+vglAfFpXQCOvs/aGSqlw==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.14.tgz", + "integrity": "sha512-U3XOwLrefGr2YQZ9DXasDSNWGPZBCh8F62+AExBEDMLDfvLLgI/HDzY8Oq8p/JtqkAY38sWPOaNnRwEGKU5Zmg==", "cpu": [ "arm64" ], @@ -1145,9 +1139,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.9.tgz", - "integrity": "sha512-4Dq3lKp0/C7vrRSkNPtBGVebEyWt9QPPlQctxJ0H3MDyiQYvzVYf8jKow7h5QkWNe8hbatEqljMj/Y0M+ERYJg==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.14.tgz", + "integrity": "sha512-V5AjFuc3ndWGnOi1d379UsODb0TzAS2DYIP/lwEbfvafUaD2aNZIcbwJtYu2DQqO2+s/XBvDVA+w4yUyaewRwg==", "cpu": [ "x64" ], @@ -1161,9 +1155,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.9.tgz", - "integrity": "sha512-k7U1RwRODta8x0uealtVt3RoWAWqA+D5FAOsvVGpYoI6ObgmnzqWW6pnVwz70tL8UZ/QXjeMyiICXyjzB6OGtQ==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.14.tgz", + "integrity": "sha512-tXvtxbaZfcPfqBwW3f53lTcyH6EDT+1eT7yabwcfcxTs+8yTPqxsDUhrqe9MrnEzpNkd+R/QAjJapfd4tjWdLg==", "cpu": [ "x64" ], @@ -1177,9 +1171,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.9.tgz", - "integrity": "sha512-NDDjVweHz2zo4j+oS8y3KwKL5wGCZoXGA9ruJM982uVJLdsF8/1AeKvUwKRlMBpxHt1EdWJSAh8a0Mfhl28GlQ==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.14.tgz", + "integrity": "sha512-cSeLNWWqIWeSTmBntQvyY2/2gcLX8rkPFfDDTQVF8qbRcRMVPLxBvFVJyfSAYRNch6ZyVH2GI6dtgALOBDpdNA==", "cpu": [ "arm" ], @@ -1193,9 +1187,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.9.tgz", - "integrity": "sha512-jk90UZ0jzJl3Dy1BhuFfRZ2KP9wVKMXPjmCtY4U6fF2LvrjP5gWFJj5VHzfzHonJexjrGe1lMzgtjriuZkxagg==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.14.tgz", + "integrity": "sha512-bwDWLBalXFMDItcSXzFk6y7QKvj6oFlaY9vM+agTlwFL1n1OhDHYLZkSjaYsh6KCeG0VB0r7H8PUJVOM1LRZyg==", "cpu": [ "arm64" ], @@ -1209,9 +1203,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.9.tgz", - "integrity": "sha512-3eMjyTC6HBxh9nRgOHzrc96PYh1/jWOwHZ3Kk0JN0Kl25BJ80Lj9HEvvwVDNTgPg154LdICwuFLuhfgH9DULmg==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.14.tgz", + "integrity": "sha512-gVkJdnR/L6iIcGYXx64HGJRmlme2FGr/aZH0W6u4A3RgPMAb+6ELRLi+UBiH83RXBm9vwCfkIC/q8T51h8vUJQ==", "cpu": [ "arm64" ], @@ -1225,9 +1219,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.9.tgz", - "integrity": "sha512-v0D8WqI/c3WpWH1kq/HP0J899ATLdGZmENa2/emmNjubT0sWtEke9W9+wXeEoACuGAhF9i3PO5MeyditpDCiWQ==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.14.tgz", + "integrity": "sha512-EE+EQ+c6tTpzsg+LGO1uuusjXxYx0Q00JE5ubcIGfsogSKth8n8i2BcS2wYTQe4jXGs+BQs35l78BIPzgwLddw==", "cpu": [ "x64" ], @@ -1241,9 +1235,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.9.tgz", - "integrity": "sha512-Kvp0TCkfeXyeehqLJr7otsc4hd/BUPfcIGrQiwsTVCfaMfjQZCG7DjI+9/QqPZha8YapLA9UoIcUILRYO7NE1Q==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.14.tgz", + "integrity": "sha512-KCCOzo+L6XPT0oUp2Jwh233ETRQ/F6cwUnMnR0FvMUCbkDAzHbcyOgpfuAtRa5HD0WbTbH4pVD+S0pn1EhNfbw==", "cpu": [ "x64" ], @@ -1257,9 +1251,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.9.tgz", - "integrity": "sha512-m3+60T/7YvWekajNq/eexjhV8z10rswcz4BC9bioJ7YaN+7K8W2AmLmG0B79H14m6UHE571qB0XsPus4n0QVgQ==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.14.tgz", + "integrity": "sha512-AHObFiFL9lNYcm3tZSPqa/cHGpM5wOrNmM2uOMoKppp+0Hom5uuyRh0QkOp7jftsHZdrZUpmoz0Mp6vhh2XtUg==", "cpu": [ "arm64" ], @@ -1273,9 +1267,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.9.tgz", - "integrity": "sha512-dpc05mSlqkwVNOUjGu/ZXd5U1XNch1kHFJ4/cHkZFvaW1RzbHmRt24gvM8/HC6IirMxNarzVw4IXVtvrOoZtxA==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.14.tgz", + "integrity": "sha512-rNXXMDJfCJLw/ZaFTOLOHoGULxyXfh2iXTGiChFiYTSgKBKQHIGEpV0yn5N25WGzJJ+VBnRjHzlmDqRV+d//oQ==", "cpu": [ "x64" ], @@ -1289,25 +1283,19 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.9.tgz", - "integrity": "sha512-BT/E+pdMqulavEAVM5NCpxmGEwHiLDPpkmg/c/X25ZBW+izTe+aZ+v1gf/HXTrihRoCxrUp5U4YyHsBTzspQKQ==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.14.tgz", + "integrity": "sha512-+uIR6KtKhla1XeIanF27KtrfYy+PX+R679v5LxbkmEZlhQe3g8rk+wKj7Xgt++rWGRuFLGMXY80Ek8JNn+kN/g==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.0.9", - "@tailwindcss/oxide": "4.0.9", - "lightningcss": "^1.29.1", + "@tailwindcss/node": "4.0.14", + "@tailwindcss/oxide": "4.0.14", + "lightningcss": "1.29.2", "postcss": "^8.4.41", - "tailwindcss": "4.0.9" + "tailwindcss": "4.0.14" } }, - "node_modules/@tailwindcss/postcss/node_modules/tailwindcss": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.9.tgz", - "integrity": "sha512-12laZu+fv1ONDRoNR9ipTOpUD7RN9essRVkX36sjxuRUInpN7hIiHN4lBd/SIFjbISvnXzp8h/hXzmU8SQQYhw==", - "license": "MIT" - }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -1589,9 +1577,9 @@ } }, "node_modules/@vercel/otel": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@vercel/otel/-/otel-1.10.1.tgz", - "integrity": "sha512-jZrHSAP03WVUfu1yid4AkYAZ/pwde/txVBSovk5kxQ99Bmb8sqMmQ9RJCSbWuV1EvbTimrVotAP0Devi/qHXgw==", + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@vercel/otel/-/otel-1.10.4.tgz", + "integrity": "sha512-X01cOLU2Aiku4y1Vn9HQ8VmkQEdIQiWhjHa7DEUspcNGNg0Xm7GYAU7ErZ0pH/5spsrvb2wpIIHSBFgs0M5p4g==", "license": "MIT", "engines": { "node": ">=18" @@ -2270,7 +2258,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "optional": true, "engines": { "node": ">=8" } @@ -3960,12 +3947,12 @@ } }, "node_modules/lightningcss": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.1.tgz", - "integrity": "sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==", + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", + "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", "license": "MPL-2.0", "dependencies": { - "detect-libc": "^1.0.3" + "detect-libc": "^2.0.3" }, "engines": { "node": ">= 12.0.0" @@ -3975,22 +3962,22 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-darwin-arm64": "1.29.1", - "lightningcss-darwin-x64": "1.29.1", - "lightningcss-freebsd-x64": "1.29.1", - "lightningcss-linux-arm-gnueabihf": "1.29.1", - "lightningcss-linux-arm64-gnu": "1.29.1", - "lightningcss-linux-arm64-musl": "1.29.1", - "lightningcss-linux-x64-gnu": "1.29.1", - "lightningcss-linux-x64-musl": "1.29.1", - "lightningcss-win32-arm64-msvc": "1.29.1", - "lightningcss-win32-x64-msvc": "1.29.1" + "lightningcss-darwin-arm64": "1.29.2", + "lightningcss-darwin-x64": "1.29.2", + "lightningcss-freebsd-x64": "1.29.2", + "lightningcss-linux-arm-gnueabihf": "1.29.2", + "lightningcss-linux-arm64-gnu": "1.29.2", + "lightningcss-linux-arm64-musl": "1.29.2", + "lightningcss-linux-x64-gnu": "1.29.2", + "lightningcss-linux-x64-musl": "1.29.2", + "lightningcss-win32-arm64-msvc": "1.29.2", + "lightningcss-win32-x64-msvc": "1.29.2" } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.1.tgz", - "integrity": "sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==", + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", + "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", "cpu": [ "arm64" ], @@ -4008,9 +3995,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.1.tgz", - "integrity": "sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==", + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", + "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", "cpu": [ "x64" ], @@ -4028,9 +4015,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.1.tgz", - "integrity": "sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==", + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", + "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", "cpu": [ "x64" ], @@ -4048,9 +4035,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.1.tgz", - "integrity": "sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==", + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", + "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", "cpu": [ "arm" ], @@ -4068,9 +4055,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.1.tgz", - "integrity": "sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==", + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", + "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", "cpu": [ "arm64" ], @@ -4088,9 +4075,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.1.tgz", - "integrity": "sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==", + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", + "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", "cpu": [ "arm64" ], @@ -4108,9 +4095,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.1.tgz", - "integrity": "sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==", + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", + "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", "cpu": [ "x64" ], @@ -4128,9 +4115,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.1.tgz", - "integrity": "sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==", + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", + "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", "cpu": [ "x64" ], @@ -4148,9 +4135,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.1.tgz", - "integrity": "sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==", + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", + "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", "cpu": [ "arm64" ], @@ -4168,9 +4155,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.1.tgz", - "integrity": "sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==", + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", + "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", "cpu": [ "x64" ], @@ -4187,18 +4174,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/lightningcss/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "license": "Apache-2.0", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -4321,12 +4296,12 @@ "dev": true }, "node_modules/next": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/next/-/next-15.2.0.tgz", - "integrity": "sha512-VaiM7sZYX8KIAHBrRGSFytKknkrexNfGb8GlG6e93JqueCspuGte8i4ybn8z4ww1x3f2uzY4YpTaBEW4/hvsoQ==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.2.2.tgz", + "integrity": "sha512-dgp8Kcx5XZRjMw2KNwBtUzhngRaURPioxoNIVl5BOyJbhi9CUgEtKDO7fx5wh8Z8vOVX1nYZ9meawJoRrlASYA==", "license": "MIT", "dependencies": { - "@next/env": "15.2.0", + "@next/env": "15.2.2", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.15", "busboy": "1.6.0", @@ -4341,14 +4316,14 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.2.0", - "@next/swc-darwin-x64": "15.2.0", - "@next/swc-linux-arm64-gnu": "15.2.0", - "@next/swc-linux-arm64-musl": "15.2.0", - "@next/swc-linux-x64-gnu": "15.2.0", - "@next/swc-linux-x64-musl": "15.2.0", - "@next/swc-win32-arm64-msvc": "15.2.0", - "@next/swc-win32-x64-msvc": "15.2.0", + "@next/swc-darwin-arm64": "15.2.2", + "@next/swc-darwin-x64": "15.2.2", + "@next/swc-linux-arm64-gnu": "15.2.2", + "@next/swc-linux-arm64-musl": "15.2.2", + "@next/swc-linux-x64-gnu": "15.2.2", + "@next/swc-linux-x64-musl": "15.2.2", + "@next/swc-win32-arm64-msvc": "15.2.2", + "@next/swc-win32-x64-msvc": "15.2.2", "sharp": "^0.33.5" }, "peerDependencies": { @@ -5453,10 +5428,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.12.tgz", - "integrity": "sha512-bT0hJo91FtncsAMSsMzUkoo/iEU0Xs5xgFgVC9XmdM9bw5MhZuQFjPNl6wxAE0SiQF/YTZJa+PndGWYSDtuxAg==", - "dev": true, + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.14.tgz", + "integrity": "sha512-92YT2dpt671tFiHH/e1ok9D987N9fHD5VWoly1CdPD/Cd1HMglvZwP3nx2yTj2lbXDAHt8QssZkxTLCCTNL+xw==", "license": "MIT" }, "node_modules/tapable": { diff --git a/src/flagd-ui/package.json b/src/flagd-ui/package.json index 03557fb1e8..ce32133b6b 100644 --- a/src/flagd-ui/package.json +++ b/src/flagd-ui/package.json @@ -9,10 +9,10 @@ "lint": "next lint" }, "dependencies": { - "@tailwindcss/postcss": "^4.0.9", - "@vercel/otel": "^1.10.1", + "@tailwindcss/postcss": "^4.0.14", + "@vercel/otel": "^1.10.4", "ajv": "^8.17.1", - "next": "15.2.0", + "next": "15.2.2", "react": "^19", "react-dom": "^19" }, From 1ae1004f320dc7785b5d1f70598c1347a13aa28c Mon Sep 17 00:00:00 2001 From: Ferran Diaz Date: Wed, 19 Mar 2025 09:58:08 +0100 Subject: [PATCH 177/178] fix: envar --- src/payment/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/payment/index.js b/src/payment/index.js index 57f9d0f172..a7b51dd13d 100644 --- a/src/payment/index.js +++ b/src/payment/index.js @@ -45,7 +45,7 @@ server.addService(health.service, new health.Implementation({ server.addService(otelDemoPackage.oteldemo.PaymentService.service, { charge: chargeServiceHandler }) -server.bindAsync(`[::]:${process.env['PAYMENT_SERVICE_PORT']}`, grpc.ServerCredentials.createInsecure(), (err, port) => { +server.bindAsync(`[::]:${process.env['PAYMENT_PORT']}`, grpc.ServerCredentials.createInsecure(), (err, port) => { if (err) { return logger.error({ err }) } From 0eb995ce218a27e6af4b49e1cd281bc60c725595 Mon Sep 17 00:00:00 2001 From: Ferran Diaz Date: Wed, 19 Mar 2025 11:10:45 +0100 Subject: [PATCH 178/178] feat: use another image for webapp --- .../static/opentelemetry-demo-logo.png | Bin 100140 -> 58758 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/image-provider/static/opentelemetry-demo-logo.png b/src/image-provider/static/opentelemetry-demo-logo.png index c9aebcd1188b580d231b1cd397fe7a1c03056687..355e57752669d897d68453585af0ed93ef9a311b 100644 GIT binary patch literal 58758 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